Med proceduren nedan kan du importera data från en Access -tabell till ett kalkylblad.
Sub ADOImportFromAccessTable (DBFullName As String, _ TableName As String, TargetRange As Range) 'Exempel: ADOImportFromAccessTable "C: \ FolderName \ DataBaseName.mdb", _ "TableName", Range ("C1") Dim cn Som ADODB.Connection, rs Som ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells (1, 1) 'öppnar databasuppsättningen cn = Ny ADODB.Connection cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Datakälla =" & _ DBFullName & ";" Ange rs = Ny ADODB.Recordset Med rs 'öppna rekordmängden .Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable' all records '.Open "SELECT * FROM" & TableName & _ "WHERE [FieldName] =' MyCriteria '", cn,,, adCmdText 'filter registrerar RS2WS rs, TargetRange' skrivdata från rekordsatsen till kalkylbladet '' valfritt tillvägagångssätt för Excel 2000 eller senare (RS2WS är inte nödvändigt) 'För intColIndex = 0 Till rs.Fields.Count - 1' fältnamnen 'TargetRange.Offset (0, intColIndex) .Value = rs.Fields (intColIndex) .Name' Next 'TargetRange.Offset (1, 0) .CopyFromRecordset rs' recordset data End with rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub
Makroexemplen förutsätter att ditt VBA -projekt har lagt till en referens till ADO -objektbiblioteket.
Du kan göra detta från VBE genom att välja menyn Verktyg, Referenser och välja Microsoft
ActiveX Data Objects x.x Object Library.
Använd ADO om du kan välja mellan ADO och DAO för dataimport eller export.