2012-07-04 25 views
0

我試圖將數據從Excel 2010中導出到Access 2010中對我的Excel文件中的VBA代碼時,我按下一個按鈕。我只是想將數據從「水質」表導出到「水質」表在我的數據庫(Excel文件和訪問文件的其他表和表)。導出數據訪問 - 錯誤:參數不可選

我實際的代碼是:

Sub Button14_Click() 

' Exports data from the active worksheet to a table in an Access database 

Dim cn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim r As Long 
Dim LastRow As Long 

' Set cn = New ADODB.Connection 

'cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _ 
    "Data Source=C:\Documents and Settings\Administrador\Mis documentos\MonEAU\modelEAU Database V.2.accdb; " & _ 
    "Persist Security Info=False;" 

strCon = "Provider=Microsoft.ACE.OLEDB.12.0; " & _ 
    "Data Source=C:\Documents and Settings\Administrador\Mis documentos\MonEAU\modelEAU Database V.2.accdb" 

' Late binding, so no reference is needed 
Set cn = CreateObject("ADODB.Connection") 

cn.Open strCon 

' Find LastRow in Col A into the Sheet1 
LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row 

' Insert unto a table called Water_Quality 
scn = "[Excel 8.0;HDR=YES;DATABASE=" & ActiveWorkbook.FullName & "]" 
strSQL = "INSERT INTO Water_Quality " _ 
     & "SELECT * FROM " & scn & ".[Sheet1$A5:L" & LastRow & "]" 

' Execute the statement 
cn.Execute strSQL 

rs.Close 
cn.Close 
Set rs = Nothing 
Set cn = Nothing 

End Sub 

我可以毫無問題調試代碼,但是當我運行它,會出現運行錯誤:「Microsoft Office Access數據庫引擎找不到對象「工作表Sheet1 $ A5:L10',確保對象存在,並且正確拼寫其名稱和路徑名稱。「似乎有與線cn.Execute strSQL一個問題。

我檢查的名稱和路徑名很好,我無法找到問題的所在。

任何幫助來解決這個問題,將不勝感激。

+0

有沒有你想按行而不是一下子做此行的原因嗎? – Fionnuala

+0

它不會告訴你,當你按下'CTRL + BREAK'它停在什麼線? –

回答

4

這是一次將所有數據的幾個例子:

strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=z:\docs\test.accdb" 

''Late binding, so no reference is needed 
Set cn = CreateObject("ADODB.Connection") 

cn.Open strCon 

''Create a table called ATable 
scn = "[Excel 8.0;HDR=YES;DATABASE=" & ActiveWorkbook.FullName & "]" 
strSQL = "SELECT * INTO ATable " _ 
     & "FROM " & scn & ".[Sheet7$A1:C4]" 

''Execute the statement 
cn.Execute strSQL 

''Insert into a table called ATable 
scn = "[Excel 8.0;HDR=YES;DATABASE=" & ActiveWorkbook.FullName & "]" 
strSQL = "INSERT INTO ATable " _ 
     & "SELECT * FROM " & scn & ".[Sheet7$A1:C4]" 

''Execute the statement 
cn.Execute strSQL 

''Insert into a table with no column header in Excel, 
''the fields are [afield],[atext],[another] 
scn = "[Excel 8.0;HDR=NO;DATABASE=" & ActiveWorkbook.FullName & "]" 
strSQL = "INSERT INTO ATable ([afield],[atext],[another]) " _ 
     & "SELECT F1 As afield, F2 As AText, F3 As another FROM " _ 
     & scn & ".[Sheet7$A1:C4]" 

''Execute the statement 
cn.Execute strSQL