3

ワークシートの 1 つのコマンド ボタンに関連付けられた Excel のマクロがあります。クリックすると、ワークシート「FeedSamples」のデータを「ImportedData」という Access データベース テーブルにエクスポートしようとしています。

誰でも私を助けることができますか?ネットから複数の例を試してみましたが、うまくいきませんでした。これは私が今持っているものですが、「実行時エラー '3343': 認識されないデータベース形式 'filePath\FeedSampleResults.accdb」を受け取り続けます

Dim db As Database
Dim rs As Recordset
Dim r As Long
Set db = OpenDatabase("filePath\FeedSampleResults.accdb")
Set rs = db.OpenRecordset("ImportedData", dbOpenTable)
r = 2
Do While Len(Worksheets("FeedSamples").Range("A" & r).Formula) > 0
    With rs
        .AddNew
        .Fields("REPTNO") = Worksheets("FeedSamples").Range("B" & r).value
        .Update
    End With
    r = r + 1
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing

これが完了したら、Access テーブルがデータを dBase ファイルにエクスポートするようにコーディングする必要があります。

4

1 に答える 1

2

ADO を使用したコードを次に示します。アクセス データベースのフル パスをデータ ソースに設定する必要があります。

Sub ExcelToAccessAdo()

    Dim cn As ADODB.Connection, rs As ADODB.Recordset, row As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
            "Data Source=filePath\FeedSampleResults.accdb;"

    ' open a recordset
    Set rs = New ADODB.Recordset
    rs.Open "ImportedData", cn, adOpenKeyset, adLockOptimistic, adCmdTable

    row = 3    ' the start row in the worksheet
    Do While Not IsEmpty(Worksheets("FeedSamples").Range("A" & row))

        With rs
            .AddNew    ' create a new record
            .Fields("REPTNO") = Worksheets("FeedSamples").Range("A" & row).Value
            .Update
        End With
        row = row + 1
    Loop

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

End Sub
于 2013-06-06T02:00:40.997 に答える