AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Access mit Delphi 6 per ADO - Tipps?
Thema durchsuchen
Ansicht
Themen-Optionen

Access mit Delphi 6 per ADO - Tipps?

Ein Thema von Pogoner · begonnen am 11. Okt 2013 · letzter Beitrag vom 27. Okt 2013
 
Pogoner

Registriert seit: 10. Okt 2013
22 Beiträge
 
Delphi 6 Enterprise
 
#1

Access mit Delphi 6 per ADO - Tipps?

  Alt 11. Okt 2013, 15:23
Datenbank: Access • Version: .mdb • Zugriff über: Delphi 6 ; ADO
Guten Tag ihr Delphiprofis...
Nach meinen Taschenrechner-programmen hatte ich mir ein weitaus größeres Ziel gesetzt und stecke wie das zu erwarten war fest...

Mein Ziel: Aus einer Accessdatenbank Einträge "auswählen" und diese dann irgendwann später als Tabelle ausdrucken.

Bisheriger Fortschritt: Access-Datenbank erstellt, mich in Datasource, AdoTable, AdoConnection etc eingearbeitet... (Auch in SQL etwas, aber das half mir nicht sonderlich weiter...)

Problem: Ich habe meine Einträge durch Eingabe des 'Barcode' in ein Editfeld ausgewählt und die 'Menge' auf 1 gesetzt. Dann nach Menge = 1 gefiltert.
Jetzt möchte ich das per Delphi ausdrucken - geht das gefiltert oder muss ich die ausgewählten Datensätze anstatt per 'Menge:=1' lieber in eine neue Datenbank kopieren, die sich dann beim Drucken löscht und leer neu erstellt?
Um die 'Menge' wieder zurückzusetzen fehlt mir leider ein Befehl um die ganze Spalte zurückzusetzen... Also hab ich das mit meinen Bauer-Methoden probiert:
Delphi-Quellcode:

label
        Gotolabel;

begin
ADOTable1.Edit;
i:= 0; //Nur ein Counter für die Druchläufe
ADOTable1.Filter := 'Menge = ' + Quotedstr('1');
Adotable1.Filtered := True ;

Gotolabel:

ADOTable1.Filter := 'Menge = ' + Quotedstr('1');
Adotable1.Filtered := True ;

If Adotable1.FieldByName('Menge').AsString = '1then
   begin
      ADOTable1.Edit;
      ADOTable1.FieldByName('Menge').AsString := '0';
      Anzahl := ADOTable1.recordcount;
      ADOTable1.Filter := 'Menge = ' + Quotedstr('0');
            i:= i+1;
            Edit2.Text := Inttostr(i);

      ADOTable1.open;
      AdoTable1.Post;

      Anzahl := ADOTable1.recordcount;
    If Anzahl > 1 then begin
       Adotable1.Filtered := False; //BUGGT
    end;
      Goto Gotolabel
    end
   else

  Showmessage ('Auswahl zurückgesetzt') ;
Mein Problem daran: Es klappt bis zum letzten Durchlauf, dann bearbeitet er den letzten Datensatz, bring allerdings beim Ausschalten des Filteres am Ende einen EoF / BoF - Fehler. Er setzt aber alles auf 0 (Code funktioniert...), um den Fehler zu umgehen habe ich den recordcount am Ende reingemacht , damit speichert er allerdings nun den letzten Reset nichtmehr...Zum verzweifeln
Kann mir bitte jemand eine bessere, einfachere, elegantere Lösung für mein Problem geben?
Ganze Spalte bearbeiten oder neue Datenbank erstellen und mit den Datensätzen füllen?

Vielen Vielen Dank für's Lesen und helfen - Hab mich durch 8 Tutorials auf delphi.about.com zu den Datenbanken geschlagen, aber naja...ganz allein gehts scheinbar doch nicht
  Mit Zitat antworten Zitat
 

 

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 14:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz