Wie Sie eine SQL-Anweisung für eine Excel-Tabelle ausgeführt

December 20

Wie Sie eine SQL-Anweisung für eine Excel-Tabelle ausgeführt

Wissen, wie man gegen eine Excel-Kalkulationstabelle Structured Query Language-Anweisungen ausführen kann wertvoll sein. Microsoft Excel ist ein Tabellenkalkulations-Programm in die Microsoft Office-Suite enthalten. SQL wird vorwiegend in relationalen Datenbanken, aber kann auch verwendet werden, um eine Excel-Kalkulationstabelle zu lesen. Visual Basic für Applikationen (VBA) wird verwendet, um Routine-Aufgaben innerhalb der Microsoft Office-Anwendungen automatisieren. In wenigen Schritten können Sie schreiben, VBA-Code zum Ausführen einer SQL-Anweisung und Lesen von Daten in eine Excel-Tabelle gespeichert.

Anweisungen

1 Starten Sie Microsoft Excel 2007 zu, und geben Sie "Spalte1" in "A1", "Spalte2" in "B1."

Typ "A" in "A2", "B" in "A3", "C" in "A4", "D" in "A5."

Geben Sie "1" in "B2", "2" in "B3", "3" in "B4", "4" in "B5."

Speichern Sie Ihre Tabelle zu "C:\" als "Mappe1.xls""."

2 Starten Sie Microsoft Office Access 2007 und "Leere Datenbank" klicken Sie auf "Erstellen". Klicken Sie auf "Datenbanktools" und wählen Sie "Visual Basic." Klicken Sie im Feld "Einfügen" und wählen Sie "Module".

3 Geben Sie Folgendes ein, um das Unterprogramm "RunSQLExcel" zu erstellen:

Private Sub runSQLExcel()

Drücken Sie "Enter."

4 Geben Sie Folgendes ein, um Ihre Variablen definieren:

Const AdOStatic = 3

Const AdLkOpt = 3

Const AdCmdString = & H1

5 Geben Sie zum Definieren und Öffnen von Verbindungen mit dem Excel-Tabellenblatt Folgendes:

Set ObjectConn = CreateObject ("ADODB". Connection")

Set ObjectRst = CreateObject ("ADODB". Recordset")

objectConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=C:\Book1.xls;" & _

"Extended Properties=""Excel 8.0;HDR=Yes;"";"6

Geben Sie Folgendes ein, um eine SQL-Anweisung ausführen und eine neue Recordset zu öffnen:

objectRst.Open "SELECT * FROM [Sheet1$]", _

ObjectConn, AdOStatic, AdLkOpt, adCmdString

7 Geben Sie Folgendes ein, um das Recordset durchlaufen und Ergebnisse für beide Spalten in der Tabelle anzeigen:

Tun bis objectRst.EOF

MsgBox "Colum1:" & objectRst.Fields.Item("Column1").Value & " " & _

"Colum2:" & objectRst.Fields.Item("Column2").Value

objectRst.MoveNext

Loop

Mit "F5" Unterroutine ausgeführt.