Hvordan bruke VBA til å importere data fra Excel til Access

Hvordan bruke VBA til å importere data fra Excel til Access


Lære å bruke Visual Basic for Applications for å importere data til Access kan gjøre databaseapplikasjon mer dynamisk. I VBA, kan du bruke en kombinasjon av objekter for å åpne en eksisterende Excel-arbeidsbok og importere visse data til en tabell i Access. Bruk Microsoft Excel objektbiblioteket i VBA til å åpne arbeidsboken. Den Recordset objektet brukes til å åpne en eksisterende tabell i Access og lagre data fra Excel inn i den. Bruke VBA til å importere data kan redusere tiden du bruker på å importere data manuelt.

Bruksanvisning

1 Start Microsoft Office Excel og skriv "data1" i A2, og "data2" i B2. Trykk "Ctrl" og "S" for å åpne "Lagre som" dialog vinduet og lagre arbeidsboken i: ". DataToImport.xlsx" "C \ Temp \" som Klikk "Lagre" og nær Excel.

2 Start Microsoft Office Access, klikker du på "Blank Database" og klikk på "Create" -knappen. Klikk "Databaseverktøy" og klikk "Visual Basic" for å åpne redigeringsvinduet VB. Klikk på "Insert" -menyen og klikk "Module" å sette inn en ny kode modul. Klikk på "Verktøy" -menyen, klikk på "Referanser", og merk av for "Microsoft Excel <versjonsnummer> Object Library."

3 Start med å skrive følgende VBA-kode for å opprette nye sub prosedyre:

Private Sub importExcelData ()

4 Skriv inn følgende for å lage variabler du vil bruke til å lese Excel:

Dim xlApp Som Excel.Application

Dim xlBk Som Excel.Workbook

Dim xlSht Som Excel.Worksheet

5 Skriv inn følgende for å lage variabler du vil bruke i tilgang:

Dim dbRst As Recordset

Dim dbs som database

Dim SQLStr As String

6 Skriv inn følgende for å definere databaseobjekter og også definere Excel arbeidsbok å bruke:

Sett dbs = CurrentDb

Sett xlApp = Excel.Application

Sett xlBk = xlApp.Workbooks.Open ( "C: \ Temp \ dataToImport.xlsx")

Sett xlSht = xlBk.Sheets (1)

7 Lag en ny tabell med to kolonner i Access for å importere data fra Excel. Skriv inn følgende VBA-kode for å opprette tabellen ved hjelp av "DoCmd" objekt:

SQLStr = "CREATE TABLE excelData (columnOne TEKST, columnTwo TEKST)"

DoCmd.SetWarnings falske

DoCmd.RunSQL (SQLStr)

8 Åpne tabellen du nettopp opprettet ved hjelp av en av Recordset objekt. Skriv inn følgende for å åpne bordet og legge til en ny rad:

Sett dbRst = dbs.OpenRecordset ( "excelData")

dbRst.AddNew

9 Skriv inn følgende for å få verdier fra Excel-arbeidsbok, lagre dem på tabellen og oppdatere posten:

xlSht.Range ( "A2"). Velg

dbRst.Fields (0) .Value = xlSht.Range ( "A2"). Verdi

xlSht.Range ( "B2"). Velg

dbRst.Fields (1) .Value = xlSht.Range ( "B2"). Verdi

dbRst.Update

10 Avslutt prosedyren ved å skrive følgende VBA-kode:

dbRst.Close

dbs.Close

xlBk.Close

End Sub

11 Trykk "F5" for å kjøre prosedyren. Dataene i Excel-arbeidsboken har nettopp blitt importert til Access-tabell.