AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feld in DBComboBox auf Unique überprüfen und eintragen
Thema durchsuchen
Ansicht
Themen-Optionen

Feld in DBComboBox auf Unique überprüfen und eintragen

Ein Thema von ATS3788 · begonnen am 24. Okt 2014 · letzter Beitrag vom 26. Okt 2014
Antwort Antwort
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

Feld in DBComboBox auf Unique überprüfen und eintragen

  Alt 24. Okt 2014, 19:09
Datenbank: Firebird • Version: 2.5 • Zugriff über: ZEOSDBO-7.0.3-stable
Hallo
nach Monaten der Krankheit
versuche ich mal wieder zu programmieren.

Also ich versuche zu erklären
was ich benötige.

Ich habe einen Datenfeld "LOCATION"
und fülle das mit der Zeit mit verschiedenen Werten.

Beim starten möchte ich das ich eine Auswahl
dieser Werte "LOCATION" habe.

Die folgende Routine funktioniert ganz gut.

Meine Frage

Kann man das besser bewerkstelligen ?



Delphi-Quellcode:
procedure TMain.FormShow(Sender: TObject);
var
i : integer;
t : boolean;
begin
DataModule1.ZQuery3.First; // First Dataset
while not DataModule1.ZQuery3.Eof do begin
t := true; // Trigger a new Dataset = true
for i := 0 to DBCoEdLOCATION.Items.Count-1 do
if DBCoEdLOCATION.Items.Strings[i] = DataModule1.ZQuery3LOCATION.Value then
t := false;
// Set new Entry into the DBComboBox
if t then
DBCoEdLOCATION.Items.Add(DataModule1.ZQuery3LOCATION.Value);

DataModule1.ZQuery3.Next;
end;
  end;
Martin MIchael
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Feld in DBComboBox auf Unique überprüfen und eintragen

  Alt 24. Okt 2014, 19:56
Versuch es mal so:
Delphi-Quellcode:
procedure TMain.FormShow(Sender: TObject);

begin
  DataModule1.ZQuery3.First; // First Dataset
  while not DataModule1.ZQuery3.Eof do
  begin
    if DBCoEdLOCATION.Items.IndexOf( DataModule1.ZQuery3LOCATION.Value) > -1 then
    begin
      // Set new Entry into the DBComboBox
 
      DBCoEdLOCATION.Items.Add(DataModule1.ZQuery3LOCATION.Value);
    end;
    DataModule1.ZQuery3.Next;
  end;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#3

AW: Feld in DBComboBox auf Unique überprüfen und eintragen

  Alt 25. Okt 2014, 11:57
Danke Markus Kinzler

Es ist schön wieder du programmieren
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#4

AW: Feld in DBComboBox auf Unique überprüfen und eintragen

  Alt 25. Okt 2014, 17:30
if DBCoEdLOCATION.Items.IndexOf( DataModule1.ZQuery3LOCATION.Value) > -1 then Leider kommt da immer "-1" raus !
Martin MIchael
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Feld in DBComboBox auf Unique überprüfen und eintragen

  Alt 25. Okt 2014, 19:53
Da hat sich der Markus wohl vertippt. mach mal ein '=' draus, oder denk drüber nach, was der Code eigentlich machen soll. Dann wärst Du auch alleine drauf gekommen. Übrigens solltest Du dein FELD 'LOCATION' auslagern. Erstelle also eine Tabelle 'Locations' mit zwei Feldern (ID, Beschreibung), pack dort alle möglichen LOCATION-Werte rein (und gib ihnen eine eindeutige ID). In deiner Haupttabelle trägst Du nun in das Feld LOCATION die passende ID aus der 'Locations' Tabelle ein.

Auf diese Weise hast Du in der Locations Tabelle automatisch alle vorkommenden Werte und damit auch sofort die Werte in deiner DBLookup-Combobox. Diese *zeigt* die Beschreibung aus der Locations-Tabelle an, aber setzt den entsprechenden ID-Wert.

Geändert von Dejan Vu (26. Okt 2014 um 10:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#6

AW: Feld in DBComboBox auf Unique überprüfen und eintragen

  Alt 26. Okt 2014, 13:34
Dejan Vu
da hast Du recht

Danke
Martin MIchael
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 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