|
よろしくお願いいたします
ファイルサーバー上のMDBに
各ローカルPCからエクセルマクロを実行し
アクセスにレコード書き込みを実行しています
数台のPCからの同時書き込み?(せいのでマクロ実行)
では不具合はありませんでした
以前どこかでmdbへの同時接続、同時使用?の制限があるような
記述を見たことがあったのですが
・同時に開いて使用するのが5人?
・同一レコードへの書き込みはロックがかかる
(同時にTBLを開いて同一レコードを操作した場合になるは体験済み)
とかよく理解できていません
実際には下記のコードでレコード追加しているのですが
多分一瞬のことで同時に実行されることは少ないと考えていますが
よくわかりません
下記Qの他、適正なコード等アドバイスありましたらよろしくお願いいたします
・同時書き込みが生じた場合
Q1)アクセス側で発生する書き込み不可のメッセージ等は、ローカルPCに出るのでしょうか
Q2)エクセルマクロは途中で停止するのでしょうか
Q3)エクセルのメッセージで再実行とか出るのでしょうか
同時書き込みのテスト方法わかりませんでした
テストコードご教授頂けるとうれしいです
最悪、アクセス側の書き込みレコードを見れば、未書き込みPCは把握できるので
再度、実行してもらえばいいのではと考えています
エクセル側マクロ
参照設定 Microsoft DAO 3.6 Object Library
Public Sub Add2DT(C_ROW As Long) 'C_ROW As Long
Dim Wsp As Workspace
Dim Db As Database
Dim Rst As Recordset
Dim intCount As Integer
Dim C As Integer
Const strDBName As String = "\\hoge\fuga\KIKI_ROG.mdb"
Set Wsp = Workspaces(0)
Set Db = Wsp.OpenDatabase(strDBName)
Set Rst = Db.OpenRecordset("T03_KIKI_LOG", dbOpenTable)
'For intCount = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
'For intCount = 1 To ActiveSheet.Cells.SpecialCells(xlLastCell).Row
Rst.AddNew
For C = 0 To 22
Rst(C) = Cells(C_ROW, C + 1).Value
Next
Rst(23) = Now()
Rst.Update
'Next intCount
Rst.Close
Set Rst = Nothing
Db.Close
Set Db = Nothing
Wsp.Close
Set Wsp = Nothing
End Sub
関連Q
【59481】ローカルPCからのデータ取得
://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=59481;id=excel
|
|