Microsoft Access 掲示板

adoでレコードを追加したときの結果の確認方法 / 6

11 コメント
views
4 フォロー
6

コネクションを最初に1回生成してOpenして、
続けて100回追加して、最後にCloseするには、以下のようなプロシージャを作っておいて

AdoOpen() というようにプロシージャを分けるなら、下記のような設計がいいかな。

Sub AdoOpen(FileName As String, adoCn As ADODB.Connection)
    Dim FilePath As String
    FilePath = "C:\Users\tasukaru\Desktop\VBA\出品データ用\access\" & FileName

    Set adoCn = CreateObject("ADODB.Connection") 'ADODBコネクションオブジェクトを作成
    adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath & ";" 'Accessファイルに接続
End Sub

Function AddDB(ByVal Tn As String, ByVal Fn As String, ByVal Fd As String, ByRef adoCn As ADODB.Connection) As Boolean
    Dim strSQL As String
    AddDB = True
    
    On Error GoTo errTrap
    strSQL = "INSERT " & "INTO " & Tn & Fn & " VALUES" & "(" & Fd & ")"
    'Debug.Print strSQL
    adoCn.Execute strSQL 'SQLを実行して対象を追加
  
    Exit Function
errTrap:
    AddDB = False
    MsgBox Err.Number & ": " & Err.Description
End Function

Public Sub Proc()
    Dim adoCn As ADODB.Connection
    AdoOpen "データ.accdb", adoCn
    
    Tn = "・・・"
    Fn = "・・・"
    Fd = "・・・"
    
    If AddDB(Tn, Fn, Fd, adoCn) = False Then
        MsgBox "データ追加に失敗しました。"
    End If

    adoCn.Close
    Set adoCn = Nothing
End Sub

AddDBでデータ追加に失敗するとエラートラップでエラーメッセージを表示するようにしてますので、
それで失敗の原因が特定できると思います。

通報 ...