Oft liegen in Altsystemen Daten vor, deren Struktur nicht einfach übernommen werden kann. Sind komplexe Anpassungen notwendig, so stößt man mit Excel zwar nicht an die Grenzen des grundsätzlich machbaren, wohl aber an die Grenzen des sinnvoll machbaren.
In der Praxis hat sich der Einsatz von Transact SQL (MS SQL-Server, MSDE, MS SQL Server Express Edition) als gute Möglichkeit erwiesen. Inbesonders ist dabei die Möglichkeit interessant, ADO-Datenquellen inline in Transact SQL zu öffnen und normale Transact SQL Befehle auf diese Datenquellen anzuwenden: Joins, Berechnungen, Gruppierungen, Einfügeoperationen usw.
Diese Funktionalität wird mit der OPENROWSET Funktion des SQl Server realisiert:
Code: Alles auswählen
OPENROWSET('MSDASQL','DSN=<dsn>','SELECT * FROM <tabelle>')
Das Rowset wird danach behandelt wie eine normale SQL Server Datenquelle:
Code: Alles auswählen
SELECT * FROM
OPENROWSET('MSDASQL','DSN=<dsn>','SELECT * FROM <tabelle>')
Man ist dabei NICHT auf die vom ODBC-Treiber akzeptierte Syntax eingeschränkt, da der lediglich die zugrundeliegenden Daten liefert (wirkt nur auf das in der OpenRowSet Methode angegebene SQL). Zu beachten ist, daß die Berechtigungsstufe der ADO-Verbindung maßgeblich ist - ist die ADO-Datenquelle schreibgeschützt, so kann natürlich nichts eingefügt werden.[/code]