AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

combobox problem

Ein Thema von eddy23 · begonnen am 17. Sep 2004 · letzter Beitrag vom 22. Sep 2004
Antwort Antwort
eddy23

Registriert seit: 4. Sep 2004
15 Beiträge
 
#1

combobox problem

  Alt 17. Sep 2004, 17:17
hi all



ich nutzte eine access db, und eine ado connection. Habe in Form 1 meine eingaben (zb name und datum, vorname), und speichere die Daten in der datenbank.

nun soll in der combobox die "namen"- Spalte aus der access db gelesen werden, und die andern datenssätze sollen damit gesteuert werden. hum is das verwirrt


Bsp:


Eingabe: Name Datum Vorname
Richter 17.09.2004 Gerdrut
Müller 16.09.2004 Michael


Ausgabe: in der combobox sollen nun richter und müller stehen, wenn ic hdie auswähle, soll in anderen feldern, die zugehörigen daten erscheinen .D


hoffe ihr versteht mich danke
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: combobox problem

  Alt 17. Sep 2004, 17:45
So vertwirrend nun auch nicht.

Du liest die andern sachen einfach in OnChange-Event aus
  Mit Zitat antworten Zitat
eddy23

Registriert seit: 4. Sep 2004
15 Beiträge
 
#3

Re: combobox problem

  Alt 18. Sep 2004, 11:13
öhm ja, verstehe ich ned ganz

das problem ist, hab ich vergessen zu erwähnen, das in meiner combobox nix angzeigt wird, wenn ich die ado connection aufgebaut habe
  Mit Zitat antworten Zitat
eddy23

Registriert seit: 4. Sep 2004
15 Beiträge
 
#4

Re: combobox problem

  Alt 21. Sep 2004, 16:07
kann mir keiner helfen ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: combobox problem

  Alt 21. Sep 2004, 16:12
Zitat von eddy23:
das problem ist, hab ich vergessen zu erwähnen, das in meiner combobox nix angzeigt wird, wenn ich die ado connection aufgebaut habe
Dann solltest du eventuell erstmal das Problem lösen. Da es aber nichts mit deiner ursprünglichen Frage zu tun hat und wohl eher ein datenbank Problem ist, solltest du die entsprechende Frage in der DB-Sparte stellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
eddy23

Registriert seit: 4. Sep 2004
15 Beiträge
 
#6

Re: combobox problem

  Alt 21. Sep 2004, 20:31
wieso, wir sind hier doch in datenbanken sparte, und ich denk mal das das mit was zu tun hat, darum frage ich ja hier


zb wenn ich dbgrid nehme funzt es wird alles angezeigt, nur mit der combobox halt ned, die aber gleich auch meine datensätze steuern soll
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: combobox problem

  Alt 22. Sep 2004, 07:55
Zitat von eddy23:
... nur mit der combobox halt ned, die aber gleich auch meine datensätze steuern soll
Hai eddy23,

ich glaube hier liegt ein kleines "Verständnissproblem" vor
Mit einer DBCombobox kannst Du nicht in einer Tabelle navigieren! Mit dieser kannst Du dem Datenfeld das Du in DataField angegeben hast einen Wert zuweisen der entweder in die Combobox eingetippt wird oder ein Wert der aus der Eigenschaft Items ausgewählt wird.

Wenn Du mit einer "Combobox" in deiner Tabelle navigieren möchtest kannst Du dafür eine DBLookupCombobox missbrauchen.
Zuerst aber mal die "offizielle" Verwendung der DbLCb.
Diese ist dafür da um im Feld DataField der Tabelle DataSource den Wert aus dem Feld KeyField der Tabelle ListSource zuweisen zu können. Angezeigt wird in der DbLCb das Feld ListField aus der Tabelle ListSource.

Uff... schöner Satz oder?

Ein klassiches Beispiel dafür ist zum Beispiel das Speichern von Anreden in einer Adress-Tabelle:
Code:
Adress-Tabelle
adress_id : Integer
anrede_id : Integer
name     : String
vorname  : String
Code:
Anreden-Tabelle
anrede_id : Integer
anrede   : String
Die Eigenschaften der DBLookupComboBox wären jetzt so:
Code:
DataSource : Adress-Tabelle
DataField : anreden_id
ListSource : Anreden-Tabelle
KeyField  : anreden_id
ListField : anrede
So könnte man mit Hilfe der DbLCb die Anrede ändern.

