Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Access 2010)
Foem_Closeで動かない時がある
投稿日時: 19/07/31 11:01:42
投稿者: 滝沢

リモートAPPで複数人が同時に使用しているAccessファイルです。
 
F_AAA:顧客IDを入力するテキストボックスと、F_BBB を表示するボタン「表示ボタン」があるフォーム。
F_BBB:F_AAA に入力された顧客の売上明細を表示するフォーム。レコードソース:T_BBB。
F_処理中:「処理中」と書いてあるだけのフォーム。
T_BBB:顧客ID、商品名、日付等+「ログインID」がフィールドとしてあるテーブル。
Q_BBB_add:F_AAA の顧客IDの売上明細を T_AAA に追加する追加クエリ。自身のログインIDも追加。
Q_BBB_del:T_BBB のレコード中、自身のログインIDを抽出条件にして削除する削除クエリ。
 
---- F_AAA ----
Private Sub 表示ボタン_click()
DoCmd.SetWarnings False
DoCmd.OpenForm "F_処理中"
DoCmd.OpenQuery "Q_BBB_add"
DoCmd.OpenForm "F_BBB",,,"ログインID like '" & Me.ログインID "'" 
DoCmd.SetWarnings True
End Sub
 
★★★★ ここまで前置きです(意味ない情報かも)。ここから本題です。 ★★★★
 
---- F_BBB ----
Private Sub Form_Close()
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q_BBB_del" ’@
DoCmd.Close acForm, "F_処理中" ’A
DoCmd.SetWarnings True
End Sub
 
F_BBBを閉じた時に、この@A処理が動くはずなんですが、どうも50回に1回くらいの頻度で動作
しないことがあるようです。
(処理中がいつまでも消えない。次の売上明細に前の顧客の情報も載ってしまう)
 
@Aセットで動かないわけではなく、@だけ動かない時、Aだけ動かない時があります。
自分では再現できずに困っています。
何かポイントがありましたらご教授いただけないでしょうか。
 
よろしくお願い致します。

回答
投稿日時: 19/07/31 12:01:56
投稿者: よろずや

滝沢 さんの引用:

---- F_BBB ----
Private Sub Form_Close()
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q_BBB_del" ’@
DoCmd.Close acForm, "F_処理中" ’A
DoCmd.SetWarnings True
End Sub

DoCmd.OpenQuery が非同期処理されるのが原因ではないかと。
 
http://www.accessclub.jp/bbs3/0419/superbeg123846.html

投稿日時: 19/08/01 17:39:14
投稿者: 滝沢

よろずや様
コメントありがとうございます。
 
>DoCmd.OpenQuery が非同期処理されるのが原因ではないかと。
VBA覚えはじめの頃よく目にしていましたが
あまり困ったことがなかったのですっかり忘れていました。
 
こちらで試してみます。
再現率が低い不具合なのでテストが難しいですね。

投稿日時: 19/08/05 17:06:38
投稿者: 滝沢

よろずや様
 
とりあえず理解に時間がかかりそうなので、動かなかった処理に対して
エラー処理で、再実行するようにしました。
落ち着いたら「CurrentDb.Execute」を試したいと思います。
ありがとうございます。