Moin Moin,
das hat nix mit der Datenbank zu tun, sondern damit, dass du versuchst, mit dem Ausdruck
if tabS.FieldValues['gk8'] <> '')
einen Variant, der Null sein kann, mit einem String zu vergleichen, und dann scheppert's!
Besser wäre es so (Delphi überprüft standardmäßig boolsche Ausdrücke von links nach rechts und bricht ab, wenn er eindeutig ist):
Delphi-Quellcode:
begin
dbFach.Items.Clear;
dbFach.Items.Add(tabS2.FieldValues['lk1']);
dbFach.Items.Add(tabS2.FieldValues['lk2']);
dbFach.Items.Add(tabS2.FieldValues['gk1']);
dbFach.Items.Add(tabS2.FieldValues['gk2']);
dbFach.Items.Add(tabS2.FieldValues['gk3']);
dbFach.Items.Add(tabS2.FieldValues['gk4']);
dbFach.Items.Add(tabS2.FieldValues['gk5']);
if not tabS.FieldValues['gk6'].IsNull and (tabS.FieldValues['gk6'] <> '') then
dbFach.Items.Add(tabS2.FieldValues['gk6']);
if not tabS.FieldValues['gk7'].IsNull and (tabS.FieldValues['gk7'] <> '') then
dbFach.Items.Add(tabS2.FieldValues['gk7']);
if not tabS.FieldValues['gk8'].IsNull and (tabS.FieldValues['gk8'] <> '') then
dbFach.Items.Add(tabS2.FieldValues['gk8']);
if not tabS.FieldValues['gk9'].IsNull and (tabS.FieldValues['gk9'] <> '') then
dbFach.Items.Add(tabS2.FieldValues['gk9']);
end;
Somit, wird erst überprüft, ob das Feld Null ist. Wenn dies nicht so ist, wird überprüft, ob der String nicht leer ist.
MfG
Stevie