从访问数据库填充组合

时间:2017-08-02 02:03:31

标签: sql ms-access vb6

目前我正在使用数据库项目。在这里,我每次都可以逐一获取记录。我有2个组件使用了一个ComboBox& Data。这就是我所做的:

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

正如您所见,我手动添加了ComboBox中的项目 但我想从Access数据库加载项目,该数据库已成功创建并与Data连接。我设置了DatabaseName& RecordSource正确&这是工作。但我需要ComboBox中的所有记录同时不是单一的记录。我可以通过任何循环来完成它。但我不知道该怎么做。请帮忙

Database structure

表名:组件

字段:名称,ID,价格

我需要在comboBox中显示名称字段的所有记录

2 个答案:

答案 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)语句相关的示例

答案 1 :(得分:0)

您可以使用DataCombo并仅绑定其RowSource端:

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