| 
    
     |  | ▼ON さん: こんにちは。
 
 >・同時書き込みが生じた場合
 >
 >  Rst.AddNew
 >
 >    For C = 0 To 22
 >
 >      Rst(C) = Cells(C_ROW, C + 1).Value
 >
 >    Next
 >
 >      Rst(23) = Now()
 >
 >  Rst.Update
 
 DAO で記述されている場合は
 AddNew で排他処理が行われ、Updateで排他が解除されます。
 
 ある端末において AddNew 〜 Update の間の処理を行っていると
 他の端末ではエラーが出るかと思われます。
 (ステップ実行(1行ずつの実行)を複数端末で行うと検証が可能です。)
 
 処理的には一瞬で終わるものであるため、
 大概エラーが出ずに処理が終わるかと思われますが
 偶然に頼ることになるため、当然エラーが発生する場合もあります。
 
 あまり運用を大きく変えないのであれば
 Excelマクロ側にErrorトラップを仕掛けて
 書き込めないようであれば数秒置いてから
 処理を再実行するようにしたりする方法もあるかと思われます。
 
 
 運用面を含め改善する事が可能であれば
 当方でしたら
 
 
 1)サーバ上に \\hoge\fuga\ExcelData のような共有フォルダを設置しておく
 
 2)各端末から共有フォルダにExcelデータをアップロード
 
 3)AccessVBAにて、共有フォルダ内のExcelデータの吸い上げ
 
 のような手段を行うかと思われます。
 
 
 neptune さんのご回答にあるように SQLServer を使用するのであれば
 同時にデータの追加をしてもServer側で制御してくれるのですが、
 Accessについてはそういった機能がついていないため
 Access側から各Excelを総なめするようなコードの方が
 無難なのではないかと思われます。
 
 |  |