|
おはようございます!
さっそく教えてくださったのに、お返事が遅れて申し訳ありません。
一応、
接続 MDB_FILENAME'=異なるmdbを扱うこともあるため、ファイル名がいれてあります
myRst.Open myTblsql, myDb, adOpenKeyset, adLockBatchOptimistic
'
.Sheets("Sheet1").Range("A1").CopyFromRecordset myRst
'
myRst.Close: Set myRst = Nothing
myDb.Close: Set myDb = Nothing
Function 接続(myFileName)
myDb.Provider = "Microsoft.Jet.OLEDB.4.0"
myDb.ConnectionString = ThisWorkbook.Path & "\" & myFileName
myDb.Open
End Function
のような形で、せいぜい1行か2行の処理(CopyFromRecordsetか.RecordCountの取得程度)しかせずに、Closeすることにしています。
>特にレコードの削除については物理的なDeleteは行なわずに、
>登録区分のようなフィールドを用意して論理上で削除を示すような配慮が
>必要です。
このことには、気づきませんでした!
メンテナンス用にと思い、物理削除後、別のテーブルに保存することにしていたのですが。
これなら、ほぼ問題は回避できそうですね!
利用状況としては、同一レコードをupdateする確立はかなり低く(担当者ごとに処理範囲が異なることが通常なので)、
また1人につき、2,3分に一度、1作業(select数回+updateまたはinsert1回程度)をするものなので、おそらくは大丈夫でしょうか。
なんとか安心して本導入に持ち込めそうです!
本当にありがとうございました。
|
|