Introduktion: Importera Access-tabeller i Excel
Access har länge varit en del av Office-sviten, vilket gör att många företag har samlat på sig en mängd Access-databaser. Att kunna importera dessa databaser till Excel kan spara mycket tid och ansträngning, särskilt om du behöver göra det regelbundet. I den här artikeln går vi igenom hur du på ett automatiserat sätt kan importera Access-tabeller i Excel via VBA (Visual Basic for Applications).
Varför använda VBA för import av Access-tabeller
Att använda VBA för att importera data från Access till Excel ger flera fördelar:
- Automatisering: Du kan schemalägga eller köra makrot när som helst för att hämta den senaste datan.
- Effektivitet: Du sparar tid jämfört med att exportera och importera manuellt varje gång.
- Flexibilitet: Du kan enkelt ändra koden för att hämta andra tabeller eller filtrera data.
Förberedelser innan import
Innan vi går in på koden, se till att du har följande:
- En Access-databas (i formatet .mdb eller .accdb).
- Excel med VBA-åtkomst.
- Kännedom om den tabell i Access som du vill importera.
Ladda in ADO-objekt i Excel
För att kunna använda ADO (ActiveX Data Objects) i din VBA-kod måste du först ladda in de nödvändiga objekten. Gör så här:
- Öppna Excel och tryck på
ALT + F11för att öppna VBA-editorn. - Gå till
Verktyg->Referenser. - Leta upp och markera
Microsoft ActiveX Data Objects x.x Library(där x.x är versionsnumret).

VBA-kod för att importera Access-tabell i Excel
Följande kod visar hur du ansluter till din Access-databas och importerar data från en specifik tabell till Excel.
Databas: Access 2003 eller tidigare
Sub Importera_Access_I_Excel()
'dimensions
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB As String, strSQL As String
Dim strTabell As String
Dim lngCampos As Long
Dim i As Long
'välj sökväg till din Accessdatabas
strDB = ThisWorkbook.Path & "\" & "db.mdb"
'namn på tabellen i Access
strTabell = "pengar_2011"
'skapa ADO-kopplingen
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & strDB & ";"
'SQL-förfrågan
strSQL = "SELECT * FROM " & strTabell
recSet.Open strSQL, datConnection
'kopierar data till kalkylbladet (från och med rad 2)
ActiveSheet.Cells(2, 1).CopyFromRecordset recSet
'kopierar kolumnrubriker (rad 1)
lngCampos = recSet.Fields.Count
For i = 0 To lngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
'kopplar ned
recSet.Close: Set recSet = Nothing
datConnection.Close: Set datConnection = Nothing
End Sub
Databas: Access 2007 eller senare
Sub Importera_Access_I_Excel()
'dimensions
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB As String, strSQL As String
Dim strTabell As String
Dim lngCampos As Long
Dim i As Long
'välj sökväg till din Accessdatabas
strDB = ThisWorkbook.Path & "\" & "db.accdb"
'namn på tabellen i Access
strTabell = "pengar_2011"
'skapa ADO-kopplingen
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open "Provider=Microsoft.Ace.OLEDB.12.0;Persist Security Info=False;Data Source =" & strDB & ";"
'SQL-förfrågan
strSQL = "SELECT * FROM " & strTabell
recSet.Open strSQL, datConnection
'kopierar data till kalkylbladet (från och med rad 2)
ActiveSheet.Cells(2, 1).CopyFromRecordset recSet
'kopierar kolumnrubriker (rad 1)
lngCampos = recSet.Fields.Count
For i = 0 To lngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next
'kopplar ned
recSet.Close: Set recSet = Nothing
datConnection.Close: Set datConnection = Nothing
End Sub
Sammanfattning
Att importera en Access-tabell till Excel via VBA är en kraftfull funktion som kan spara tid och förbättra databehandlingen. Med hjälp av den presenterade koden kan du enkelt automatisera processen och anpassa den efter dina behov. Genom att förstå och använda ADO kan du hantera din data effektivt och göra din arbetsdag mer produktiv.