AccessVBAのADOでのコーディングにて
AccessVBAにて、ADOでコーディングをしようとしております。
久方ぶりのコーディングとなっており、かなり古い知識しか持ち合わせていないのですが、下記の様相でUpdate機能を書きましたが、これとは別にopenメソッドを使用した方法がADOではありますが、一体何が異なるのでしょうか?。
共にレコードロックする仕組みなようですが、ロックのタイミングが異なるのでしょうか?。
**********************
Set ct = Application.CurrentProject.Connection
ct.BeginTrans
str_Sql = "UPDATE テーブル1 SET "
str_Sql = str_Sql + "テーブル1.ポジション名 = '" & Trim(txt_ポジション名) & "',"
If Trim(txt_備考) = "" Or IsNull(txt_備考) = True Then
str_Sql = str_Sql + "テーブル1.備考 = ''"
Else
str_Sql = str_Sql + "テーブル1.備考 = '" & Trim(txt_備考) & "'"
End If
str_Sql = str_Sql + " WHERE (((テーブル1.ポジションコード)='" & Trim(txt_ポジションコード) & "'));"
ct.Execute str_Sql 'この後にロック開始
ct.CommitTrans 'この後にロック解除
ct.Close
Set ct = Nothing
************************
上記でUpdateはできております。
ちなみに環境ですが、Access2010、Windows7です。
よろしくお願いします。
お礼
t2hayashiさん、2度にわたる回答ありがとうございます。 基本的な違いはないのですね。 まだテスト段階なので、少ないデータでしかテストしてませんが、実際に動かす段階になっても多くて4000件程度のデータで運用します。 書きやすい方でやろうと思います。 本当に、ありがとうございました。