![]() |
Datenbank: Excel • Zugriff über: ADO
ADO GetTableNames mit Excel falsche Werte
Hallo,
hab leider mal wieder ein Problem. Ich greife über ADO auf eine Exceldatei zu.
Delphi-Quellcode:
Connection funktioniert.
ADOcon.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0' +
';Data Source='+ DBPATH + ';Extended Properties=Excel 8.0'+ ';Persist Security Info=False'; ADOcon.Open; if ADOcon.Connected then begin ADOcon.GetTableNames(selTablename.Items); ... end; Jedoch erhalte ich nicht die richtigen Tabellennamen. - Bei einem Arbeitsblattnamen mit Bindestrich (-) wird der Tabellenname in Anführungszeichen gesetzt. - Bei allen Arbeitsblättern wird ein $ angefügt - Bei einem Arbeitsblatt mit festgelegten Druckbereich wird '$Druckbereich' angefügt Gebe ich bei GetTableNames etwas falsches an, oder gibt es eine andere Funktion die ich Aufrufen kann. Kann man bei GetTableNames die Auflistung des Druckbereichs ausschalten Danke Sausemann |
Re: ADO GetTableNames mit Excel falsche Werte
Er gibt dir die Bereiche so wie er sie selbst versteht.
Ein select macht man dort nunmal von SheetXXX$ und bei einer named Range ist es nunmal andersrum: $Rangename. GetTableNames ist für diejenigen gedacht, die sich SQL ohne wissen der Datenquelle zusammenbauen. Das was du da machen willst ließe sich sicherlich auch über Automation von Excel selbst lösen. (Der Excel Jet provider braucht doch auch ein installiertes Excel, oder? :gruebel: ) |
Re: ADO GetTableNames mit Excel falsche Werte
Hi Elvis,
Zitat:
Außerdem:
Delphi-Quellcode:
mußte dann funktionieren ... jedoch Fehlanzeige (Syntexfehler in FROM-Klausel ... bei "Select * FROM Tabelle1$" ist das ja auch logisch, oder?)
ADOtable.TableName := selTablename.Items[selTablename.ItemIndex];
Zitat:
Bezogen auf die "unbekannten" Tabellen, die ich Variabel einbinden möchte oder meine Unkenntnis??? Zitat:
Jedenfalls möchte ich vermeiden, daß Excel installiert sein muß um auf eine .xls-Datei zuzugreifen. |
Re: ADO GetTableNames mit Excel falsche Werte
Da du den Jet-Treiber verwendest, solltest du die Namen in eckige Klammern fassen. Dann funktioniert es eigentlich (so macht es MS ja auch).
Grüße Mikhal |
Re: ADO GetTableNames mit Excel falsche Werte
Zitat:
Ich füge die GetTableNames-Ergebnisse in eine Combobox (selTablename.Items) ... und da sieht es einfach *doof* aus, wenn ein $ dahinter ist oder es in Anführungszeichen aufgelistet wird. Ich könnte die Liste auch durch ein Script anpassen ... ist das aber die einzigste Möglichkeit??? ... und wie Filter ich z.B. den Eintrag mit dem Druckbereich? Nach '$Druckbereich' suchen bringt nichts, wenn eine andere Sprache in Windows eingestellt ist. Danke Sausemann |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 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 by Thomas Breitkreuz