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

 
ForumForumDiskussionerDiskussionerVBAVBAADO kopiera data mellan excel filerADO kopiera data mellan excel filer
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-04-24 05:53
 

Jag försöker använda koden under men får ett fel på raden; recSet.Open strSQL, datConnection, adOpenStatic

Vet någon vad det kan vara för fel?

Jag har sparat filen i xlsm.


Sub ImporteraExcelTillExcel_ADO()
 
'--------------------------------------------------------------
'importerar data fr?n en extern Excelbok utan att ?ppna den
'--------------------------------------------------------------

'variabeldeklareringar
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim recRubrik As ADODB.Field
Dim strDB, strSQL As String
Dim strDriver As String
Dim i As Long

 
's?kv?g till den externa Excelfilen
strDB = ThisWorkbook.Path & "\" & "ADO test siffror.xlsx" 'filen i samma folder
'strDB = "C:\Documents and Settings\tcn0422\My Documents\hej" 'filen i annan folder

'uppkoppling
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
strDriver = "DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)"
datConnection.Open "DBQ=" & strDB & ";" & strDriver & ";UID=admin;"
 
'SQL-f?rfr?gan
strSQL = "SELECT * FROM [Sheet1$A1:E10]" 'cellomr?de p? visst ark
'strSQL = "SELECT * FROM [Cellomr?desnamn]" 'f?r namngivna cellomr?den

'?ppnar ett "recordset"
recSet.Open strSQL, datConnection, adOpenStatic
 
'kopierar in ny data
ActiveSheet.Range("A2").CopyFromRecordset recSet
 
'kopierar kolumnrubriker
i = 1
For Each recRubrik In recSet.Fields
 ActiveSheet.Cells(1, i) = _
  recRubrik.Name: i = i + 1
Next recRubrik
 
'kopplar ned (viktigt!)
recSet.Close
datConnection.Close
 
'st?nger ned objekten (viktigt!)
Set recSet = Nothing
Set datConnection = Nothing
 
End Sub

 

Nytt inlägg
 2012-04-27 10:34
 

Hej!

Vad säger då felmeddelandet? Ibland är det så att en databaskoppling inte genererar fel förrän den faktiskt används. Med andra ord skulle felet kunna vara redan i

datConnection.Open "DBQ=" & strDB & ";" & strDriver & ";UID=admin;"

Den driver du använder (strDriver) känner jag inte igen. De brukar se ut som på denna sida: http://support.microsoft.com/kb/257819

För att minska antalet felkällor bör du även förenkla din SQL-sats så mycket som möjligt. Skriv helst bara SELECT * FROM [Sheet1$] och om det fungerar så lägg på resten av det du har för då vet du var felet sitter. Jag förutsätter att du har ett ark som heter Sheet1 för heter det Blad1 så är det detta du skall skriva.

Mvh

Kihlman

 


Kihlman

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAADO kopiera data mellan excel filerADO kopiera data mellan excel filer

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