tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
824
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DesignedbyJF DesignedbyJF ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Artern
    Beiträge
    12
    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?

    Hier mein bisheriger Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    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
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Also zuerst mal denke ich das die Abfrage einen Fehler hat:

    Code :
    1
    
    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 :
    1
    2
    3
    
    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.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    DesignedbyJF DesignedbyJF ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Artern
    Beiträge
    12
    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 :
    1
    
    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.
     

  4. #4
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    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!?
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  5. #5
    DesignedbyJF DesignedbyJF ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Artern
    Beiträge
    12
    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."
    Geändert von DesignedbyJF (20.08.10 um 07:06 Uhr)
     

  6. #6
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Dann führe mal rs.MoveFirst oder rs.Refresh aus. Dann sollte auch dieses Problem behoben sein.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  7. #7
    DesignedbyJF DesignedbyJF ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Artern
    Beiträge
    12
    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 :
    1
    
    lblDurchwahl.Caption = rs.Fields(2)

     

  8. #8
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    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.

    Code vb:
    1
    
    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.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  9. #9
    DesignedbyJF DesignedbyJF ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Artern
    Beiträge
    12
    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
     

  10. #10
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    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.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  11. #11
    DesignedbyJF DesignedbyJF ist offline Mitglied
    Registriert seit
    Aug 2010
    Ort
    Artern
    Beiträge
    12
    Hallo,
    habs jetzt hingekriegt. Ich hab doch das ganze in die FormLoad-Prozedur geschrieben statt in die onClick-Prozedur. Manchmal ist es so einfach aber man siehts nicht.

    Jedenfalls nochmal vielen dank für die Hilfe!
     

  12. #12
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.016
    Also wenn du es jetzt so gelöst hast.
    Ich hab doch das ganze in die FormLoad-Prozedur geschrieben statt in die onClick-Prozedur.
    Dann passt das aber nicht hierzu:
    Wenn ich nun einen Namen aus der ComboBox auswähle soll in dem Label die dazugehörige Tel.-Nr. angezeigt werden.
    Aber wenn es den Zweck erfüllt, ist es ja gut.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

Ähnliche Themen

  1. ComboBox füllen
    Von BlockeR im Forum PHP
    Antworten: 3
    Letzter Beitrag: 28.11.08, 12:56
  2. Label einer Combobox abfragen und vergleichen
    Von DJTrancelight im Forum Flash Plattform
    Antworten: 6
    Letzter Beitrag: 02.06.07, 18:39
  3. Access, ComboBox gemäß ComboBox füllen?
    Von pglw im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 17.09.06, 22:08
  4. ComboBox füllen
    Von Katalysator im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 30.04.04, 16:39
  5. probs combobox und label
    Von maddi im Forum Delphi, Kylix, Pascal
    Antworten: 3
    Letzter Beitrag: 26.05.03, 09:20