Accessで進行状況インジケーターの表示だけ止めたい
VBAで、Syscmdなどの命令を使って、左下のインジケーター部に
進行状況を表示していますが、マクロ動作により、次のクエリが
動いているときには「クエリを実行しています■■」のような
表示になってしまいます。
Syscmdコマンドを使用した直後に、インジケータ部の表示だけ
ロックして、次のメッセージを表示させたい時点でリフレッシュ
するようなことは可能でしょうか。
Application.Echo falseは試してみましたが、ウィンドゥ内の
表示がロックするだけで、インジケーターはうまくロックしない
ようでした。(ステップ実行で確認。)
対処方法をご存知の方、ご教示よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
【要旨】
データの更新を、「DoCmd.OpenQuery」から「CurrentDb.Execute」に変更
すれば、進行状況を知らせるメーターの表示を回避できます。
※当該クエリを、更新クエリや追加クエリ等の「アクションクエリ」と想像。
【詳細】
恐らく、『アクションクエリの実行中も、「SysCmd acSysCmdSetStatus」で
設定した内容を、表示させておきたい』ということだと思いますが、
こちらで確認した限り、クエリ(DoCmd.OpenQuery)を使用した状況下での
回避策は見つけられませんでした(汗)
ただ、クエリと同様の処理は、DAOのExecuteメソッドでも行うことができ、
こちらであればステータスバーでのメーター表示はされないことから、
冒頭で示したような変更をすれば、ご希望の動作になるかと思います。
なお、SQL文に差し替えるとなると、
a)SQL文は触ったことがない
b)既存のコードの修正が面倒
と二の足を踏まれるかもしれませんが、「DoCmd.OpenQuery」を以下の
関数に差し替え(VBEの画面で、Ctrl+Hキーの同時押しによる置換)れば、
a)SQL文の直接編集ではなく、クエリのデザインビューで編集可能
b)置換ダイアログでの一括置換
で対処できます。
<手順1>
標準モジュールに以下のコードを貼付し、適当な名前で保存:
Public Function ProxyExecute(QName As String) As Boolean
On Error GoTo エラー処理
'「ツール(T)→参照(R)」で、「Microsoft DAO ~」への参照設定が必要
Dim Rsl As Boolean, Qdf As DAO.QueryDef, strSQL As String
'指定したクエリを変数に格納
Set Qdf = CurrentDb.QueryDefs(QName)
'クエリのSQL文を取得
strSQL = Qdf.SQL
'SQLを直接実行
CurrentDb.Execute strSQL
'エラーが発生しなかったことを記録
Rsl = True
終了処理:
'本関数の戻り値として、実行/中止の結果を返す
ProxyExecute = Rsl
'念のため明示的にメモリを解放
Set Qdf = Nothing
'本関数を終了(後続の「エラー処理」の実行を回避)
Exit Function
エラー処理:
Select Case Err.Number
Case 3265 '存在しないクエリ名を指定した場合
MsgBox "以下のクエリが見つかりません:" & vbCrLf & vbCrLf & QName
Case Else '上記以外のエラー発生時はその情報を表示
MsgBox Err.Number & ":" & Err.Description
End Select
'エラーが発生したことを記録
Rsl = False
Resume 終了処理
End Function
<手順2>
当該モジュールを開き、Ctrl+Hキーの同時押しで『置換』ダイアログを
表示させ、以下の条件で置換を実行:
検索する文字列(F): DoCmd.OpenQuery
置換後の文字列(W): ProxyExecute
対象: カレント プロシージャ(P)
但し、エラートラップの設定(「ツール(T)→オプション(O)」で開く画面の
『全般』タブで変更可能)によっては、
・OpenQuery: その場で処理を中止
・上記関数: 関数の呼出元の後続処理を継続
という違いが発生してしまいます(汗)
エラー発生時に処理を中止したい場合は、手動で(汗)以下のように書き
換えて下さい:
<現在>
DoCmd.OpenQuery "クエリ名"
<置換後>
ProxyExecute "クエリ名"
<手動修正後>
If ProxyExecute("クエリ名") = False Then Exit Sub
・・・以上です。
長文、失礼致しました(汗)
丁寧な回答ありがとうございます。このような方法で回避できる
という記載(検証)をしていただいたのは、他でも余り見かけず、
質問に対する、原因と対策が明確に解決し、すっきりしました。
DoCmd.OpenQueryの後ろに、“acViewNomal.acEdit”がついていたので
消去(もともと必要かわかりませんが)する必要があったのと、
CurrentDb.Executeの処理対象がテーブル作成クエリで、作成対象
クエリが既存の場合に、エラーが出るようです。(何かパラメータ
等で上書きの指定をするようでしょうか。)後はご回答いただいた
もので期待した動作を確認しました。
参考のVBA部分を組み込むと、エラー処理の場合を無難?にスルー
してしまうので、もう一度システムのコードを見ながら組み込みを
検討してみます。
ネットの記載を見ると、CurrentDb.Executeは同期処理なので、
理屈上動作速度がacViewNomal.acEdit(非同期)より遅くなるはず
だが、実際は大して変わらない、とありました。特段利用上気にする
必要もなさそうですね。
会社では書き込みが出来ない環境なので、回答が遅くなり失礼いたしました。
今後のご活躍を期待しております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- 格安スマホ・SIMフリースマホ Y!モバイル転出後のSIMロック解除後 1 2023/01/09 20:14
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- au(KDDI) 特定の画面を見るとスマホが固まります ご覧頂き有難うございます。 特定のページを見るとスマホが固まり 1 2023/08/21 19:29
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
- その他(Microsoft Office) OneDrive Personalについて 1 2022/08/02 18:25
- gooのスマホ スマホF-51Bに緊急時情報画面でロックが掛かって解除できません。 3 2023/06/18 23:05
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
自分独自の健康法はある?
こうしていると調子がいい!みたいな自分独自の健康法、こだわりはありますか?
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
クエリの進行状況を知りたい。
Access(アクセス)
-
-
4
Access2000、これはいったい・・・・
その他(データベース)
-
5
Accessで処理経過を表示したいのですが
その他(データベース)
-
6
Access 昇順・降順で並び替えできない
その他(データベース)
-
7
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
アクセス ステータスバーの文字を表示させたい
Access(アクセス)
-
10
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
11
ACCESS VBAにてCSVファイルを並び順を変えずにインポートするにはどうしたらよいでしょうか?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
yes/no型のチェックができない...
-
EXCELの外部データ取得ができない
-
AccessでSQL結果を直接csvに書...
-
【Access2003 VBA】クエリをエ...
-
アクセスで空白がグループ化さ...
-
Webクエリで取り込みができない...
-
access追加クエリ実行時の重複...
-
Access 不一致クエリ(たぶん)
-
ログイン画面後のページの表取...
-
アクセスでクロス集計をレポー...
-
Access 特定の条件下で、メッ...
-
ACCESSで追加クエリを連続実行...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
差込印刷での全角表示について...
-
2つのテーブルに共通するレコ...
-
ACCESSでテーブルにあるチェッ...
-
エクセルにおける「フィールド...
-
デザインビューにてテーブルが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのエラー「クエリには...
-
EXCELの外部データ取得ができない
-
yes/no型のチェックができない...
-
access追加クエリ実行時の重複...
-
ACCESSのフィールドの表示順が...
-
Access 複数のクエリの結果を...
-
AccessでSQL結果を直接csvに書...
-
ACCESSでメッセージにクエリ結...
-
ログイン画面後のページの表取...
-
Accessで進行状況インジケータ...
-
アクセスで空白がグループ化さ...
-
Accessで複数(200件程)の置換
-
Accessでユニオンクエリを作成...
-
Accessのエラーについてです。
-
ACCESS テーブル内の列...
-
アクセス ADO レコードの件数...
-
Access複数のクエリをExcelの1...
-
Access 特定の条件下で、メッ...
-
ACCESSで追加クエリを連続実行...
-
VBAによるwebクエリ方法
おすすめ情報