PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAHjälp med gammal kod DAOHjälp med gammal kod DAO
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-09-07 16:08
 

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

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAHjälp med gammal kod DAOHjälp med gammal kod DAO

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter