Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Zugriff auf Excel 2000 (https://www.delphipraxis.net/142445-ado-zugriff-auf-excel-2000-a.html)

little_budda 28. Okt 2009 06:28

Datenbank: "Excel" • Version: 2000 • Zugriff über: ADO

ADO Zugriff auf Excel 2000
 
Hallo,

ich nutze eine ADO Connection um auf eine Excel Tabelle zuzugreifen.
Für Excel 97
Delphi-Quellcode:
  ADOConnectionExcelVV.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
                                           'Data Source='+ OpenDialog1.FileName +';' +
                                           'Extended Properties="Excel 8.0;HDR=No";' +
                                           'Persist Security Info=False';
  ADOConnectionExcelVV.Open;
...
klappt das einwandfrei.
Aber für Excel 2000
Delphi-Quellcode:
  ADOConnectionExcelVV.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
                                           'Data Source='+ OpenDialog1.FileName +';' +
                                           'Extended Properties="Excel 9.0;HDR=No";' +
                                           'Persist Security Info=False';
  ADOConnectionExcelVV.Open;
...
bringt er mir beim Open immer die Meldung "Installierbares ISAM nicht gefunden"

Ich steh leicht auf dem Schlauch.
Hat jemand einen Tipp für mich?
:gruebel:

Bernhard Geyer 28. Okt 2009 07:41

Re: ADO Zugriff auf Excel 2000
 
Lass mal die Versionsinfo "9.0" weg und lass Windows die aktuelle Version selbst bestimmen.

little_budda 28. Okt 2009 07:53

Re: ADO Zugriff auf Excel 2000
 
Klappt auch nicht.
Wenn ich nur "Excel" angebe kommt auch "Installierbares ISAM nicht gefunden"
:cry:

Bernhard Geyer 28. Okt 2009 07:55

Re: ADO Zugriff auf Excel 2000
 
Dann würde ich mal über die Automatisierungsschnittstelle von Excel gehen. Ist eh mit weniger Problemen verbunden als über die JET-Engine zu gehen und manche komische Interpretation von Zellen zu bekommen.

little_budda 28. Okt 2009 07:59

Re: ADO Zugriff auf Excel 2000
 
Da ist es wieder.
Das mangelnde Basiswissen.
...

Wie spreche ich die "Automatisierungsschnittstelle von Excel" an?
Per OLE?

[Edit]Schreibfehler[/Edit]

Nobshaug 9. Nov 2009 11:17

Re: ADO Zugriff auf Excel 2000
 
Hallo little_budda,

Hast du schon versucht einfach die Version 8.0 drin zu lassen? bin da irgendwo auf folgende Aussage gestoßen:

When you want to connect to an external database format supported by the Jet, you need to set the extended properties for the connection. In our case, when connecting to Excel "database", extended properties are used to set the Excel file version.
For an Excel95 workbook this value is "Excel 5.0" (without the quotes), for versions Excel 97, Excel 2000, Excel 2002 or ExcelXP the value is "Excel 8.0".

Also bei mir funktionierts auf jeden Fall.

Zur Excel Automatisierung via OLE wurde schon viel geschrieben, einfach mal suchen, aber bedenke das dann auf dem jeweiligen Rechner auch Excel installiert sein muss.

Gruß,

Nobshaug

little_budda 9. Nov 2009 11:37

Re: ADO Zugriff auf Excel 2000
 
Hallo,

mein ursächliches Problem ist das Einlesen der Daten.
Wenn ich eine Excel 97 Tabelle einlese erhalte ich beim Zugriff auf die erste Spalte Texte und numerische Werte.
Alles gut.
Wenn ich dagegen eine Excel 2000 Tabelle einlese erhalte ich beim Zugriff auf die erste Spalte keine Texte sondern nur numerische Werte.
Die Spalte ist in beiden Fällen in Excel fest auf "Text" formatiert.
Deswegen hätte ich meinen Zugriff gerne auf die korrekte Versionsnummer eingestellt in der Hoffnung das dann auch die Feldwerte wieder vernünftig lesbar sind (Texte und numerisch Werte).

Der Zugriff auf die restlichen Felder der Tabelle klappt einwandfrei auch mit der alten Versionsnummer.
Nur leider bewerte ich die Inhalte aus der ersten Spalte um dementsprechend auf die anderen Spalten zu reagieren.

Ich bin im Moment einen (hässlichen) Umweg über die Inhalte der zweiten Spalte gegangen wo ich Ähnlichkeiten vergleiche.
Das klappt zwar soweit, aber es ist nur eine Frage der Zeit bis mir das wieder vor die Füße fällt.
:pale:

Bernhard Geyer 9. Nov 2009 12:06

Re: ADO Zugriff auf Excel 2000
 
Zitat:

Zitat von little_budda
Wenn ich eine Excel 97 Tabelle einlese erhalte ich beim Zugriff auf die erste Spalte Texte und numerische Werte.
Alles gut.
Wenn ich dagegen eine Excel 2000 Tabelle einlese erhalte ich beim Zugriff auf die erste Spalte keine Texte sondern nur numerische Werte.

Ganau deshalb ist der JET-Zugriff auf Excel eine Notlösung die sehr oft Probleme bezüglich interpretation der Datentypen bereitet. Nimm OLE und alles bleibt (fast immer) Versionsunabhängig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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