1

Access 2010 db に、Excel シートの列名と同じ列名を持つテーブルがあります。マクロが有効化された Excel 2010 シートからデータをポンピングする前に、Access テーブルのデータ コンテンツを削除する必要があります。これが機能するようになると、「Excel データをダンプする前にコンテンツを削除する」ことが機能するようになります。

これが私のExcel VBAマクロコードです:

Sub ADOFromExcelToAccess()
'exports data from the active worksheet to a table in an Access database
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
    "Data Source=C:\Users\shress2\Documents\TSS_Certification\TSS_Certification.accdb;"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "t_certification_051512", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 2 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
    With rs
        .AddNew ' create a new record
        ' add values to each field in the record
        .Fields("Role") = Range("A" & r).Value
        .Fields("Geo Rank") = Range("B" & r).Value
        .Fields("Geo") = Range("C" & r).Value
        ' add more fields if necessary...
        .Update ' stores the new record
    End With
    r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

サブ終了

Tools--> References を追加し、Microsoft ActiveX Data Objects 6.0 Object Library を選択しました。

実行時エラーが発生しました '-2147467259(80004005)': 認識されないデータベース形式 'C:\Users\shress2\Documents\TSS_Certification\TSS_Certification.accdb

理由はありますか?どうすれば修正できますか?ありがとう。

4

1 に答える 1

3

.accdb データベース ファイルに接続しています。Access 2007/2010 形式です。
このMicrosoft.Jet.OLEDB.4.0プロバイダーは、Access 2003 時代の mdb ファイル用に構築されています。
そのプロバイダーに接続できないと思います(ファイル形式を認識できません)。

使用する接続文字列を変更してみてください

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\shress2\Documents\TSS_Certification\TSS_Certification.accdb;"

于 2012-05-16T16:13:25.600 に答える