Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2321 / 9994 ←次へ | 前へ→

【10948】Re:エクセルからアクセスへAddNewで
発言  小僧  - 09/1/22(木) 20:43 -

引用なし
パスワード
   ▼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を総なめするようなコードの方が
無難なのではないかと思われます。
2,671 hits

【10900】エクセルからアクセスへAddNewで ON 08/12/31(水) 11:08 質問[未読]
【10907】Re:エクセルからアクセスへAddNewで ON 09/1/6(火) 15:38 質問[未読]
【10908】Re:エクセルからアクセスへAddNewで ON 09/1/6(火) 17:11 質問[未読]
【10910】Re:エクセルからアクセスへAddNewで ON 09/1/6(火) 18:49 質問[未読]
【10912】Re:エクセルからアクセスへAddNewで neptune 09/1/6(火) 22:32 発言[未読]
【10916】Re:エクセルからアクセスへAddNewで ON 09/1/7(水) 16:51 質問[未読]
【10923】Re:エクセルからアクセスへAddNewで ON 09/1/9(金) 12:52 発言[未読]
【10925】Re:エクセルからアクセスへAddNewで neptune 09/1/9(金) 15:36 発言[未読]
【10926】Re:エクセルからアクセスへAddNewで ON 09/1/9(金) 19:28 お礼[未読]
【10929】Re:エクセルからアクセスへAddNewで neptune 09/1/10(土) 12:45 発言[未読]
【10940】Re:エクセルからアクセスへAddNewで ON 09/1/14(水) 18:18 お礼[未読]
【10948】Re:エクセルからアクセスへAddNewで 小僧 09/1/22(木) 20:43 発言[未読]
【10962】Re:エクセルからアクセスへAddNewで ON 09/1/26(月) 16:15 お礼[未読]

2321 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078199
(SS)C-BOARD v3.8 is Free