Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi geändertes DBGrid in Access speichern (https://www.delphipraxis.net/64630-geaendertes-dbgrid-access-speichern.html)

ksh 6. Mär 2006 13:04

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.

marabu 6. Mär 2006 14:13

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

ksh 6. Mär 2006 14:20

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...

marabu 6. Mär 2006 14:24

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

ksh 6. Mär 2006 14:34

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:

marabu 6. Mär 2006 14:39

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

ksh 6. Mär 2006 14:51

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?

ksh 6. Mär 2006 16:33

Re: geändertes DBGrid in Access speichern
 
hallooooo!

kann mir denn niemand sagen wie ich das expotieren kann???? :wall:

marabu 6. Mär 2006 16:49

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:
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;
Nimm dir die Online-Hilfe und informiere dich über die verwendeten Klassen und Methoden.

marabu

ksh 7. Mär 2006 08:52

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 16:05 Uhr.
Seite 1 von 3  1 23      

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