0

ボタンを押したときに、Excel ファイルの VBA コードを使用して、Excel 2010 から Access 2010 にデータをエクスポートしようとしています。「水質」シートからデータベースの「水質」テーブルにデータをエクスポートしたいだけです(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

コードを問題なくデバッグできますが、実行すると実行エラーが表示されます。およびパス名が正しくありません。」回線に問題があるようですcn.Execute strSQL

名前とパス名も確認しましたが、どこに問題があるのか​​ わかりません。

それを解決するための助けがあれば大歓迎です。

4

1 に答える 1

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
于 2012-07-04T19:02:11.613 に答える