2017-02-18 67 views
0
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。如何從訪問數據中獲取數據到Combobox

+0

你可能想在一個循環讀取和使用'ComboBox1.Items.Add()'。通過創建,使用和處理Connections,特別是DbCOmmand和DataReader對象,您可以節省您的麻煩。最後2個真的不可重複使用 – Plutonix

+0

填充DataTable並將其設置爲ComboBox的'DataSource' ...只有1個項目的原因是因爲您沒有循環閱讀器.. – Codexer

+1

爲什麼你有一個名爲「LecturerName」的表和一個名爲「LecturerName」的列?當然,你應該有一個名爲「Lecturer」的表格和一個名爲「Name」的列。只需列出「LecturerName」列而不是表格即可。 – jmcilhinney

回答

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。如果您希望能夠通過ComboBoxSelectedValue訪問所選記錄的PK值,則還應該設置的ComboBox。除非您真正需要每列,否則您還應指定要從中檢索數據的列,而不是使用通配符。

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

相關問題