2017-08-02 115 views
0

目前我正在使用數據庫項目。在這裏,我可以每次一個一個取記錄。我有2個組件使用一個ComboBox & Data。這裏是我做了什麼:從訪問數據庫填充組合

Private Sub Form_Load() 
    Combo1.AddItem "RAM" 
    Combo1.AddItem "HDD" 
End Sub 

正如你可以看到我在manualy ComboBox 補充項目,但我想加載從中成功地創建並與Data連接Access數據庫的項目。我已經設置了DatabaseName & RecordSource正確&它正在工作。但我同時需要ComboBox中的所有記錄不是一次一個。我可以通過任何循環來完成。但我不知道如何去做。請幫助

Database structure

表名:組件

領域:名稱,編號,價格

我需要顯示名稱字段的所有記錄中的組合框

+0

[在Microsoft Visual Basic 6.0中填充組合框]的可能的副本(https://stackoverflow.com/questions/11940319/populate-combobox-in-microsoft-visual-basic-6-0) –

回答

0

你應打開一個DAO.Recordset(dbOpenSnapshot),然後滾動記錄以將Name添加到Combo1。

Do While Not rst.EOF 
    Combo1.AddItem rst!Name 
    rst.MoveNext 
Loop 

瞭解如何:https://msdn.microsoft.com/en-us/library/office/ff820966.aspx (使用例如涉及到:結構化查詢語言(SQL)語句

0

您可以使用一個DataCombo中,只有結合其行來源方:

Option Explicit 

Private Const CONN As String = _ 
     "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='.';" _ 
     & "Extended Properties='Text'" 

Private RS As ADODB.Recordset 

Private Sub Form_Load() 
    Set RS = New ADODB.Recordset 
    With RS 
     .CursorLocation = adUseClient 
     .Open "SELECT [Year] FROM [sample.txt] ORDER BY [Year] ASC", _ 
       CONN, _ 
       adOpenStatic, _ 
       adLockReadOnly, _ 
       adCmdText 
     Set .ActiveConnection = Nothing 
    End With 
    With DataCombo1 
     .ListField = "Year" 
     Set .RowSource = RS 
     .Text = vbNullString 
    End With 
End Sub 

Private Sub Form_Unload(Cancel As Integer) 
    RS.Close 
End Sub