Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Frage zu DBLookupcombobox (https://www.delphipraxis.net/130038-frage-zu-dblookupcombobox.html)

Thomas F 2. Mär 2009 08:35

Datenbank: Access • Zugriff über: ADO

Frage zu DBLookupcombobox
 
Ich habe eine DBLookupcombobox mit einer Datenbank und einer DBGrid verbunden.
Man wählt mit der DBLookupcombobox die 'Artikel' aus , die dann mit weiteren Daten ('Artikelnummer','Artikelpreis', 'Menge')
in die Tabelle eingetragen werden. Funktioniert auch alles einwandfrei
Nur wenn keine Auswahl getroffen wurde, dann werden die Daten trotzdem eingetragen.
Dann gibts nen Absturz
Wie kann ich das verhindern ??

Delphi-Quellcode:
if  dblookupcombobox1.DataSource.DataSet.FieldByName('Artikel').Value <> NULL then
Daten_eintragen;
......oder besser......

Delphi-Quellcode:
if  dblookupcombobox1.DataSource.DataSet.FieldByName('Artikel').asstring<> '' then
Daten_eintragen;

Andreas Schilling 2. Mär 2009 10:58

Re: Frage zu DBLookupcombobox
 
In der Datenquelle ist immer ein Datensatz eingestellt. Du mußt abfragen ob in der DBLokupcombobox etwas ausgewählt ist.
Delphi-Quellcode:
  if dblookupcombobox1.keyvalue <> null
  then Daten_eintragen;

Thomas F 2. Mär 2009 11:36

Re: Frage zu DBLookupcombobox
 
Zitat:

Zitat von Andreas Schilling
In der Datenquelle ist immer ein Datensatz eingestellt. Du mußt abfragen ob in der DBLokupcombobox etwas ausgewählt ist.
Delphi-Quellcode:
  if dblookupcombobox1.keyvalue <> null
  then Daten_eintragen;

Ja , Danke funktioniert

Aber das ist doch dasselbe wie .....

Delphi-Quellcode:
if  dblookupcombobox1.DataSource.DataSet.FieldByName('Artikel').Value <> NULL then
Daten_eintragen;
.......oder nicht ???

Andreas Schilling 2. Mär 2009 14:09

Re: Frage zu DBLookupcombobox
 
Nein das ist nicht das selbe. Du hast die Datenquelle, welche dahinter liegt, abgefragt. Da steht (wenn die Tabelle nicht leer ist) der Datensatzzeiger immer auf "irgend einem" Datensatz, so dass die Abfrage ob die Artikelnummer <> '' ist immer wahr ist. Wird in der DBLookupCombobox ein Datensatz ausgewählt, dann wird der Datensatzzeiger in der Datenquelle auf den ausgewählten Datensatz verschoben und liefert die richtigen Informationen zum Speichern im neuen Datzensatz. Du erhältst die Information, ob in der Combobox etwas ausgewählt ist, nur über den Keyvalue.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 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