|
 |
 |

Frage: Wie kann ich per ASP eine Exceldatei als Datenbank verwenden? |
Desöfteren kommt es vor, dass man ein Excelsheet als Datenbank verwenden muss,
etwa weil ein Kunde seine Daten in diesem Format schickt und man diese Daten dann
weiterverarbeiten muss.
Nachfolgend ein Beispiel zur Verwendung einer Exceldatei. Im Gegensatz zu vielen
anderen Beispielen wird hier allerdings nicht die JetEngine zur Herstellung der Datenbank-
verbindung verwendet, sondern der Treiber für Excel selbst. Die JetEngine hat mit dem
Auslesen von Excelsheets ein paar Probleme.
Das Beispiel liest alle Spalten und die vorhandenen Datensätze aus und gibt diese in
einer Tabelle aus.
[list_excel.asp]
<%
' --- Zusammenstellen der Verbindungsinformationen
Dim strDriver
strDriver = "DRIVER=Microsoft Excel-Treiber (*.xls);"
Dim strDatabase
strDatabase = "DBQ=" & Server.MapPath("./customer.xls") & ";"
Dim strComplete
strComplete = strDriver & strDatabase
' --- Deklarieren und Erstellen des Connectionobjekts
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strComplete
' --- Zusammenstellen des SQL-Statements Tabelle1 ist hier der Name des Arbeitsblatts
' --- $ ist das Trennzeichen zwischen dem Namen der Tabelle (in Excel Arbeitsblatt) und
' --- den Spalten, die selektiert werden sollen. Da die Spalten in Excel A, B, C, ... benannt
' --- werden, muss entsprechend auch der Bereich so definiert werden.
Dim sqlCommand
sqlCommand = "SELECT * FROM [Tabelle1$A:D]"
' --- Öffnen des Recordsets
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open sqlCommand, objConn
' --- Ausgabe der Überschrift
Response.Write "<table border=""1"">" & vbCrLf
Response.Write "<tr>" & vbCrLf
' --- Ausgabe der Spaltennamen
For Each col in objRS.Fields
Response.Write "<td>" & col.Name & "</td>" & vbCrLf
Next
Response.Write "</tr>" & vbCrLf
Do While Not objRS.EOF
Response.Write "<tr>" & vbCrLf
' --- Ausgabe der Inhalte
For Each col in objRS.Fields
Response.Write "<td>" & col & "</td>" & vbCrLf
Next
objRS.MoveNext
Response.Write "</tr>" & vbCrLf
Loop
Response.Write "</table>" & vbCrLf
' --- Schliessen und terminieren des Recordsets
objRS.Close
Set objRS = Nothing
' --- Schliessen und terminieren der Datenbankverbindung
objConn.Close
Set objConn = Nothing
%>
Auch hier haben wir Ihnen die verwendeten Dateien als Zipfile zum Download bereitgestellt.
artikel_116.zip [3 KB]
|
|
 |
 |
|
|