AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensatz auswählen, mit ListBox oder ComboBox
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatz auswählen, mit ListBox oder ComboBox

Ein Thema von abi · begonnen am 14. Jun 2004 · letzter Beitrag vom 15. Jun 2004
Antwort Antwort
Seite 1 von 3  1 23      
abi

Registriert seit: 20. Apr 2004
Ort: Köln
143 Beiträge
 
#1

Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 10:25
Hallo

ich habe folgendes Problem, ich habe mehrere DBs.

Meine Haupttabelle hat ein Elementnames

ArbeiterID

diese veweist wieder auf eine andere DB mit dem namen Arbeiter
in dieser ist enthalten.

Nummer
Vorname
Nachname
Abteilung

Jetzt wollte ich das in meiner ListBox oder ComboBox nicht nur der Vorname, sondern auch der Nachname steht.

Da ich dieses schon in einem anderen Thread weit geht diskutiert habe und heraus gefunden habe. Das man dieses nur mit der ListBox oder ComboBox machen kann und nicht mit der Lookup....Box.

Ich habe jetzt eine ListBox und eine ComboBox gemacht. In denen meine Arbeiter drin stehen.

Wenn ich jetzt eine ListBox nehme kann ich aber keine Arbeiter auswählen
und
wenn ich die ComboBox nehme kann ich auch nichts auswählen.

Ich machen alles mit Tables.

Vielleicht liegt das Problem daran, aber dafür kenne ich mich zuwenig aus.
Wenn ich einen neuen Datensatz einfügen will, gehe ich nur über meine Haupttabelle und nicht übermeine Arbeiter Tabelle.

Diesen Befehl nutze ich dafür.
Datenmodul.DataModule2.taGeber.Append; Ich hoffe das ihr mein Problem verstanden habt.

Schon mal danke für eure Antworten.

mfg
abi
Wer nicht fragt, bleibt dumm.
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#2

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 10:42
Ich habe auch mit Table - Kompos angefangen und bin dann aber ganz schnell zu Querys gewechselt.

Du kannst dir den Vornamen und Namen ganz einfach wie in den anderen Thread beschrieben anzeigen lassen, das sollte ja funktioniert haben.

Nun zu deinem Problem.

Öffne mal ein neues Project und ersetze die Table durch eine Query.
Versuch einfach mal folgenden Code um die Daten in einer LISTBOX anzeigen zu lassen.

Im OP bei DatabaseName schreibst du einfach den Pfad der DB (aber nur den Pafd ohne den DB Namen) rein und in SQL einfach den folgenden Code.

Code:
Select * From DB
Jetzt kannst Du dir testweise ein DBGrid auf Form ziehen und noch eine DataSource. Nun verknüpfst Du eine die DS mit dem Query und das Grid mit der DS. Active = true setzen und du hast die Daten im Grid zu stehen.

Nun änderst Du den Code aus dem anderen Thread von mir etwas ab und ersetzt die Table durch die Query.

Das ganze in die OnCreate - Ereignis eingetragen und beim start sollten dann alle Vornamen und Namen in der Listbox drinstehen.

Versuch das erstmal und dann machen wir weiter.

Ein kleiner Tip von, am besten kaufst Du dir ein Buch über DB-Programmierung. Ich mußte es mir auch kaufen, da das Thema sehr umfangreich.
  Mit Zitat antworten Zitat
abi

Registriert seit: 20. Apr 2004
Ort: Köln
143 Beiträge
 
#3

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 10:53
Hallo Albi
schon das du mir wieder hilfst, werde des jetzt gleich mal ausprobieren.

Aber ich hab da mal wieder eine Frage die nicht zum Thema gehört.

Welches Buch würdes du mir empfehlen, hab Delphi 5.

Kann es sein das man mit Delphi 6 schon besser mit Datenbank arbeiten kann. Da ich zur Zeit ein Buch hab für Delhi 6.

abi
Wer nicht fragt, bleibt dumm.
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#4

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 11:04
Ich habe mir das Buch Programmieren lernen in Delphi 7 gekauft, dort gehen die Autoren erst auf Grundlagenwissen ein und später ausführlich auf die Datenbankprogrammierung ein. In meinen Augen für Einsteiger in diese Matterie genau das richtige.

Bücher zu diesem Thema gib es hier.
  Mit Zitat antworten Zitat
abi

Registriert seit: 20. Apr 2004
Ort: Köln
143 Beiträge
 
#5

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 11:10
Hallo Albi
soweit habe ich des jetzt.

Jetzt stehen in meiner ListBox, die Vornamen und die Nachnamen.
Wer nicht fragt, bleibt dumm.
  Mit Zitat antworten Zitat
abi

Registriert seit: 20. Apr 2004
Ort: Köln
143 Beiträge
 
#6

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 12:15
Hallo Albi
kannst du mir weiter helfen, was muss ich denn jetzt machen.

