2017-08-14 105 views
-1

我正在使用VB 6.0我有一個窗體(Form1),1個組合框(ComboBox1)和1個文本框(TextBox1)我創建了本地數據庫中的一個表(Salary)在表'工資'中,我只有四列(用戶ID - 主鍵,工資類型,工資範圍)表中有多條記錄。填充文本框中的值,如果選擇組合框vb6

我需要弄清楚的是,如何讓文本框與組合框中選擇的相應列一起填充。任何和所有的幫助,將不勝感激。

下面是我用用VB鏈接數據庫的代碼:

Private WithEvents cmdPopulate As CommandButton 
Private WithEvents dcbDataCombo As DataCombo 

Private Sub Form_Load() 

    Dim rs As ADODB.Recordset 
    Dim strConnect As String 
    Dim strSQL As String 

    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Mahmoud\Desktop\Project\Database.mdb;Persist Security Info=False" 
    strSQL = "Select Distinct * FROM Salary order by UserID asc" ' set ascending order 

    Set rs = New ADODB.Recordset 
    With rs 
     .CursorType = adOpenStatic 
     .LockType = adLockReadOnly 
     .Open Source:=strSQL, _ 
      ActiveConnection:=strConnect, _ 
      Options:=adCmdText 
    End With 

    Set DataCombo1.RowSource = rs 
    DataCombo1.ListField = "UserID" 
    DataCombo1.DataField = "UserID" 

End Sub 

回答

0

我已經更新了我的答案正好從click事件到一個完整的例子:

Option Explicit 

Private WithEvents cmdPopulate As CommandButton 
Private WithEvents dcbDataCombo As DataCombo 
Private rs As ADODB.Recordset 

Private Sub Form_Load() 
    Dim strConnect As String 
    Dim strSQL As String 
    Dim cn As ADODB.Connection 

    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Mahmoud\Desktop\Project\Database.mdb;Persist Security Info=False" 
    strSQL = "Select Distinct * FROM Salary order by UserID asc" ' set ascending order 

    Set cn = New ADODB.Connection 
    cn.ConnectionString = strConnect 
    cn.Open 
    cn.CursorLocation = adUseClient 
    Set rs = New ADODB.Recordset 
    rs.Open strSQL, cn, adOpenStatic, adLockReadOnly, adCmdText 

    Set DataCombo1.RowSource = rs 
    DataCombo1.ListField = "UserID" 
    DataCombo1.DataField = "UserID" 
End Sub 

Private Sub DataCombo1_Click(Area As Integer) 
    rs.MoveFirst 
    rs.Find "UserID = " & DataCombo1.Text 
    If Not (rs.BOF Or rs.EOF) Then TextBox1.Text = rs.Fields("SalaryType").Value 
End Sub 

如果該字段名稱SalaryType不正確,然後根據需要進行修復。

+0

不,你不理解我還有例如,我要填充工資類型的文本框,其中用戶ID與組合框中選擇 –

+0

對不起匹配。我已經更新了我的答案。 –

0

您寫道:

ActiveConnection:=strConnect 

但strConnect中是一個字符串,而的ActiveConnection需要一個ADODB.Connection對象,而不是字符串。此外,連接必須是已經打開:

Dim CN As ADODB.Connection 
Set CN = New ADODB.Connection 
CN.ConnectionString = strConnect 
CN.Open 
CN.CursorLocation = adUseClient 

' for recordset: 
rs.Open strSQL, CN, adOpenStatic, adLockReadOnly, adCmdText 
+0

非常感謝喬治,我是這方面的初學者,所以如果你能幫助我在哪一行應該添加代碼以及該行應該被修改,因爲我需要結果在組合框選擇後出現在文本框中 –