Aber das alles möchtest Du ja überhaupt nicht
Du möchtest nur mit Hilfe einer ComboBox in eine Tabelle navigieren. Ganz einfach. Lasse DataSource und DataField unbenutzt.
Möchtest Du zum Beispiel durch die Adress-Tabelle navigieren setze die Eigenschaften so:
Code:
DataSource :
DataField :
ListSource : Adress-Tabelle
KeyField  : adress_id
ListField : name
Einen kleinen Fehler hat das ganze aber! Wenn Du auf andere Weise durch deine Tabelle navigierts (DBGrid, .Next, .First usw) bekommt die DbLCb das nicht mit. In diesem Fall müsstest Du dich von Hand darum kümmern das die Anzeige dort stimmt.

So, ich hoffe das hilft Dir etwas weiter.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#8

Re: combobox problem

  Alt 22. Sep 2004, 08:37
Hallo,
ich "mißbrauche" die ComboBox (NICHT DBCombo...) auch oft zum Navigieren in der Datenmenge. Wie Sharky schon gesagt hat, ist hierbei allerdings Handarbeit erforderlich.
z.B. so:
Eine kleine Datenstruktur zur Speicherung der ID in meiner Tabelle
(Jede Tabelle bekommt bei mir eine LongInteger ID als Primary Key)

Delphi-Quellcode:
type aTag = class(TObject)
  ID : Integer;
end;
Dann eine Funktion mit der die Daten einer SQL-Abfrage
(z.B. Select Vorname + ' ' + Nachname as AnzeigeText, IDAdresse as AnzWert from Adressen Order by Nachname ASC ) in der ComboBox dargestellt werden:

Delphi-Quellcode:
procedure TDBTools.readDBDaten( SQLAbfrage :String; Combo:TComboBox );
var tmpTag : aTag; tmpStr:String;
begin
  with DBModul.SQLAbfrage do begin
    Close;
    SQL.Clear;
    SQL.Add( SQLAbfrage );
    CursorType := ctOpenForwardOnly;
    Open;

    while not EOF do begin
      tmpStr := FieldbyName('AnzText').asString;
      tmpTag := aTag.Create();
      tmpTag.ID := FieldbyName('AnzWert').asInteger;
      Combo.Items.AddObject( tmpStr,tmpTag);
      next();
    end;
    Close;
    CursorType := ctKeySet;
  end;
end;
Im Programm steht dann im OnChange Event der ComboBox etwa folgendes:

Delphi-Quellcode:
einTag := aTag( meineComboBox.Items.Objects[ meineComboBox.ItemIndex ] );
tmpIDAdresse := einTag.ID;
dann Selektion des Datensatzes via SQL-Statement

"Select * from Adressen where IDAdresse =" + tmpIDAdresse oder falls die Daten sowieso schon in einer Tabelle verfügbar sind

Delphi-Quellcode:
if ADOTable1.Locate('IDAdresse',tmpIDAdresse) then begin
  // usw.
end;
Ich hoffe es hilft.
Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#9

Re: combobox problem

  Alt 22. Sep 2004, 08:41
Zitat von nieurig:
Hallo,
ich "mißbrauche" die ComboBox (NICHT DBCombo...) ...
Uff...Ich habe, da wir in der DB-Sparte sind, ComboBox automatisch mit der DBComboBox gleichgesetzt
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
eddy23

Registriert seit: 4. Sep 2004
15 Beiträge
 
#10

Re: combobox problem

  Alt 22. Sep 2004, 13:54
danke für die hilfe werde das mal testen


aber ich wollte halöt mit der combobox machen weil die sich für meine programm gut eignet.

ich will ja nicht direkt in der tabelle navigieren. ich will halt nur in der combobox zb alle namen drine stehen haben, die ich vorher in die datenbank gespeichert habe. wenn dann ein name angezeigt wird, will ich nur in anderen datenfeldern, die zugehörigen daten angezeigt haben,



ich dachte das geht

mfg eddy
  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 12:39 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