![]() |
Datenbank: Access • Zugriff über: ADO
geändertes DBGrid in Access speichern
hallo alle zusammen!
nachdem ich jetzt erfolgreich meine Daten nach Delphi importieren kann, will ich nun in die Tabelle einfach Werte eintragen können und diese dann nach Access exportieren und speichern. wie kann ich das realisieren? hier mal der Quellcode bisher:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, DB, ADODB, Menus; type TForm1 = class(TForm) Button1: TButton; DataSource1: TDataSource; ADOTable1: TADOTable; DBGrid1: TDBGrid; MainMenu1: TMainMenu; Datei1: TMenuItem; ffnen1: TMenuItem; N1: TMenuItem; Speichern1: TMenuItem; Speichernunter1: TMenuItem; N2: TMenuItem; Beenden1: TMenuItem; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin close; end; // Hinzufügen der Laufzeitanbindung procedure TForm1.FormCreate(Sender: TObject); var verz: string; begin // Ermitteln des aktuellen Pfades verz := ExtractFilePath(ParamStr(0)); with ADOTable1 do begin try ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+verz+'db1.mdb;Mode=Read|Write|Share Deny None;Persist Security Info=False'; TableName := 'db1'; Active := true except Beep; ShowMessage('Die Datenbank DB1.MDB befindet sich nicht '+ #10#13 + 'im aktuellen Verzeichnis '+verz) end end end; procedure TForm1.Beenden1Click(Sender: TObject); begin close; end; procedure TForm1.Button2Click(Sender: TObject); begin // hier soll die aktuelle Tabelle in Access gespeichert werden end; end. |
Re: geändertes DBGrid in Access speichern
Hallo.
Du arbeitest mit einer Datenbank. Die Änderungen, die du im DBGrid machst, kannst du mit dem DBNavigator explizit bestätigen oder implizit durch das Wechseln des aktuellen Datensatzes. Du erkennst den Erfolg deiner Bemühungen an dem geänderten Symbol im aktuellen Datensatz des DBGrid. Ein Speichern, wie du es von einer Textdatei gewohnt sein magst, gibt beim Arbeiten mit Datenbanken nicht. Grüße vom marabu |
Re: geändertes DBGrid in Access speichern
aha! :shock:
wäre folgendes auch möglich? z.B. von Delphi aus Access mit meiner DB öffnen und dann speichern.... habe in dem Kochbuch zwar etwas über Access-Reports drucken gelesen, aber leider steht nichts genaueres da! nur, dass es über die OLE-Schnittstelle geht... |
Re: geändertes DBGrid in Access speichern
Wie meinst du das? Möchtest du bestimmte Daten aus der Datenbank in einer Datei speichern - quasi eine Exportfunktion realisieren?
marabu |
Re: geändertes DBGrid in Access speichern
also, soll folgendermaßen funktionieren:
lese mit Hilfe von ADO aus Access eine DB ein. Dann führe ich (in naher Zukunft) Berechnungen aus und schreibe die Werte in die Tabelle. und jetzt soll die ganze Tabelle wieder ins Access rein. würde es auch mal als Export betiteln wenn ich das so lese... :wink: |
Re: geändertes DBGrid in Access speichern
Warum willst du die Daten nicht gleich in der Datenbank ändern? Ein Export ist nicht sehr schwer zu realisieren, wenn du das Exportformat erstmal festgelegt hast, aber wenn du keine guten Gründe für diese Vorgehensweise hast, dann empfehle ich dir direkt mit der Datenbank zu arbeiten.
marabu |
Re: geändertes DBGrid in Access speichern
weil es sehr komplexe mathematische Berechnungen sind, die auch zu den jeweiligen Daten umgeändert werden müssen. es werden sozusagen die Ausgangsdaten per Access angegeben.
es existiert ein altes Modell in Pascal, weswegen es jetzt in Delphi umgesetzt werden soll. und wie ist das jetzt mit dem exportieren? |
Re: geändertes DBGrid in Access speichern
hallooooo!
kann mir denn niemand sagen wie ich das expotieren kann???? :wall: |
Re: geändertes DBGrid in Access speichern
Musst du gleich randalieren, nur weil ich meine Lebensmittel einkaufe?
Zum Exportieren iterierst du über einen DataSet (z.B. ADOQuery) und schreibst die Daten in deinem gewünschten Format weg - hier CSV - so oder ähnlich:
Delphi-Quellcode:
Nimm dir die Online-Hilfe und informiere dich über die verwendeten Klassen und Methoden.
var
s: TStrings; begin s := TStringList.Create; // die Query braucht eine Connection with ADOQuery do begin SQL.Text := 'select * from tabelle'; Open; while not Eof do begin s.Clear; for i := 0 to Pred(FieldCount) do // hier besser den Feldtyp auswerten s.Add(Fields[i].AsString); // anstatt DeinExport() hier eine Anzeige ShowMessage(s.CommaText); Next; end; Close; end; s.Free; end; marabu |
Re: geändertes DBGrid in Access speichern
na gut, was zu essen ist noch erlaubt! :wink:
Ich versuche gerade die ganze Zeit schlau zu werden. aber leider will die Hilfe nicht so wie ich oder umgekehrt! :x Hab ein ADOQuery eingebaut, die DataSource eingestellt und den ConnectionString eingegeben. Wenn ich den Namen der Tabelle eingebe bekomme ich diese Message mit den Daten. ABER: Exportieren mache ich ja gar nicht oder wie? :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 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