Hej
För en massa år sedan använde jag denna kod från XLdennis och modifierade den efter eget önskemål. Nu är Excel 2003 borta och 2010 är installerat. Då får jag fel meddelande "External table is not in the expected format" på denna rad:
Set DAO_db = DAO_ws.OpenDatabase(strDb, False, True, stExtens)
Hela syftet med koden är att ställa SQL frågor till ett temporärt excel blad som skapas i subrutinen innan.
Jag behöver hjälp om var och hur man skall uppdatera koden för att den skall fungera med Excel 2010? Tips om andra lösningar är också ok
Hela koden
Sub DAO_Database_Approach()
'© 2005 Alla rättigheter XL-Dennis
Const stExtens As String = "Excel 8.0;HDR=Yes;IMEX=1"
'Variabler för DAO.
Dim DAO_ws As DAO.Workspace
Dim DAO_db As DAO.Database
Dim DAO_rs
Dim strDb As String
'Variabler för Excel.
Dim wbBook As Workbook
Dim wsTarget As Worksheet
Dim rnTarget1 As Range
Set wbBook = ActiveWorkbook
Set wsTarget = wbBook.Worksheets("Query result")
strDb = "y:\servicevipsmatris.xlsx"
R = 2
'Instantiering av DAO objekten.
Do
Set DAO_ws = DBEngine.Workspaces(0)
Set DAO_db = DAO_ws.OpenDatabase(strDb, False, True, stExtens)
stSQL1 = Sheet3.Range("b" & R).Value
target = Sheet3.Range("c" & R).Value
Set rnTarget1 = wsTarget.Range(target)
Set DAO_rs = DAO_db.OpenRecordset(stSQL1, dbOpenForwardOnly)
rnTarget1.CopyFromRecordset DAO_rs
DAO_rs.Close
Set DAO_rs = Nothing
DAO_db.Close
DAO_ws.Close
Set DAO_db = Nothing
Set DAO_ws = Nothing
R = R + 1
Loop Until Len(Sheet3.Range("a" & R).Value) = 0
End Sub
mvh
Mattias