Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen (https://www.delphipraxis.net/173604-durch-anklicken-des-buttons-datensaetze-im-dbgrid-anzeigen.html)

AnfängerDelphi 6. Mär 2013 17:10

Datenbank: MS-Access • Version: 2000 • Zugriff über: ADO

Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Hallo an alle,

ich habe folgende Frage:
Ist es möglich,in einem DBGrid Datensätze hinzuzufügen,ohne den vorherigen Datensatz zu löschen,oder zu überschreiben?
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Text := 'SELECT Artikel FROM Tabelle WHERE Artikelnummer=' + f1;
  ADOQuery1.ExecSQL;
  ADOQuery1.Open;
end;
Wenn ich auf den Button klicke,wird ein Datensatz im DBGrid angezeigt,dies funktioniert auch soweit.
Nur wird immer der aktuelle Datensatz überschrieben.
Mit jedem Klick soll aber ein weiterer Datensatz im DBGrid hinzugefügt werden.
Wie kann ich dies ändern,damit alle Datensätze erhalten bleiben???

Mfg AnfängerDelphi

DeddyH 6. Mär 2013 17:16

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Dein SQL selektiert ja genau eine Artikelnummer. Du könntest das ändern, indem Du Dir (in Delphi, nicht in SQL) eine Liste der Artikelnummern anlegst und diese dann selektierst.
SQL-Code:
SELECT Artikel FROM Tabelle WHERE Artikelnummer IN (<Kommagetrennte Liste>)

AnfängerDelphi 6. Mär 2013 18:37

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Meinst du,das ich meine Datenbank komplett in ein ListView lade und von dort aus meine Artikel auswähle...?
Ich weiß im moment nicht so genau,wie ich deinen Tip umsetzen soll.
Könntest du mir es bitte an einem Beispiel beschreiben?

Mfg

DeddyH 6. Mär 2013 18:45

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Plies uäitäminnit.

DeddyH 6. Mär 2013 18:51

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Ich habe mal schnell eine kleine Beispielanwendung geschrieben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Nummern: TStringlist;
  SQL: string;
  i: integer;
begin
  (* Liste für die Auftragsnummern erzeugen *)
  Nummern := TStringlist.Create;
  try
    (* Artikelnummern '1' bis '10' hinzufügen *)
    for i := 1 to 10 do
      Nummern.Add(QuotedStr(IntToStr(i)));
    (* Trennzeichen auf Komma setzen *)
    Nummern.Delimiter := ',';
    (* SQL zusammenbauen *)
    SQL := Format('SELECT Artikel FROM Tabelle WHERE Artikelnummer IN (%s)',
      [Nummern.DelimitedText]);
    ShowMessage(SQL);
  finally
    (* Liste freigeben *)
    Nummern.Free;
  end;
end;
Die Liste müsste bei Dir natürlich global sein. Deine Variable f1 würde ihr dann jeweils hinzugefügt.

AnfängerDelphi 6. Mär 2013 20:44

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Danke für dein Beispiel,ich melde mich sobald ich es ausprobiert habe.

Furtbichler 6. Mär 2013 20:48

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Zitat:

Zitat von DeddyH (Beitrag 1206226)
Plies uäitäminnit.

Johr Inglisch iss gräit.

mkinzler 7. Mär 2013 06:57

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Zitat:

Zitat von Furtbichler (Beitrag 1206240)
Zitat:

Zitat von DeddyH (Beitrag 1206226)
Plies uäitäminnit.

Johr Inglisch iss gräit.

He is indeed a run-away :lol:

haentschman 7. Mär 2013 17:30

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
[OT]
:shock: habt ihr alle bei Loddar geübt ?
Zitat:

No one learns you English like I
:lol:
[/OT]

AnfängerDelphi 28. Mär 2013 10:22

AW: Durch Anklicken des Buttons,Datensätze im DBGrid anzeigen
 
Hallo,

ich habe folgende Lösung für mich gefunden.

Zuerst erstellt man im sich im Spalteneditor vom ListView seine Spalten.
Dann legt man noch einen Button,mit folgendem Code an.

Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
begin
        ListView1.Items.BeginUpdate;
        aListItem := ListView1.Items.Add;
        aListItem.Caption := LabeledEdit2.Text; //gibt die erste Spalte vom Datensatz an
        aListItem.SubItems.Add(ADOQuery1.FieldByName('Artikelnummer').AsString);
        aListItem.SubItems.Add(ADOQuery1.FieldByName('Lagerbestand').AsString);
        .......usw
        ListView1.Items.EndUpdate;

end;
Immer wenn der Button gedrückt wird,wird eine neue Zeile hinzugefügt,ohne die vorherige zu überschreiben.

Allen wünsche ich noch ein frohes Osterfest.

Mfg

AnfängerDelphi


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