JOIN-Problem (ohne t) in VB6

Hallo Leute!

*hachmach*
Nachdem mir hier gestern schon einmal der Schubs in die richtige Richtung gegeben wurde, habe ich heute ein wenig weitergespielt. Die ersten einfachen Abfragen und Ausgaben auf der Form funktionierten ja auch ganz toll… bis etwa 11 Uhr :frowning:

Meine Test-DB hat drei Tabellen, die wie folgt aufgebaut sind:
id ist in allen Tabellen der Primärschlüssel
(s) = varchar(…)
(i) = integer

‚Kunde‘
id (i), name (s), vorname (s), ausweis (i), ausweisnummer (s), ausweisland (i)

Die Spalte ausweis beinhaltet einen Fremdschlüssel und bezieht sich auf den PK der Tabelle ‚ausweis‘.
Die Spalte ausweisland beinhaltet einen Fremdschlüssel und bezieht sich auf den PK der Tabelle ‚land‘.

‚ausweis‘
id (i), ausweis (s) 'z.B. Personalausweis

‚land‘
id (i), land (s) 'z.B. Deutschland

Mit der Abfrage
Antwort.Open „SELECT k.name, k.vorname, k.ausweis, k.ausweisnummer, k.ausweisland, a.ausweis, land.land From Kunde k, ausweis a, land WHERE k.ausweis = a.id and k.ausweisland = land.id“
klappt alles - das Land bleibt dabei aber ausgeklammert.

Schritt 2 ist nun, das Land auch anzeigen zu lassen.
Mein Lösungsansatz:
Antwort.Open „SELECT k.name, k.vorname, k.ausweisnummer, a.ausweis, l.land From Kunde k, ausweis a, land l WHERE k.ausweis = a.id and k.ausweisland = l.id“

Das tolle ist: auf Kommandozeilenebene in MySQL funktioniert es, in VB aber nicht.
Daher vermute ich, das der Fehler in diesem Bereich liegt (letzte Zeile):

 txtName.Text = Antwort![Name]
 txtVorname.Text = Antwort![vorname]
 txtAusweisart.Text = Antwort![ausweis]
 txtAusweisnummer.Text = Antwort![ausweisnummer]
 txtAusweisland.Text = Antwort![ausweisland]

Antwort![l.land] und ähnliche Versuche führten bisher auch nicht zum Erfolg.

Fehlermeldungen ist:
#3265:#Objekt […] kann nicht gefunden werden“
Wo liegt mein Gedankenfehler? Was übersehe ich die ganze Zeit?

Liebe Grüße, Ute

Hallo Leute!

Hi,

*hachmach*
Nachdem mir hier gestern schon einmal der Schubs in die
richtige Richtung gegeben wurde, habe ich heute ein wenig
weitergespielt. Die ersten einfachen Abfragen und Ausgaben auf
der Form funktionierten ja auch ganz toll… bis etwa 11 Uhr

-(

Meine Test-DB hat drei Tabellen, die wie folgt aufgebaut sind:
id ist in allen Tabellen der Primärschlüssel
(s) = varchar(…)
(i) = integer

‚Kunde‘
id (i), name (s), vorname (s), ausweis (i), ausweisnummer (s),
ausweisland (i)

Die Spalte ausweis beinhaltet einen Fremdschlüssel und bezieht
sich auf den PK der Tabelle ‚ausweis‘.
Die Spalte ausweisland beinhaltet einen Fremdschlüssel und
bezieht sich auf den PK der Tabelle ‚land‘.

‚ausweis‘
id (i), ausweis (s) 'z.B. Personalausweis

‚land‘
id (i), land (s) 'z.B. Deutschland

Mit der Abfrage
Antwort.Open „SELECT k.name, k.vorname, k.ausweis,
k.ausweisnummer, k.ausweisland, a.ausweis, land.land From
Kunde k, ausweis a, land WHERE k.ausweis = a.id and
k.ausweisland = land.id“
klappt alles - das Land bleibt dabei aber ausgeklammert.

Schritt 2 ist nun, das Land auch anzeigen zu lassen.
Mein Lösungsansatz:
Antwort.Open „SELECT k.name, k.vorname, k.ausweisnummer,
a.ausweis, l.land From Kunde k, ausweis a, land l WHERE
k.ausweis = a.id and k.ausweisland = l.id“

SELECT k.name, k.vorname, k.ausweisnummer, a.ausweis, l.land From Kunde k INNER JOIN land l ON k.land=l.id INNER JOIN ausweis a ON k.ausweis=a.id

Das tolle ist: auf Kommandozeilenebene in MySQL funktioniert
es, in VB aber nicht.
Daher vermute ich, das der Fehler in diesem Bereich liegt
(letzte Zeile):

txtName.Text = Antwort![Name]
txtVorname.Text = Antwort![vorname]
txtAusweisart.Text = Antwort![ausweis]
txtAusweisnummer.Text = Antwort![ausweisnummer]
txtAusweisland.Text = Antwort![ausweisland]

txtName.Text = Antwort!Name
txtVorname.Text = Antwort!vorname
txtAusweisart.Text = Antwort!ausweis
txtAusweisnummer.Text = Antwort!ausweisnummer
txtAusweisland.Text = Antwort!ausweisland

Antwort![l.land] und ähnliche Versuche führten bisher auch
nicht zum Erfolg.

Fehlermeldungen ist:
#3265:#Objekt […] kann nicht gefunden werden“
Wo liegt mein Gedankenfehler? Was übersehe ich die ganze Zeit?

Liebe Grüße, Ute

Gruß.Timo

Hallo Timo!

SELECT k.name, k.vorname, k.ausweisnummer, a.ausweis, l.land
From Kunde k INNER JOIN land l ON k.land=l.id INNER JOIN
ausweis a ON k.ausweis=a.id

Das mit dem SQL-Statement funtioniert.

txtAusweisland.Text = Antwort![land]
habe ich dann selber herausgefunden.

Ja, ich weiß das man sich die [] sparen kann, wenn man keine Sonderzeichen benutzt, was ich nach Möglichkeit vermeide.
Aber ich gewöhne mir das lieber an und nutze es ‚unnötigerweise‘, als später darauf achten zu müssen wo es gesetzt werden muß und wo nicht.
Spricht doch nichts gegen, oder?

Liebe Grüße,
Ute