Gewusst wie: Erstellen ein Makros zum Ausführen einer Access-Abfrage & das Ergebnis in Excel einfügen

April 5

Gewusst wie: Erstellen ein Makros zum Ausführen einer Access-Abfrage & das Ergebnis in Excel einfügen

Erstellen ein Microsoft Access-Makro, das die Ergebnisse einer Abfrage in Excel einfügt kann aus Excel mit Access verknüpfen oder durch Anwenden von Makrocode, um direkt zu Excel aus Access Steuern erfolgen.

Hinweis: alle bis auf die letzten drei Schritte gelten für Anwender von Access (Excel) 2007. Wenn Sie eine frühere Version von Access haben, fahren Sie mit der dritte zum letzten Schritt.

Anweisungen

1 In Access erstellen Sie eine Tabelle mit Beispieldaten: Geben Sie die folgenden Daten in eine neue Tabelle:

zufällige tourist,12/1/2009,$6.01zufällige tourist,12/3/2009,$7.98Eisen-john,12/5/2009,$4.98Eisen-john,12/6/2009,$5.98

2 Doppelklicken Sie auf die Spaltenüberschriften (z.B. \"Field1\") und ersetzen jeweils mit diese Header in der angegebenen Reihenfolge:

Buch, Datesold, netsale

Speichern Sie die Tabelle (\"control-s\") mit dem Namen \"books.\"

3 Erstellen Sie eine Abfrage aus der Tabelle, und drücken Sie die \"Esc\" geben Sie die \"show table\" im Dialogfeld. Mit der rechten Maustaste auf die Abfrage-Registerkarte, und wählen Sie Ansicht \"SQL. \" geben Sie Folgendes in das Codefenster:

Wählen Sie Bücher. INTO queryresultsAUS BüchernWO (((books.book) wie 'Acc *'))GEHEN

Speichern Sie die Abfrage (\"control-s\") und nennen Sie es \"vbaquery.\"

4 Öffnen Sie Excel, und drücken Sie die Symbolleiste \"Data > aus Access\" Symbol. Wählen Sie die \"queryresults\" Tabelle in der \"Select Table\" im Dialogfeld. Klicken \"OK\" auf der \"Import Data\" im Dialogfeld, und beachten Sie die Abfrageergebnisse: nur die \"iron john\" Bücher werden angezeigt. Speichern Sie die Excel-Datei unter einem beliebigen Namen, und schließen Sie es.

5 Öffnen Sie die \"books\" Datenbank in Access. Öffnen Sie die \"vbaquery\" und seine \"Criteria:\ zu überarbeiten" Feld zu lesen \"Like 'Acc' \" (nicht die doppelten Anführungszeichen eingeben. Geben Sie die inneren, einzelnen Anführungszeichen.) Speichern Sie die Abfrage erneut.

6 Erstellen Sie eine neue Abfrage. Geben Sie die folgende SQL-Anweisung in der \"SQL view\"Fenster, dann speichern Sie die Abfrage als \"dropqueryresults\":

DROP TABLE Queryresults;

7 Die integrierte Entwicklungsumgebung (IDE) von Visual Basic durch Drücken \"alt-f11,\ eingeben" wählen Sie dann \"Insert > Modul. \" fügen Sie den folgenden Code in das neue Modul leere Codefenster:

Public Sub runquery()' löschen Sie zunächst die ErgebnistabelleOn Error GoTo DO_QUERYRunQueryForExcel (\"dropqueryresults\")

DO_QUERY:RunQueryForExcel (\"vbaquery\")EndSub

Public Sub RunQueryForExcel(qName As String)DoCmd.SetWarnings FalseCurrentDb.Execute qNameDoCmd.SetWarnings TrueEndSub

8 Positionieren Sie den Cursor an einer beliebigen Stelle in der \"runquery\" Unterroutine und drücken \"F5\" um die Abfrage auszuführen. Öffnen Sie die Excel-Arbeitsmappe, die Sie zuvor geöffnet und beachten Sie die aktualisierten Daten: Ihr Makro ersetzt die \"iron john\" Zeilen mit der \"accidental tourist\" Zeilen. (Access 2007 oder höher-Benutzer können hier beenden.)

9 (Für Benutzer von Access 2003 und früheren Versionen). Verwenden Sie Schritt 7, um fügen Sie den folgenden Code in ein neues Modul in der Visual Basic-IDE:'''''''''''''''''''''''''''''''''''''''''''''''''''''''''Public Sub pasteToExcel()

QName const \"vbaquery\ ="Dim Db als DAO. DatenbankDim Recset als DAO. RecordsetDim s As StringDim AppXL als Excel.ApplicationDim Ro, co

'''''''''''''''''''''''''Set AppXL = CreateObject(\"Excel.Application\")appXL.Workbooks.Add

Set Db = CurrentDbSet Recset = Db. OpenRecordset(qName)s = \"book\" & \ ", \" & \"dateddsold\" & \ ", \" & \"netsale\" & VbCrappXL.ActiveSheet.Cells (1, 1) = sRO = 2Co = 1s = \"\"Während nicht Recset tun. EOF

s = s & recset![book] & \", \" & recset![datesold] & \", \" & recset![netsale] & vbCr appXL.ActiveSheet.Cells(ro, co) = s recset.MoveNext ro = ro + 1 s = \"\"

LoopRecSet. SchließenDB. SchließenappXL.ActiveWorkbook.SaveAs (\"c:\dataFromAccess.xls\")appXL.Quit

EndSub'''''''''''''''''''''''''''''''''''''''''''''''''''''''''Wählen Sie \"Tools > References\", und überprüfen Sie die \"Microsoft Excel-Objects-Bibliothek. \"

10 Zurück zu Access, und führen Sie die Schritte 1 bis 3. Fügen Sie jedoch bei Schritt 3, dieser SQL-Code in das Codefenster von SQL:

Wählen Sie Bücher.AUS BüchernWO (((books.book) wie 'Acc *'));

11 Zurück auf das Visual Basic IDE. Platzieren Sie den Cursor innerhalb der \"pasteToExcel\" Funktion und drücken Sie die \"F5\" um die Funktion auszuführen. Öffnen Sie die Excel-Datei-\"c:\dataFromAccess.xls\" um die Ergebnisse anzuzeigen.