maybe...
Public Const lRow As Long = 8
Public Const lCol As Long = 3
Public Const dbPath As String = "C:\Users\Me\Documents\ms_access\"
Public Const sUser As String = "Admin"
Public Const sPass As String = "MyPassword"
Sub Import_Access_Table( _
strDB As String, _
strQuery As String, _
strSheet As String, _
Optional lngRow As Long = 1, _
Optional lngCol As Long = 1, _
Optional strUser As String = "", _
Optional strPass As String = "")
'requires a reference to Microsoft Activex Data Objects X.X Library
'from Tools - References in VBE
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim FieldNum As Long, i As Integer
cnt.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strDB & ";User Id=" & strUser & ";Password=" & strPass
rst.Open strQuery, cnt
FieldNum = rst.Fields.Count
With Worksheets(strSheet)
For i = 0 To FieldNum - 1
.Cells(lngRow, lngCol).Offset(, i).Value = rst.Fields(i).Name
Next i
.Cells(lngRow, lngCol).Offset(1).CopyFromRecordset rst
End With
End Sub
Sub import_test()
Dim accDb As String, accQuery As String, xlSheet As String
accDb = dbPath & "eks_pls.accdb"
accQuery = "SELECT * FROM MyAccessTableName"
xlSheet = "Sheet1"
Call Import_Access_Table(accDb, accQuery, xlSheet, lRow, lCol, sUser, sPass)
End Sub