Importa dati da Access to Excel (ADO) utilizzando VBA in Microsoft Excel

Anonim

Con la procedura seguente è possibile importare dati da una tabella di Access in un foglio di lavoro.

Sub ADOImportFromAccessTable(DBFullName As String, _ TableName As String, TargetRange As Range) ' Esempio: ADOImportFromAccessTable "C:\FolderName\DataBaseName.mdb", _ "TableName", Range("C1") Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer Set TargetRange = TargetRange.Cells(1, 1) ' apre il database Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ NomeCompleto DB & ";" Set rs = New ADODB.Recordset Con rs ' apri il recordset .Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable 'tutti i record '.Open "SELECT * FROM " & TableName & _ " WHERE [FieldName] = 'MyCriteria'", cn, , , adCmdText ' filtra i record RS2WS rs, TargetRange ' scrivi i dati dal recordset al foglio di lavoro ' ' approccio opzionale per Excel 2000 o successivo (RS2WS non è necessario) ' Per intColIndex = 0 To rs.Fields.Count - 1 ' i nomi dei campi ' TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name ' Next ' TargetRange.Offset(1, 0).CopyFromRecordset rs ' i dati del recordset End With rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub

Gli esempi di macro presuppongono che il progetto VBA abbia aggiunto un riferimento alla libreria di oggetti ADO.
Puoi farlo dall'interno del VBE selezionando il menu Strumenti, Riferimenti e selezionando Microsoft
Oggetti dati ActiveX x.x libreria di oggetti.
Usa ADO se puoi scegliere tra ADO e DAO per l'importazione o l'esportazione dei dati.