![]() |
Datenbank: Excel ODBC • Version: ? • Zugriff über: ODBC ADO
ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Zitat:
Jetzt meine Frage: Der Verbindungstest zu Excel per ODBC klappt zwar auf Anhieb, aber ich weiß nicht, wie ich dann auf die Daten per SQL zugreifen kann:
SQL-Code:
Was muss man für ??? einsetzen? Ich habe nur noch ein Tabellenblatt in Excel und das heißt TEST. Mit TEST als Tabellenname funktioniert es aber leider nicht.
select * from ????
Ich habe die Tabelle nach Access gewandelt, und da kann man dann
SQL-Code:
einsetzen und es funktioniert. Ich würde nur halt gerne Excel nehmen, weil ich zunächst meine Import-Datenmengen simulieren möchte und dazu beötige ich schon die Rechenfunktionen von Excel, damit es halbwegs sinnvolle und veränderliche Werte ergibt.
select * from Tabelle1
|
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
OK, hat sich inzwischen erledigt, ich bin selbst drauf gekommen. Man muß alle zur Tabelle gehörenden Zellen mit Einfügen/Namen einen Namen geben. Warum auch immer...
|
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Hallo,
Du mußt nicht umbedingt einen Namen vergeben, sondern kannst auch die Namen aller Tabellen aus der Exceldatei abfragen und anschließend in einen SQL-Befehl einfügen. Einen Bespielcode kann ich im Moment leider nicht liefern, weil er im ca. 60 km entfernten Büro liegt. Bei Bedarf liefere ich ihn am Montag nach, ich brauche dann nur eine Info! Hier aus der Erinnerung. Die Befehle zum abfragen der Tabellennamen sind nicht im ActiveX "ADO", sondern im "ADO-Catalog" definiert. Gute Beispiele stehen in der Hilfe von MS Excel -> "ADOX". Im SQL-Befehl muß hinter dem Tabellen ein "$" stehen. Falsch: SELECT * FROM Tabelle1 Richtig: SELECT * FROM Tabelle1$ Ich hoffe, daß ich helfen konnte. Tschüss Gebhard |
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Zitat:
|
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Als Tabellenname muß der Name des Arbeitsblattes mit einem angehängten $ in eckigen Klammern angegeben werden. Dies ist standardmäßig Tabelle1..3 bei der Neuanlage einer Excel-Datei:
SQL-Code:
SELECT * FROM [Tabelle1$]
|
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
@Union: Super, das klappt bei mir! Die eckigen Klammern sind nötig.
Danke! |
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Union hat zwar schon die Antwort geliefert, trotzdem möchte ich einen Beispielscript einstellen. Wie ich bereits am 28.01. geschrieben habe, wurde mein Lösungsvorschlag aus der Erinnerung geschrieben. Dabei habe ich leider die eckigen Klammern übersehen. Im Anhang befinden sich die Projektdateien und eine Exceldatei. Die Exceldatei muß sich in meiner Demo im gleichen Verzeichnis wie die exe-Datei befinden. Sie enthält 3 Tabellen mit den Namen Tabelle 1 bis 3 und einen benannten Bereich mit dem Namen Nikolaus. Der Script zeigt zuerst die Namen der drei Tabellen und danach den Inhalt der Tabelle 1. Versionsübersicht: - Delphi 7.0 - Excel 2002, SP3 - Betriebssystem Windows XP Es wäre schön, wenn Euch meine Demo hilft Gruß Gebhard |
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Vielen Dank für Deine Mühe, Gebhard!
|
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
@Gebhard: Wieso verwendest Du Active-X wenn in Delphi die Funktionalität eingebaut ist? Es gibt doch TAdoConnection.GetTableNames und GetFieldNames, die liefern Dir ganz bequem die gewünschten Werte in einer Stringlist.
|
Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Hallo @Union,
ich benutze Active-X, weil ich diesen Programmteil vor einigen Monaten aus einem VBS-Schulungsheft übernommen und nach Delphi umgeschrieben habe. Ich muß (zu meiner Schande) eingestehen, daß ich nicht nach Delphi - Funktionalität gesucht habe, um diese Aufgabe anders zu erledigen. Tschüss Gebhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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