Zum Inhalt springen

2 Tabellen mit C doppelplus korrellieren...


Alrik Fassbauer

Empfohlene Beiträge

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...