2017-08-14 1 views
-1

Ich verwende VB 6.0 Ich habe ein Formular (Form1), 1 Combobox (ComboBox1) und 1 Textfeld (TextBox1) Ich habe eine Tabelle (Gehalt) in meiner lokalen Datenbank, die erstellt wurde innerhalb des Projekts.In der Tabelle 'Gehalt' habe ich nur vier Spalten (Benutzer-ID - Primärschlüssel, Gehaltstyp, Gehaltsbereich) die Tabelle enthält mehrere Datensätze darin.Werte in Textfeld ausfüllen, wenn Combobox vb6 auswählen

Was ich herausfinden muss, ist, wie man die Textbox mit den entsprechenden Spalten für alles, was in der Combobox ausgewählt ist, ausfüllen muss. Jede und jede Hilfe würde geschätzt werden. Hier

ist der Code, den ich verwendet wurde Datenbank mit VB zu verknüpfen:

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 

Antwort

0

ich meine Antwort aktualisiert von nur dem Click-Ereignis zu einem vollständigen Beispiel:

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 

Wenn das Feld Name SalaryType ist nicht korrekt dann beheben Sie wie erforderlich.

+0

Nein, du nicht gut verstanden habe mich als Beispiel i Gehalt Art in Textbox auffüllen möchten, wo Benutzer-ID mit Combobox Auswahl –

+0

Leider abgestimmt ist. Ich habe meine Antwort aktualisiert. –

0

Sie schrieb:

ActiveConnection:=strConnect 

aber strConnect ist eine Zeichenfolge, während Active ein ADODB.Connection Objekt benötigen, kein String. Darüber hinaus muss die Verbindung bereits geöffnet sein:

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

Danke Giorgio, ich bin Anfänger in diesem Bereich, wenn Sie mir helfen können, in welcher Zeile sollte der Code hinzugefügt werden und was die Zeile sollte geändert werden, wie ich die Ergebnisse in Textfeld nach Combobox Auswahl angezeigt werden müssen –

Verwandte Themen