C++ Builder und Accessdatenbank

Hallo Experten!

Ich bastel gerade mit dem C++ Builder 6 ein Programm
zur Visualisierung einer SPS-gesteuerten Maschine
zusammen. Nun möchte ich noch auf eine Accessdatenbank
zugreifen, in der eine Tabelle mit Auftragsnummer, Höhe,
Breite, Durchmesser, etc steht.

Hierzu habe ich nun eine ODBC-Datenquelle für diese
Access-Datei erstellt, in mein Programm ein Tabellen-
objekt (TTable) eingebunden, und DataBaseName und TableName
ausgewählt.

Wie bekomme ich es nun hin, dass ich z.B. mit einer ComboBox
eine Auftragsnummer auswählen kann, und dann die anderen Werte
der Tabellenzeile in verschiedene Variablen schreiben kann?

(Meine C/C++ Kenntnisse würde ich als eher mager bezeichnen,
aber das zusammenbasteln mit dem Builder klappt eigentlich
schon ganz gut)

Danke schonmal

Christian

Hallo Christian,

eine ComboBox auf dem Formular plaziern und die Datenbank, Spalte Auftragsnummer, auslesen und die ComboBox damit fuellen.

Im OnChange Event der ComboBox den Datensatz suchen, der der ausgewählten Auftragsnummer enstpricht.

Ein DataSource auf der Form mit der TTable verlinken.
Diverse DBEdit oder DBLabel auf die Form legen, und mit der DataSource verlinken. Im DataField die entsprechende Spalte auswählen, während Runtime wird dann der aktuelle Wert der angezeigt.

Good luck

Hans

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Hans!

Danke für die Antwort! Aber mir ist das noch nicht ganz klar.

eine ComboBox auf dem Formular plaziern und die Datenbank,
Spalte Auftragsnummer, auslesen und die ComboBox damit
fuellen.

while (!Table1->Eof)
{
DBComboBox1->Items->Add(Table1->FieldByName(„Auftragsnummer“)->AsString);
Table1->Next();
}

Meinst Du sowas?

Im OnChange Event der ComboBox den Datensatz suchen, der der
ausgewählten Auftragsnummer enstpricht.

Was meinst Du mit „den Datensatz suchen“?

Ein DataSource auf der Form mit der TTable verlinken.
Diverse DBEdit oder DBLabel auf die Form legen, und mit der
DataSource verlinken. Im DataField die entsprechende Spalte
auswählen,

ja, das klappt, mir wird aber nur der letzte Datensatz
angezeigt

während Runtime wird dann der aktuelle Wert der
angezeigt.

Hallo Christian :
(siehe die Antworten unten in Deinem Text)

Hallo Hans!

Danke für die Antwort! Aber mir ist das noch nicht ganz klar.

eine ComboBox auf dem Formular plaziern und die Datenbank,
Spalte Auftragsnummer, auslesen und die ComboBox damit
fuellen.

while (!Table1->Eof)
{
DBComboBox1->Items->Add(Table1->FieldByName(„Auftragsnummer“)->AsString);
Table1->Next();
}

Meinst Du sowas?

HS: ja

Im OnChange Event der ComboBox den Datensatz suchen, der der
ausgewählten Auftragsnummer enstpricht.

Was meinst Du mit „den Datensatz suchen“?

HS:
ein OnChange Event der ComboBox schreiben mit:

Table-\>Filtered=false;
Table1-\>Filter = "Auftragsnummer = '"+ComboBox1-\>Text+"'";
Table1-\>Filtered = true;
Table1-\>First();

Ein DataSource auf der Form mit der TTable verlinken.
Diverse DBEdit oder DBLabel auf die Form legen, und mit der
DataSource verlinken. Im DataField die entsprechende Spalte
auswählen,

ja, das klappt, mir wird aber nur der letzte Datensatz
angezeigt

HS:smiley:urch den Filter wird nur der ausgewählte Datensatz angezeigt.
Gibt acht, für weitere Operationen musst Du Filtered wieder auf false setzen, um so alle Datensätze sehen zu können.

während Runtime wird dann der aktuelle Wert der
angezeigt.

Viel Glück
hans

1 Like