Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 ?

Geschrieben

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 ?

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...