お世話になっております。
コンボボックスで製品名を複数選択して、その製品群について処理をする方法についてです。
現在は、用意してある空のテーブルを利用して、
Private Sub cmb登録製品_AfterUpdate()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("T_製品仮登録", dbOpenDynaset)
With rs
.AddNew
.Fields("製品コード") = Me.cmb登録製品.Column(0)
.Update
End With
(以下略)
のようなことをして、複数の製品コードをいったんプール(保存)しています。
そのあとT_製品仮登録に記録されたデータを使って処理をしています。
今までは、個人データベースだったので、このようなレベルのものでも事足りていたのですが、
複数人が同時にシステムを使うようになったら、
当然このT_製品仮登録内のデータが複数の作業者によって書き換えられてしまうことになります。
作業者ごとに、作業対象の複数の製品コードデータをプールする方法はどうすればよいのですか?
複数ユーザーがデータベースファイルを共有する場合は、「データベースの分割」をして運用することが推奨されています。
Access データベースを分割する - Microsoft サポート
ACCESS データベースを分割して複数人で共有する方法 - たすけてACCESS
サーバーにテーブルのみのデータベースファイルを置きます(バックエンドデータベース)
各クライアントにリンクテーブルとその他のオブジェクトをもつデータベースファイルを置きます(フロントエンドデータペース)
作業用のテーブルはフロントエンドデータベースに置けば、懸念する問題は発生しません。
回答ありがとうございます。
すでに分割はしていましたが、作業用テーブルをフロントに置く考えがありませんでした。(全部まとめて分割していた)
これで解決できると思います。ありがとうございました。
注意点として、フロントエンドに作業用テーブルをおくと、データの追加削除が発生しますので、ゴミがたまりファイルサイズが肥大化するので、定期的にフロントエンドの最適化を実行する必要があります。
あるいは、オプションで閉じるときに最適化してもいいでしょう。
ACCESS 最適化でデータベースの容量を圧縮する方法 - たすけてACCESS
情報ありがとうございました。
「閉じるときに最適化する」は未チェックでしたので、適用します。