Zitat von
glkgereon:
Ist
ADO nicht für Datenbanken? was hat das mit Excel zu tun?
Ja -
ADO ist für Datenbanken. Glücklicherweise läßt sich über
ADO eine Exceltabelle als Datenbank ansprechen.
Der Zugriff erfolgt von Deinem Programm üder
ADO -> JetEngine -> Excel.
Das
ADO die Datenbank in einer Exceltabelle findet und über die JetEngine zugreiffen soll sagst Du über den ConnectionString:
Code:
sExcelConnectionString ='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"';
Um den Inhalt der Exceltabelle abzufragen verendest Du
SQL. Der Excel-Tabellenblattname steht dann für den Tabellennamen innhalb des
SQL-Statments. Achtung: Damit es funktioniert muss an den Tabellennamen ein $-Zeichen angehängt werden. Den Grund kennt bestimmt nur MS.
Code:
sExcelSQL = 'SELECT * FROM [%s$]';
...
SQLStatement:=Format(sExcelSQL,['Tabelle1']);
Zitat von
glkgereon:
Ab Win2000 ist
ADO standartmäßig dabei.
Ungünstig ist nur, das D2005 Personal keine Typebibliotheken importieren kann. D.h Du kannst nicht auf die frühe Bindung (verwende ich immer) zurückgreifen. Dir bleibt also nur der Weg über die späte Bindung (mit CreateOleObject und Varinats u.s.). Damit kenne ich mich aber nicht so aus.
Hier gibt die aktuelle Version
MDAC (enthält die
ADO Objekte)
Update für die JetEngine
Dort gibt esHilfe zu
ADO