Ich versuche, Daten aus einer Datenbank zu lesen, um sie in einer Listbox anzuzeigen.So geben Sie das gesuchte Ergebnis an die Textbox zurück, indem Sie auf den Listenfeldeintrag klicken
Ich habe textboxs und comboboxs: txtIndex, txtEventID, cmbServer, cmbCompany, txtMessage ...
Wenn ich auf "Liste anzeigen" klicken, werden alle Daten aus Datenblatt wird in listbox gelesen und ausgefüllt werden. Nach dem Klicken auf den Listbox-Zeileneintrag werden alle zugehörigen Informationen in entsprechenden Textboxen und Comboboxen für diesen Fall angezeigt.
Ich benutze FindAll-Funktion, um die Suchmaschine zu implementieren und das Suchergebnis scheint in Ordnung zu sein.
Problem ist: Wenn ich auf gesuchtes Ergebnis in ListBox klicken, Daten, die in textboxs und comboboxs nicht korrekt angezeigt wird, ist.
Es folgt Liste Index, nicht was ich will.
Dies ist mein Code zum Anzeigen von Daten (gehandhabt durch UserForm1_Click())
Private Sub Listbox1_Click()
Dim strAddress As String
Dim idx As Long
' idx = ListBox1.ListIndex + 1
For idx = 0 To ListBox1.ListCount
If ListBox1.Selected(idx) = True Then
strAddress = ListBox1.ListIndex + 1
UserForm1.txIndex.Value = Sheets("DATA").Range("A" & strAddress).Value
UserForm1.txtEventID.Value = Sheets("DATA").Range("B" & strAddress).Value
UserForm1.txtSource.Value = Sheets("DATA").Range("C" & strAddress).Value
UserForm1.cmbServer.Value = Sheets("DATA").Range("D" & strAddress).Value
UserForm1.txtMessage.Value = Sheets("DATA").Range("E" & strAddress).Value
UserForm1.cmbStatus.Value = Sheets("DATA").Range("F" & strAddress).Value
UserForm1.txtDate.Value = Sheets("DATA").Range("G" & strAddress).Value
UserForm1.txtDate.Text = VBA.Format(txtDate, "yyyy.mm.dd")
UserForm1.txtIssueNo.Value = Sheets("DATA").Range("H" & strAddress).Value
UserForm1.cmbCompany.Value = Sheets("DATA").Range("I" & strAddress).Value
UserForm1.txtErrorType.Value = Sheets("DATA").Range("J" & strAddress).Value
UserForm1.cmbPriority.Value = Sheets("DATA").Range("K" & strAddress).Value
UserForm1.txtComment.Value = Sheets("DATA").Range("L" & strAddress).Value
UserForm1.txtName.Value = Sheets("DATA").Range("M" & strAddress).Value
GoTo EndLoop
' UserForm1.Show
End If
Next idx
EndLoop:
Application.ScreenUpdating = True
Label25.Caption = "You're looking for event id: " & txtEventID.Text
End Sub
Das Ergebnis ist nicht korrekt. Ich möchte genau verbundene Daten zu ausgewählten Elementen in Textfeldern & Comboboxen anzeigen, aber wenn ich gesucht Ergebnis (in der ersten Zeile angezeigt), zeigte Useform 1 Zeile Daten in Blatt, nicht durchsucht Ergebnis.
Das Problem ist im beigefügten Bild gezeigt.
Verstehe ich Sie richtig? Die erste Zeile Ihres Datenblatts hat die Werte "Index", "Event ID" usw. als Spaltentitel. Dann wird das Formular mit diesen anstelle der relevanten Zeile gefüllt, d. H. "StrAddress" ist immer 1? – arcadeprecinct
Hallo Arcadeprecinct, ja, du hast Recht. Meine erste Zeile zeigt den Spaltentitel. – Holmes