Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Prob mit DBCombox und DBEdit (https://www.delphipraxis.net/107625-prob-mit-dbcombox-und-dbedit.html)

djpaull 30. Jan 2008 20:28

Datenbank: mdb-Datei • Version: k.Ahnung • Zugriff über: ADO

Prob mit DBCombox und DBEdit
 
Hallo allerseits,

Ich mach grad eine Übungsaufgabe mit DB für die Schule. Ich möchte, dass mien Prog unter anderem folgendes kann:

1. über eine DBComboBox (oder andere ComboBox) zwischen den Tabellen schalten
2. dass meine DBEdit's die Eigenschaft "DataField" automatisch zugewiesen bekommen, je nach angezeigter Tabelle - sie dienen zum Editieren einzellner felder in einem Datensatz.

Zu 1. : mit
Delphi-Quellcode:
GetTableNames(form2.DBComboBox1.Items, False);
werden zwar meine Tabellen in der DBComboBox aufgefürt, aber es lässt sich KEINE/NIX :wall: auswählen (als ob es schreibgeschütz wäre) - DBComboBox bleibt immer leer, egal welchen Eintrag man wählt. Komischerweise geht es mit ListBox:
Delphi-Quellcode:
 
for i := 0 to Listbox2.Count - 1 do
if listbox2.Selected[i] then k:=i;

self.ADOTable1.Active:=false;
self.ADOConnection1.Connected:=false;
self.ADOTable1.TableName:=listbox2.Items[k];
self.ADOConnection1.Connected:=true;
self.ADOTable1.Active:=true;
Zu 2. : Wenn ich "DataField" festlege, ist alles ok. Automatische Zuweisung wäre besser. So, wie jetzt funzt es nicht:
Delphi-Quellcode:
DBEdit1.DataField:=(string(dbgrid1.Columns[0]))
da krieg ich örgentein Error mit Zugriffsverletzung bla in Modul "Kernel32.dll"

Vorschläge? :)

EDIT1
Punkt 1. gelöst - mit der normalen ComboBox
Delphi-Quellcode:
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
  GetTableNames(self.ComboBox1.Items, False);
  self.ADOTable1.Active:=false;
  self.ADOConnection1.Connected:=false;
  self.ADOTable1.TableName:=(ComboBox1.text);
  self.ADOConnection1.Connected:=true;
  self.ADOTable1.Active:=true;
end;
EDIT2
Punkt 2. gelöst - bei den Eigenschaften von DBGrid die Option "dgEditing" auf "True" gestellt. Jetzt kann man die Felder bearbeiten (speichern nicht vergessen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz