archim...@hotmail.it wrote :
> Ciao Bruno,
> io uso office 14 ,windows7 ,32 bit
Prova questa:
===========================================
Private Sub Command26_Click()
'
' Access 2010 12-10-2012
' D:\Access\Mdb\BC.accdb Form1, Button: Import da Excel - ADO
'
' Da Access importa range di Excel via ADO
'
' Reference:
' Microsoft ActiveX Data Objects 6.1 Library
'
' Occorre inoltre installare:
' Microsoft Access Database Engine (2007 | 2010)
' File AccessDatabaseEngine.exe reperibile da Microsoft Download Center
'
http://www.microsoft.com/en-us/download/details.aspx?id=13255
'
' ExcelRange deve comprendere anche le intestazioni dei campi.
'
Dim ExternalDB As ADODB.Connection, ExternalRS As ADODB.Recordset
Dim LocalDB As DAO.Database, LocalRS As DAO.Recordset
Dim ExcelFile As String, ExcelRange As String, AccessTable As String
Dim AccessTableName As String
' Definizioni -------------------------------------------
AccessTableName = "T7"
ExcelFile = "D:\Document\Excel\XLS\Book2.xlsm"
ExcelRange = "Tabella1"
' -------------------------------------------------------
Set LocalDB = CurrentDb
Set LocalRS = LocalDB.OpenRecordset(AccessTableName, dbOpenDynaset)
Set ExternalDB = New ADODB.Connection
Set ExternalRS = New ADODB.Recordset
With ExternalDB
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ExcelFile & ";" & _
"Extended Properties=Excel 12.0 Macro;"
.Open
End With
ExternalRS.Open "SELECT " & ExcelRange & ".* FROM " & ExcelRange,
ExternalDB
Do Until ExternalRS.EOF
With LocalRS
.AddNew
![Nome] = ExternalRS![Nome]
![Cognome] = ExternalRS![Cognome]
.Update
End With
ExternalRS.MoveNext
Loop
End Sub
=============================================
Un'altra domanda: perchᅵ ADO? ormai ᅵ un ferrovecchio!
Devi collegarti a qualche esotico database?
Bruno