从访问数据库填充组合

问题描述:

目前我正在使用数据库项目。在这里,我可以每次一个一个取记录。我有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://*.com/questions/11940319/populate-combobox-in-microsoft-visual-basic-6-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)语句

您可以使用一个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