ComboBox und Label mit Datensätzen füllen

DesignedbyJF

Grünschnabel
Hallo an alle !

Vielleicht kann mir einer helfen. Ich habe folgendes Problem:

Ich habe eine Datenbank erstellt mit einer Tabelle die aus 2 Spalten besteht (Name und Tel.-Nr.). In meinem Programm hab ich eine ComboBox und ein Label. Ich bin auch schon soweit, dass die ComboBox mit den Namen geladen wird. Wenn ich nun einen Namen aus der ComboBox auswähle soll in dem Label die dazugehörige Tel.-Nr. angezeigt werden. Kann mir einer sagen wie´s funktioniert?
:confused:
Hier mein bisheriger Code:
Code:
Private Sub Form_Load()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSQL As String
'Sachbearbeiter laden
    Set cn = New ADODB.Connection
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<Pfad>;"
        cn.Open
        strSQL = "Select Name, Name from Sachbearbeiter"
    Set rs = cn.Execute(strSQL)
    With Me.cboSachbearbeiter
        Do While Not rs.EOF
            .AddItem rs.Fields(1)
            rs.MoveNext
        Loop
    End With
    rs.Close
    Set rs = Nothing
    Set cn = Nothing
 
Also zuerst mal denke ich das die Abfrage einen Fehler hat:

Code:
strSQL = "Select Name, Name from Sachbearbeiter"

Du frägst zweimal das Feld Name ab.

Zum eigentlichen Problem. In der onClick-Prozedur der Combobox erstellst du eine Abfrage die die Telefonnummer ermittelt und an das LAbel übergibt:

Code:
strSQL = "Select Telefonnummer from Sachbearbeiter WHERE Name = '" & cboSachbearbeiter.Value & "'"
Set rs = cn.Execute(strSQL)
Label.Caption = rs.Fields("Telefonnummer")

Feldnamen bzw. den Namen des Labels musst du halt noch anpassen.
 
Danke für die schnelle Antwort.
Leider hat das Programm ein Problem mit der Value-Eigenschaft, hier krieg ich immer einen Fehler: "Methode oder Mitgliedsdaten nicht gefunden."
Code:
strSQL = "Select Telefonnummer from Sachbearbeiter WHERE Name = '" & cboSachbearbeiter.Value & "'"
Was ist da falsch?

:(Sorry! Bin leider noch nicht ganz so gut in VB und kenn´mich noch nicht so gut aus.
 
Ok und was passiert wenn du anstelle "Value" einfach "Text" schreibst oder nur "cboSachbearbeiter"?

Bin mir jetzt nicht sicher wie es bei dir richtig ist, schreib mal womit du arbeitest, da du oben von einer Datenbank gesprochen hast, könnte es Access sein!?
 
Ja hab eine Acess-Datenbank angelegt.
Wenn ich statt Value Text schreibe oder nur cboSachbearbeiter, kommt diese Fehlermeldung:

"Laufzeitfehler 3021: Entweder BOF ode EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Der angeforderte Vorgang benötigt einen aktuellen Datensatz."
 
Zuletzt bearbeitet:
Dann führe mal rs.MoveFirst oder rs.Refresh aus. Dann sollte auch dieses Problem behoben sein.
 
Hallo,
das funktioniert leider auch nicht. Kommt immer dieser Fehler:

"Laufzeitfehler 3265: Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden."

Dabei wird mir dann das hier markiert:
Code:
lblDurchwahl.Caption = rs.Fields(2)
:(
 
Also ich gehe mal davon aus das der Name des "Labels" richtig geschrieben ist. Dann vergebe doch mal für das Recordset-Objekt nicht eine Nummer (gibt es in der Abfrage überhaupt 2 Felder?) sondern verwende den eigentlichen Namen.

Visual Basic:
lblDurchwahl.Caption = rs.Fields("Telefon")

Wobei du hier "Telefon" natürlich noch den Namen geben musst wie er bei der Abfrage aus der Datenbank kommt.

Ansonsten was für eine Access Version verwendest du? Wenn du Access 2000 hast oder deine DB in dem Format speichern kannst, dann stelle sie mal hier rein und ich schau drauf.
 
funktioniert leider auch nicht, kommt wieder der Laufzeitfehler 3021.

die datenbank hab ich mit Access 2007 gemacht. kann die datenbank nicht hochladen. das sind vertrauliche Daten drin. sorry
 
Na dann wird es ein bisschen schwieriger. Dan zeige doch zumindest mal den Code wo du die Liste füllst und wo/wie du beim Auswählen eines Eintrages aus der Liste die Telefonnummer ermitteln willst.
Wenn kein aktueller Datensatz gefunden wird, kann auch die SQL-Anweisung falsch sein. Kann man nur nicht sagen wenn man nicht sieht womit du arbeitest.
 

Neue Beiträge

Zurück