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 detta 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: Sparar tid jämfört med att manuellt exportera och importera varje gång.
- Flexibilitet: Du kan enkelt ändra koden för att hämta olika tabeller eller filtrera data.
Förberedelser innan import
Innan vi dyker in i koden, se till att du har följande förutsättningar:
- En Access-databas (antingen .mdb eller .accdb format).
- Excel installerat med VBA-åtkomst.
- Kännedom om den specifika tabellen 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 ladda in de nödvändiga objekten. Gör så här:
- Öppna Excel och tryck på
ALT + F11
fö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
Den följande koden 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 effektivt hantera din data och göra din arbetsdag mer produktiv.