投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/8/27 21:20:24
> Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data SourceC:\=Database\Animals.mdb")

投稿ミスでしょうか。パスの指定が間違っているようですが、正しくはこうですね。
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\Animals.mdb")


ADO や ADO.NET では、Provider= 句で OLE DB プロバイダーを指定する必要があります。

Microsoft.Jet.OLEDB.4.0 や Microsoft.Jet.OLEDB.3.51 は開発が打ち切られており、
32bit 版しか存在していません。x64 ビルドだと使えないのでご注意ください。

現在は後継の、Microsoft.ACE.OLEDB.12.0 ~ Microsoft.ACE.OLEDB.16.0 も入手できますが、
対 mdb であれば、Microsoft.Jet.OLEDB.4.0 のままでも良いでしょう。


> 言語は VB.NET2013 office 2013  OSはwin10です  (あと1月で office 365です)
> よろしくお願いします

ADO.NET でのトランザクション処理は、具体例の書かれた URL を
既に紹介済みですが…今回の例になぞらえるとこんな感じ。

オブジェクトの解放処理が確実に行われるよう、Using ステートメントも併用してみました。

Using connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\Animals.mdb")
    Dim command As New OleDbCommand()
    Dim transaction As OleDbTransaction = Nothing

    command.Connection = connection
    Try
        connection.Open()

        ' トランザクションを開始 
        transaction = connection.BeginTransaction()

        ' トランザクション割り当て 
        command.Connection = connection
        command.Transaction = transaction

        ' SQL 実行 
        command.CommandText = "INSERT INTO T_目マスタ VALUES (900, 'テスト', 'てすと', 1, 'テストです。')"
        command.ExecuteNonQuery()

        ' コミット処理 
        transaction.Commit()

    Catch ex As Exception
        ' connection.Open() 時のエラーかもしれないし、 
        ' command.ExecuteNonQuery() 時のエラーかもしれない。 
        MsgBox(ex.Message)

        If transaction IsNot Nothing Then
            ' ロールバック処理 
            transaction.Rollback()
        End If
    End Try
End Using




> ADO(DAO) でのつなぎ方がわかりません

必要ならサンプルを書きますが… .NET が登場する前の古い技術なので、
VB.NET で開発していくのであれば、ADO / DAO / RDO などを覚える必要は無いと思いますよ。