abi
Wer nicht fragt, bleibt dumm.
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#7

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 12:28
So ab hier wird es etwas komplizierter. Ich werde dir hier nicht den kompletten Code dafür geben. Nur einen Link der dir zeigt wie geht.

Du hast nun die 2 Felder deiner DB zusammengeführt und kannst diese nicht einfach auswerten, dafür müst du die string erst wieder zerlegen. Hier wird gezeigt wie es geht.

Und hier ist noch die Query-Abfrage der DB.

Code:
With Query1 Do
  Begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from DBMandanten.db WHERE (MVorname LIKE "'+Label1.Caption+'")'
           +'AND (MName LIKE "'+Label2.Caption+'")');
    open;
  end;
Label1 und Label2.Caption habe ich nur so ausgewählt es können auch ganz einfach Variablen sein.
  Mit Zitat antworten Zitat
abi

Registriert seit: 20. Apr 2004
Ort: Köln
143 Beiträge
 
#8

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 12:33
Hallo Albi
dann fang ich mal an damit.

Danke

abi
Wer nicht fragt, bleibt dumm.
  Mit Zitat antworten Zitat
abi

Registriert seit: 20. Apr 2004
Ort: Köln
143 Beiträge
 
#9

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 14:31
Hallo Albi
bekomme des zwar alles zum laufen aber brauche ich des überhaupt.

Irgendwie stehe ich gerade auf dem Schlauch.

Du hast mir geschreiben.

Zitat:
Und hier ist noch die Query-Abfrage der DB.

Code:
With Query1 Do
  Begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from DBMandanten.db WHERE (MVorname LIKE "'+Label1.Caption+'")'
           +'AND (MName LIKE "'+Label2.Caption+'")');
    open;
  end;
Label1 und Label2.Caption habe ich nur so ausgewählt es können auch ganz einfach Variablen sein
Jetzt hab ich in Label1 'Wilhelm' und in Label2 'Horst' stehen. Jetzt zeigt mir meine Tabelle alle Arbeiter an die Wilhelm Horst hiessen.

Damit sortiere ich doch nur meine Abfrage.

Dann habe ich auch noch deinen Link ausprobiert.

Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
begin
   while pos(';',strl.text) > 0 do
     begin
     listbox1.Items.Add(copy(strl.text, 1, pos(';',strl.text)-1));
     str :=strl.text;
     delete(str,1,pos(';',str));
     strl.text := str
   end;
end;
Aber da brauch ich ja einen TListString und sowas hab ich doch gar nicht. Ausserdem will ich von meiner ListBox raus schreiben nicht rein schreiben.

Dann habe ich noch was probiert.
Zitat:
Zitat von hboy:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;
var
  zeile: Array[0..10] of string[255];

implementation

{$R *.dfm}

const
sep = ';';

procedure zerlegen(s: string);
var
currentitem:integer;
i: integer;

  procedure nextitem;
  begin
    inc(currentitem);
    zeile[currentitem] := '';
  end;

begin
  currentitem :=-1;
  nextitem;
  for i :=1 to length(s) do
  begin
    if s[i] <> sep then
      zeile[currentitem] := zeile[currentitem] + s[i]
    else
      nextitem;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  memo1.Clear;
  zerlegen(edit1.Text);
  for i:=0 to 10 do memo1.Lines.Add(zeile[i]);
end;

end.
Aber damit zerlege ich auch nur das was ich eintippe.

Vielleicht liege ich gerade total falsch. Aber brauche ich das überhaupt alles.

Ich will doch nur meine ListBox oder ComboBox zum Auswählen nehmen. Und dann kann ich doch auch den Index nehmen. Und da ich bei meiner Arbeiter Tabelle eine laufende Varialbe Deklariert habe. Ist dieser doch auch nicht so verschieden zum Index.

Aber ich kann bis jetzt immer noch nichts bei meiner ListBox oder ComboBox auswählen.

Kann des sein das sich mein Problem erübrigen würde wenn ich die EnterpriseVersion hätte.

Denn ich habe in deinem Link einen gefunden, bei dem ging es mit Semikola und dieser hatte Delphi5 Enterprise.

Ich hab ja nur Delphi5 Proffesional.

mfg
abi
Wer nicht fragt, bleibt dumm.
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#10

Re: Datensatz auswählen, mit ListBox oder ComboBox

  Alt 14. Jun 2004, 16:32
Hallo abi,

jetzt versteh ich gar nichts mehr von dem was du machen willst. Erst willst Du nur den Namen und Vornamen in der ListBox anzeigen. Dann soll der n:1 Beziehung werden und jetzt wieder nicht. Dann willst Du über die Listbox einen Datensatz einfügen.

Was willst Du soll den Ergebnis sein?

Ich habe mir jetzt alle Beiträge zu diesem Thema von dir mal angeschaut. Willst Du in der ListBox wo der Wilhelm drinsteht den Namen auswählen und zu diesem dann einen neuen DS anlegen?

Ich werde das Gefühl nicht los, das wir hier die ganze Zeit aneinander vorbeireden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:11 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