AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?
Thema durchsuchen
Ansicht
Themen-Optionen

ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

Ein Thema von Frederika · begonnen am 30. Jan 2009 · letzter Beitrag vom 5. Feb 2009
Antwort Antwort
Frederika

Registriert seit: 28. Jan 2009
81 Beiträge
 
#1

ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 30. Jan 2009, 11:15
Datenbank: Excel ODBC • Version: ? • Zugriff über: ODBC ADO
Zitat von sx2008:
Infos über den ConnectionString gibt es hier: http://www.connectionstrings.com
Erstmal vorab nochmals Danke für diesen exzellenten Link. Die ODBC-Verknüpfung zu Excel und Access haben beide soweit auf Anhieb geklappt. Erstaunlich! Man muß halt nur wissen wie.

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:

select * from ???? 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.

Ich habe die Tabelle nach Access gewandelt, und da kann man dann

select * from Tabelle1 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.
  Mit Zitat antworten Zitat
Frederika

Registriert seit: 28. Jan 2009
81 Beiträge
 
#2

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 30. Jan 2009, 12:48
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...
  Mit Zitat antworten Zitat
Gebhard

Registriert seit: 28. Nov 2005
42 Beiträge
 
Delphi 7 Personal
 
#3

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 30. Jan 2009, 20:22
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
Olli
  Mit Zitat antworten Zitat
Frederika

Registriert seit: 28. Jan 2009
81 Beiträge
 
#4

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 2. Feb 2009, 18:19
Zitat von Gebhard:
Im SQL-Befehl muß hinter dem Tabellen ein "$" stehen.
Falsch: SELECT * FROM Tabelle1
Richtig: SELECT * FROM Tabelle1$
Hm, klang vielversprechend, funktioniert aber bei mir nicht: "Syntaxfehler in FROM-Klausel". Sobald das $-Zeichen drin ist, geht's nicht!
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 3. Feb 2009, 02:46
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:
SELECT * FROM [Tabelle1$]
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Frederika

Registriert seit: 28. Jan 2009
81 Beiträge
 
#6

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 3. Feb 2009, 16:23
@Union: Super, das klappt bei mir! Die eckigen Klammern sind nötig.

Danke!
  Mit Zitat antworten Zitat
Gebhard

Registriert seit: 28. Nov 2005
42 Beiträge
 
Delphi 7 Personal
 
#7

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 3. Feb 2009, 19:57
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
Angehängte Dateien
Dateityp: zip ado_-_tabellennamen_in_excel_181.zip (225,1 KB, 45x aufgerufen)
Olli
  Mit Zitat antworten Zitat
Frederika

Registriert seit: 28. Jan 2009
81 Beiträge
 
#8

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 3. Feb 2009, 19:59
Vielen Dank für Deine Mühe, Gebhard!
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 4. Feb 2009, 09:00
@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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Gebhard

Registriert seit: 28. Nov 2005
42 Beiträge
 
Delphi 7 Personal
 
#10

Re: ODBC-Zugriff auf Excel-Tabelle / Name der Tabelle?

  Alt 5. Feb 2009, 09:55
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
Olli
  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 16: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