AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid in ein StrGrid, oder besser gleich nach Excel
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid in ein StrGrid, oder besser gleich nach Excel

Ein Thema von Pumba · begonnen am 12. Nov 2004 · letzter Beitrag vom 13. Dez 2004
Antwort Antwort
Pumba

Registriert seit: 28. Jun 2004
32 Beiträge
 
Delphi 2005 Enterprise
 
#1

DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 12. Nov 2004, 10:40
Hallo an alle Delphianer!!


Wie bekomme ich die Daten von einem DBGrid in ein StrGrid, oder besser gleich nach Excel um sie weiter Auswerten zu können.

Die Daten kommen von einem MS SQL 2000 Server, über ADO greife ich auf Gespeicherte Prozeduren vom Server zu dies gebe die Daten in ein DBGrid, und in mehreren Edit Felderen aus


vielen dank Pumba
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 12. Nov 2004, 10:51
Du denkst da verkehrt rum. Vergesse das Grid, insbesondere das DBgrid und schreibe die Daten direkt in eine Datei. Die muß natürlich so aufgebaut sein, daß Excel was damit anfangen kann. Am besten mit festen Feldlängen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#3

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 12. Nov 2004, 11:18
Nee, noch anders

Anstatt die Daten in Dein DBGrid zu schreiben (ok, musst Du evtl. zur Anzeige beim User) schreibst Du Dir eine Routine, um die Daten direkt nach Excel zu schreiben. Du führst also Deine SQL-Abfrage aus und schreibst dann zeilenweise die Daten nach Excel.

Schau Dir dazu mal die Office-Komponenten in Delphi an, das geht sehr gut und einfach damit.

Gruß Igotcha
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 12. Nov 2004, 11:25
Oder direkt mit ADO und der Jet-Engine: Daten von SQL-Server nach Excel/Access exportieren
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Klarabella

Registriert seit: 28. Sep 2004
59 Beiträge
 
#5

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 12. Nov 2004, 11:59
Kommt halt drauf an, Pumba, was du genau tun willst

Ich hab das auch mal gemacht, also von der Datenbank erst in ein DBGrid, dann in ein StringGrid und schließlich nach Excel, aber das musste ich so machen, weil ich mehrere Querys nacheinander habe laufen lassen und im STringGrid jeweils die neuen Daten im DBGrid mit den vorhandenen verglichen habe.
Und als Möglichkeit für den User habe ich den Export nach Excel eingebaut...

Wenn du sowas in die Richtung machen willst (und verstanden hast, was ich da geschrieben hab ) hier ein paar Codes zum Nachgucken:

Delphi-Quellcode:
rowCount := 0;
    //Übernehmen der Daten aus der DBGrid in ein StringGrid
    while not qryDatenbank.Eof do
    begin
      for k := 0 to DBGrid.Columns.Count - 1 do
      begin
        StringGrid.Cells[k, rowCount] := DBGrid.Fields[k].AsString;
        qryDatenbank.Next;
      end;
      rowCount := rowCount + 1;
      StringGrid.RowCount := rowCount;
    end;
Und hier dann der Export nach Excel:

Delphi-Quellcode:
 procedure ExcelSpeichern;
var RowC, ColC: integer;
    Str: string;
    StrList: TStringList;
begin
  //zunächst wird hier eine csv-Datei erstellt:
  
  StrList := TStringList.Create();

  for RowC := 0 to sgGarantie_Daten.RowCount - 1 do
  begin
    Str := '';
    for ColC := 0 to sgGarantie_Daten.ColCount - 1 do
      Str := Str + sgGarantie_Daten.Cells[ColC, RowC] + ';';
    Delete(Str, length(Str), 1); // löscht den überfluessigen String
    StrList.Add(Str);
  end;

  StrList.SaveToFile('tmpExcel.csv')

  //dann wird die Datei mit Excel geöffnet:
  ShellExecute(Application.Handle, 'OPEN', pchar(ExtractFilePath
     (Application.ExeName) + 'tmpExcel.csv'), NIL, NIL, SW_NORMAL);

  // und schließlich die csv-Datei wieder gelöscht
  DeleteFile(ExtractFilePath(Application.ExeName) + 'tmpExcel.csv');
end;
hoffe, das hilft dir weiter
  Mit Zitat antworten Zitat
Pumba

Registriert seit: 28. Jun 2004
32 Beiträge
 
Delphi 2005 Enterprise
 
#6

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 12. Nov 2004, 13:39
Super danke an alle,
aber einen besonderen Dank und ein dickes Bussi an Klarabella den das war genau das was ich gesucht habe, hab's auch schon ausprobiert und es funktioniert enwandfrei

alles liebe Pumba
  Mit Zitat antworten Zitat
Benutzerbild von recordable
recordable

Registriert seit: 9. Dez 2004
Ort: Neubrandenburg
9 Beiträge
 
#7

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 10. Dez 2004, 14:01
@klarabella

Ich hab das bei mir auch mal probiert aber das mit dem Excel öffnen haut bei mir nicht hin. Fehler: undefinierter Bezeichner ShellExecute! Was muss ich tun? Kann jemand helfen?

MfG recordable
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 10. Dez 2004, 15:03
ShellApi in USES-Klausel einbinden, dann sollte es funktionieren.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von recordable
recordable

Registriert seit: 9. Dez 2004
Ort: Neubrandenburg
9 Beiträge
 
#9

Re: DBGrid in ein StrGrid, oder besser gleich nach Excel

  Alt 13. Dez 2004, 08:14
Danke für die fixe Antwort hatte ShellApi vergessen!
  Mit Zitat antworten Zitat
Antwort Antwort


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:13 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