AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Excel-Sheet in Datenbank Überführen
Thema durchsuchen
Ansicht
Themen-Optionen

Excel-Sheet in Datenbank Überführen

Ein Thema von allarich · begonnen am 4. Dez 2004 · letzter Beitrag vom 15. Dez 2004
Antwort Antwort
allarich

Registriert seit: 9. Jul 2003
Ort: Erlensee
66 Beiträge
 
Delphi 7 Enterprise
 
#1

Excel-Sheet in Datenbank Überführen

  Alt 4. Dez 2004, 10:11
Hallo Forumsmitglieder,
habe ein Problem, benötige Hilfe.
Habe die Ergebnisse einer umfangreichen rechnerischen Auswertung in einem Excel-Sheet abgespeichert. Ich möchte nun die Ergebnisse mittels Quickreport ausgeben, was nicht funktioniert (ich bekomme keine Verbindung zu den Daten zustande).
Test mit einer Datenbank funktionieren problemlos. Was kann ich tun ? Wer kann helfen ?

MfG
allarich
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

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

Re: Excel-Sheet in Datenbank Überführen

  Alt 4. Dez 2004, 10:18
Verwende ADO als Zugriffsschicht für deine Excel-Tabelle, dann kannst du den Quickreport wie gewohnt einsetzen.

Schau dir dazu mal diesen Thread an, der zeigt dir, wie du via ADO auf eine Excel-Tabelle zugreifen kannst.

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

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Excel-Sheet in Datenbank Überführen

  Alt 4. Dez 2004, 16:16
Hallo Mikhal,
der Tip ist sehr gut, aber das funktioniert nicht auf allen Rechnern in unserem Netz. Bei einigen Rechnern werden Werte in Text erkannt, bei anderen aber weggelassen.
Wo gibt es da noch rechnerspezifische Einstellungen?

Mit freundlichen Grüßen
Detlef
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

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

Re: Excel-Sheet in Datenbank Überführen

  Alt 4. Dez 2004, 17:19
Ist auf allen Rechnern die aktuellste Version der MS Jet installiert? Es kann sein, daß eine veraltete Version nicht alles ausgeben kann, was neuere Excel-Sheets zu bieten haben. Zusätzlich sollte überprüft werden, ob auf allen Rechnern die gleiche (nach Möglichkeit die aktuellste) Version der MDAC (Microsoft Data Access Components) installiert ist.

Quellen für die Jet und die MDAC findest du z.B. auf meiner Homepage unter Download/DBMS.

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

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Excel-Sheet in Datenbank Überführen

  Alt 5. Dez 2004, 12:01
Vielen Dank, das war es!

herzliche Grüße von Detlef
  Mit Zitat antworten Zitat
allarich

Registriert seit: 9. Jul 2003
Ort: Erlensee
66 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Excel-Sheet in Datenbank Überführen

  Alt 7. Dez 2004, 09:00
Hallo mikhal,

danke für Deinen Tip,habe die Verbindung zwischen Excel und Quickreport generell herstellen können(Test erfolgrech verlaufen;ADOConnectionstring). Ich benötige nun aber die Daten aus Tabelle2. Wie kann ich das realisieren ?

MfG
allarich
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

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

Re: Excel-Sheet in Datenbank Überführen

  Alt 7. Dez 2004, 11:48
Wenn du eine ADOConnection verwendest, in die du den Connectionstring einsetzt, kannst du die Methoden GetTableNames und GetFieldNames verwenden, die dir die Namen der vorhandenen Tabellen (bei Excel die Arbeitsblätter) sowie die dazu gehörenden Feldnamen (Spalten) ausgeben.

Der Code-Schnipsel geht davon aus, daß eine AdoConnection conExcel exisitert, in der der gültige ConnectionString eingefügt wurde.

Code:
var
  slTabellen, slFelder: TStringList; // Stringliste zur Aufnahme der Tabellen- bzw. Feldnamen
  sConnectionString: String; // Der ConnectionString
  sTabelle: String;
...
  conExcel.Connected := False;
  conExcel.ConnectionString := sConnectionString;
  conExcel.Connected := True;

  slTabellen := TStringList.Create;
  try
    conExcel.GetTableNames(slTabellen);
  ...
    sTabelle := slTabellen[<Index>];
  ...
    slFelder := TStringList.Create;
    try
      conExcel.GetFieldNames(sTabelle, slFelder); // alle Felder der Tabelle laden
  ...

    finally
      slFelder.Free;
    end;
    ...
  finally
    slTabellen.Free;
  end;
...
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
allarich

Registriert seit: 9. Jul 2003
Ort: Erlensee
66 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Excel-Sheet in Datenbank Überführen

  Alt 15. Dez 2004, 10:38
Hallo mikal,
danke für Deinen Hinweis.
Leider ist dies für mich nicht konkret genug,so daß ich immer wieder scheitere.
Wo ist der Quellcode einzufügen ?
Wie ist conexel def ?
Sind irgend welche Komponenten auf welchen Forms zu plazieren ?
Für eine Antwort wäre ich sehr dankbar!

MfG
allarich
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

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

Re: Excel-Sheet in Datenbank Überführen

  Alt 15. Dez 2004, 11:31
Du hast witer oben geschrieben, daß der ADOConnectionString erfolgreich war, deshalb gehe ich davon aus, daß die ADO-Komponenten besitzt. Zu diesen ADO-Komponenten gehört auch die Komponente TADOConnection. Dieser ADOConnection kannst du den AdoConnectionString übergeben, benennst sie in conExcel um und dann stehen dir u.a. die Methoden GetTableNames und GetFieldNames zur Verfügung.

In dem Code-Schnipsel wird in der Stringliste slTabellennamen die vorhandenen Tabellennamen und in der Stringliste slFeldnamen die zur ausgewählten Tabelle vorhandenen Felnamen aufgenommen. Diese Stringlisten kannst du dir recht einfach in einem Memo-Feld anzeigen lassen (z.B. Memo1.Lines.Assign(slTabellennamen) für die Tabellennamen), um die entsprechenden Namen zu ermitteln. Beachte bitte, daß Excel bei den Tabellenamen immer ein Dollarzeichen an den Namen des Arbeitsblatts anhängt, und du dann bei einem Select-Statement den Tabellennamen in eckige Klammern setzen mußt.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  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 08:54 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