Alrik Fassbauer Geschrieben 9. Juni 2001 Teilen Geschrieben 9. Juni 2001 Hallo, miteinander. Ich wollte 2 Tabellen 1er Datenbank miteinander korrelieren. Beide Tabellen haben ein Feld mit einer Zahl gemeinsam, eine Art ID. Ich wollte über ein CDaoRecordset-Objekt den Wert der ID aus der ersten Tabelle einlesen, und dann mittels SQL-Abfrage (ich weiß nicht, ob das nicht auch anders geht, keine Ahnung) DEN Wert der 2. Tabelle aufrufen, der die gleiche ID-Zahl hat wie in Tabelle 1. Das heißt: Tabelle 1 & 2 enthalten je einen Datensatz für den gleichen Eintrag, als, ein Eintrag mit der ID 1 (in beiden Tabellen) gehört zu ein und derselben Person. Exakt: Tabelle 1 enthält Stammdaten über eine Person - die über eine individuelle ID charakterisiert ist - und Tabelle 2 enthält weitergehende Daten, die nicht so statisch sind. Die ID bleicht aber sozusagen immer an einer Person "haften". Eine Select-Abfrage habe ich mir zwar schon zusammengebastelt, aber irgendwie will das Programm nicht. Das Ganze läuft über Jet (Access-Datenbankformat MDB) und die Anzeige der 2. Tabelle soll über ein Dialogfel erfolgen (nicht besonders elegant, aber mir ist nix besseres eingefallen). Hat da jemand einen Vorschlag ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eva Geschrieben 9. Juni 2001 Teilen Geschrieben 9. Juni 2001 Läuft der Select alleine? Oder tritt der Fehler erst später auf? Viele Grüße Eva Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Alrik Fassbauer Geschrieben 9. Juni 2001 Autor Teilen Geschrieben 9. Juni 2001 Schwierig zu beschreiben... Es sollte in etwa so aussehen: Select * from Tabelle2 where Tabelle2.ID like Tabelle1.ID - so in der Art. Aber da ich die Tabelle2 in einem Dialogfeld anzeigen lasse, und die Tabelle1 im "Hauptformular", verkompliziert sich das alles etwas... Genauer: Ich habe das Hauptformular, zeige da ganz normal einen Datensatz mit einer bestimmten ID an, und will in einem Dialogfeld den dazu passenden Datensatz einer 2.Tabelle anzeigen lassen. Auswahlkriterium ist ID (siehe oben). Das heißt, daß ich die ID haben will, aus beiden Tabellen, und miteinander vergleichen will, und dann will ich das Dialogfeld mit der 2.Tabelle mit gerade diesem passenden Datensatz anzeigen lassen. Mein bisheriger Ansazu war, die Werte herauszusuchen und zu vergleichen, dann ein Objekt dieser Dialogklasse zu erstellen, und mit Dialogklassenobjekt.DoModal(); den Dialog anzeigen zu lassen. Oder ich zeige den passenden Datensatz sozusagen in der Dialogklasse an !? (Also wenn DoModal die Kontrolle übernommen hat.) Aber das Problem bleibt: Wie komme ich an beide ID-Werte ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 9. Juni 2001 Teilen Geschrieben 9. Juni 2001 Da gibt es 2 Wege. Entweder geht das über das Feld im Hauptformular oder über eine Hilfstabelle (ist aber etwas umständlich). 1. Weg: "Select * from Tabelle2 where ID=" & Form1!Id.value Das ist jetzt VB Syntax (ich kann so gut wie kein C++) aber ich denke das sollte in C++ ähnlich gehen (Formular und Textfeld in die WHERE-Bedingung einbauen) Ansonsten kannst du ja eine Tabelle mit nur einem Feld anlegen. Vor dem Aufruf des Dialogfeldes schreibst du den Wert der ID mit Update feld... in das Feld. Im der Dialogklasse liest du den Wert aus der Hilfstabelle und nimmst diesen in die WHERE-Bedingung deiner SELECT. Wie gesagt, ist nicht sehr elegant, müßte aber gehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.