![]() |
Datenbank: MyBase • Zugriff über: ?
MyBase Datenbank für Name und Phonenummer
hallo allerseits!
ich habe folgendes problem. i benutze eine tabelle in welche ich mit hilfe eines TDBGrid jeweis den namen und die dazugehörige telefonnummer speichert. nun sollte ich in einer combobox den namen auswählen können, dann schreibt es mir die dazugehörige nummer in ein edit feld. wie kann ich das anstellen? vielen dank für eure hilfe! mfg noiser |
Re: MyBase Datenbank für Name und Phonenummer
Willkommen im Forum, noiser!
Zwar bin ich auch noch ein Beginner, aber ich glaube, trotzdem eine Lösung anbieten zu können. Je nachdem, ob du die Namen direkt aus der Tabelle oder aus einem Query lesen willst, gehst du diese "Liste" an Einträgen durch und übergibst die vorhandenen Namen an eine LookupCombo. etwa so
Delphi-Quellcode:
In OnClick-Ereignis der Combobox kannst du dann den Index und somit den Namen abfragen und mit dem Befehl "Locate" intern zum Datensatz der Query bzw. deiner Tabelle springen.
Combobox1.Clear;
While not Query.Eof do // Im Beispiel wird von einem Ergebnis in einer Query ausgegangen begin Combobox1.Items.Add(FieldByName('Name').AsString) // Für "Name" die Bez. Deiner Tab.-Spalte end;
Delphi-Quellcode:
...ComboBox1Click(Sender: TObject);
begin with Query do If Locate('Name', ComboBox1.Items[Combobox1.ItemIndex], []) then Edit1.Text:= FieldByName('Telefonnummer').AsString; end; Natürlich ist die Sache noch nicht perfekt mit Locate, denn wenn ein Name doppelt vorkommt, springt er nur zum ersten Datensatz. Man könnte auch den Itemindex der Combobox dafür nutzen, um zur entsprechenden Nummer in der Tabelle bzw. des Querys zu springen. (Ich weiß jetzt nicht auswending, ob der Befehl RecNo immer funktioniert, sonst könntest Du den Cursor intern damit auf den entsprechenden Datensatz setzen) Sicherlich kann dir ein Profi noch mehr dazu sagen. Gruß Pfoto |
Re: MyBase Datenbank für Name und Phonenummer
Stop! Ich habe da noch ein kleines "Next" vergessen und ein "Query" vor "FieldByName" wäre auch nicht schlecht.
Delphi-Quellcode:
Combobox1.Clear;
While not Query.Eof do // Im Beispiel wird von einem Ergebnis in einer Query ausgegangen begin Combobox1.Items.Add(Query.FieldByName('Name').AsString) // Für "Name" die Bez. Deiner Tab.-Spalte Next; end; Sorry :oops: Ich hoffe, es sind nicht noch mehr Fehler drin... Pfoto |
Re: MyBase Datenbank für Name und Phonenummer
hi pfoto
vielen dank für eine tipps. leider begreife ich nicht was es mit dem "Query" auf sich hat. die daten werden jeweils in einem xml file abgelegt . ausserdem verwende ich für das dbgrid ein tclientdataset und ein tdatasource. mfg noiser |
Re: MyBase Datenbank für Name und Phonenummer
|
Re: MyBase Datenbank für Name und Phonenummer
Zitat:
Es ist also egal, wo die Datenbank die Daten herholt (z.B. XML), hauptsache Du kannst sie Zeile für Zeile ansprechen (siehe Quell-Code Zeile: "While not EOF do...") Wie genau das mit MyBase funktioniert, weiß ich nicht, schau halt mal im Tutorial. Gruß Pfoto |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz