如何从访问数据中获取数据到Combobox

时间:2017-02-18 14:49:25

标签: vb.net vb.net-2010 access

Public Class AdminP_Time2

    Dim conn As OleDbConnection
    Dim cmd As OleDbCommand
    Dim sql As String
    Dim dr As OleDbDataReader

    Private Sub AdminP_Time2_Load(sender As Object, e As EventArgs) Handles MyBase.Load    
        conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database.accdb;Persist Security Info=False;")
        conn.Open() 'opens the connection
        sql = "SELECT * FROM LecturerName"
        cmd = New OleDbCommand(sql, conn)

        dr = cmd.ExecuteReader

        If dr.Read = True Then
            ComboBox1.Text = dr("LecturerName")
        End If 

为什么我的组合框只显示1项?谁能帮我 ?我想把我的访问数据带到Combobox。

2 个答案:

答案 0 :(得分:0)

您自己的代码无法正常工作的原因是您只能阅读一条记录。你需要一个循环,例如

While dr.Read()
    ComboBox1.Items.Add(dr("LecturerName"))
End While

那就是说,你的代码看起来应该更像这样:

Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database.accdb;Persist Security Info=False;"),
      cmd As New OleDbCommand("SELECT * FROM LecturerName", conn)
    conn.Open()

    Using dr As OleDbDataReader = cmd.ExecuteReader()
        Dim tbl As New DataTable

        tbl.Load(dr)

        With ComboBox1
            .DisplayMember = "LecturerName"
            .DataSource = tbl
        End With
    End Using
End Using

这会将数据加载到DataTable并将其绑定到ComboBox。如果您希望能够通过ValueMember的{​​{1}}访问所选记录的PK值,还应设置ComboBox的{​​{1}}。您还应该指定要从中检索数据的列而不是使用通配符,除非您真正想要每个列。

答案 1 :(得分:0)

这是一个很好的例子。

Sub TryThis()

Dim db As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim strSQL As String
   Set db = CurrentDb
   Set qdf = db.QueryDefs("qryStaffListQuery”)

   strSQL = "SELECT tblStaff.* ” & _
                 "FROM tblStaff ” & _
                 "WHERE tblStaff.Office='" & Me.cboOffice.Value & "’ ” & _
                 "AND tblStaff.Department='" & Me.cboDepartment.Value & "’ ” & _
                 "AND tblStaff.Gender='" & Me.cboGender.Value & "’ ” & _
                 "ORDER BY tblStaff.LastName,tblStaff.FirstName;”
End Sub

enter image description here

您可以从以下链接中找到所有详细信息。

http://www.fontstuff.com/access/acctut17.htm