引用:
テーブルを集合値ソースとするリストボックスや
コンボボックスの参照を解除するための一般的な方法
まず前回のスレッドにおける解決策の 1 つとして、
「テーブル作成クエリを使用しない」ということが
挙げられます。
引用:
7/24の質問
https://www.moug.net/faq/viewtopic.php?t=82373
引用:
main_Data_tblとShop_tblを店舗名で内部結合した
新しいテーブル(main_DataPls_tbl)を作るクエリ
(Q_make_main_DataPls)を作成
引用:
エラーはDoCmd.OpenQuery "Q_make_main_dataPls"の行でおきており
・テーブル作成クエリを DoCmd.OpenQuery メソッドによって実行する際、
もしそのクエリによって作成しようとしているテーブルと同じ名前を持つ
既存のテーブルが存在していた場合、Access は先に既存のテーブルを
(全てのレコードのみならず、
その定義ごと)削除しようとする。
引用:
使い勝手がよかったので抽出結果を
リストボックス.Rowsource="SELECT * FROM main_DataPls_tbl WHERE 検索条件"
でフォーム上のリストボックスに表示させていました。
・しかし、既に何らかの形で(この場合はリストボックスの値集合ソースとして)
開かれているテーブルの定義を変更/削除することは出来ない。
引用:
エラー3211 現在他のユーザーまたはプロセスで使用されているので、ロックできませんでした。
・したがって、そのテーブル作成クエリを実行することは出来ず、
それを呼び出そうとした DoCmd.OpenQuery メソッドは失敗する。
ただレコードの入れ替えが出来ればよいのであって、
テーブルの定義そのものを削除する必要がないのであれば、
テーブル作成クエリではなく、削除クエリと追加クエリを
使用なさればよろしいでしょう。