Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7全般 : Access 2007)
テーブルコピーの完了を認識するには
投稿日時: 17/04/04 19:28:12
投稿者: HT

(1)DoCmd.CopyObject , "TBL-B", acTable, "TBL-A"
(2)SELECT * FROM TBL-B のSQLを実行
 
上記(1)でACCESSのmdb内のTBL-AからTBL-Bにコピーした後、(2)で、TBL-Bのクエリを
実行しようとすると、「TBL-B」が無いとしてエラーになります。コピーが完了する
前に(2)を行おうとするためと思いますが、コピー完了を認識してから(2)を実行させる
方法はありますか?

回答
投稿日時: 17/04/04 21:06:40
投稿者: sk

引用:
(1)DoCmd.CopyObject , "TBL-B", acTable, "TBL-A"

引用:
上記(1)でACCESSのmdb内のTBL-AからTBL-Bにコピーした後、
(2)で、TBL-Bのクエリを実行しようとすると、
「TBL-B」が無いとしてエラーになります。
コピーが完了する前に(2)を行おうとするためと思いますが、
コピー完了を認識してから(2)を実行させる方法はありますか?

DoCmd オブジェクトの非同期実行系メソッドでは
正確に認識するのは難しいかと。
 
引用:
(2)SELECT * FROM TBL-B のSQLを実行

( DAO または ADO のオブジェクトを使用されているとして)
単に[TBL-A]を参照なさればよいのではないかと思いますが、
何の目的で[TBL-A]と全く同じ構造のテーブル定義とその全てのレコードを
複写して、そのテーブルを参照なさろうとされているのでしょうか。
 
少なくとも、その SQL を実行する時点で
[TBL-B]という名前のテーブルが存在していれば
当然そのエラーが発生することはないわけで、
例えば[TBL-B]の全てのレコードを削除して、
続けて[TBL-A]の全てのレコードを[TBL-B]に出力する、
という一連のレコード操作を SQL で実行するようになされば
事足りるのではないでしょうか。

投稿日時: 17/04/05 20:10:15
投稿者: HT

TBL-AをTBL-Bに複写した後、TBL-Bを編集するためにクエリを実行させようとしています
コピー完了時点の認識がむずかしいようであれば、コピーを別の処理(コマンドボタン)
に切り分けて行うしかないかと思います

回答
投稿日時: 17/04/06 18:25:14
投稿者: sk

引用:
TBL-AをTBL-Bに複写した後、TBL-Bを編集するためにクエリを実行させようとしています

単に[TBL-A]の全てのレコードを
[TBL-B]にそのまま複写するだけなら、
CopyObject メソッドを使用することに
拘らなくてもよいのではないかと思います。

トピックに返信