こんにちはmasalifeです。
今回は実践で役立つちょっとした紹介です。
複数のアクションをクエリを使って、ルーチンのデータ作成をしている方はぜひ読んでいただきたいなと思います。
テーマは、「アクションクエリの実行順はボタンに記録しよう」です。
簡単に記録できるので、これをやらない理由はありません。
メリットばかりです。
それではやっていきましょう。
・DoCmd.Openquery(VBA)
・DoCmd.SetWarnings(VBA)
・MsgBox関数
アクションクエリの実行順の確認
まずはアクションクエリを使ってのデータ作成作業と実行順を確認します。
・② 【Q_バックアップ作成】を実行し、最新の累積テーブルのバックアップを作成する
以上のデータ作成作業であることから、
① Q_累積に追加→② Q_バックアップ作成の順番で必ず実行しなければなりません。
それではこの実行順をボタンに記録していきましょう。
ボタンにクエリを記録する
ボタンを準備する
クエリを記録するためのボタンを準備します。
フォームをデザインビューで開きます。
ボタンを作成する機能はリボンのデザインタブにあります。
ボタンを作成して、ユーザーが分かりやすい表題を付けましょう。
このボタンにクエリの実行を記録していきます。
ボタンのイベントにVBAを記述する
ボタンにクエリの実行機能をVBAで設定します。
ボタンのプロパティシートを出して、
【イベント】タブのクリック時の【…】アイコンをクリックします。
VBE画面が起動します。
DoCmd.OpenQuery “Q_バックアップ作成”
DoCmd.OpenQuery “Q_累積に追加”
と記述します。
*DoCmd.OpenQueryの後に半角スペースを入力するのを忘れないでください。
・DoCmd.OpenQueryの意味はクエリを実行する。
・DoCmd.OpenQueryの後に何のクエリを実行するのかクエリ名を指定する。
・実行するクエリ名は“”(ダブルクォーテーション)で囲む。
これでボタンにクエリの実行順を記録することができました。
フォームでボタンをクリックして、動作を確認してみてください。
メリット
実行順を間違えない
今回の例でクエリの実行順を逆にしたら、バックアップの意味がありません。
アクションクエリが多ければ多いほど、実行順が分からなくなり、間違えやすくなります。
ボタンをクリックするだけで誰でも同じデータが作成できる。
これが最大のメリットだと思います。
追加クエリを複数回実行するのを防げる
追加クエリは実行した回数分、追加先にレコードが追加されるので、必要な回数だけ実行されなければなりません。
無意識に複数回実行してしまうのを防ぐ意味でも効果的です。
メンテナンスする時に必要なクエリを把握しやすい
職場環境によりますが、データ作成の内容が頻繁に変更されたりすると、その都度仮のクエリを作成したりします。
結果として、クエリがあふれかえり、後で見返したときにどれが必要なクエリか判断がつきません。
一時的なデータではなく、ルーチンで必要なデータの場合はボタンに記録して、メンテナンスをしやすくしましょう。
おまけ:ユーザビリティを考えた機能の追加
ユーザが使いやすいように、ちょっとした工夫をしましょう。
アクションクエリ実行時のメッセージをOFFにする
ボタンをクリックすると、次のようなAccessメッセージが出ます。
これらはアクションクエリの実行を確認するシステムメッセージです。
いちいち確認するのが面倒な時もあるため、システムメッセージが出ないようにしましょう。
メッセージの表示を設定するには、SetWarningsメソッドを使用します。
イベントのクリック時に設定したイベントプロシージャを編集します。
赤下線部を追加します。
これでメッセージがOFFになりました。
・【書式】Docmd.SetWarnings True/False(表示する/表示しない)
・一度表示をOFFにした場合、コードの実行が終了してもOFFになったままなので、ONに戻してください。FalseとTrueはセットで記述すると覚えておきましょう。
データ作成終了したことが分かるオリジナルのメッセージを作成する
SetWarningsメソッドを使用してシステムメッセージをOFFにした場合は、ボタンをクリックしても見た目上は何も起きていないように見えます。
実行できていないのではないか、クリックをし忘れたのではないかと思い、途中でAccessを閉じたり、何度もクリックしてしまったりしては予期せぬエラーの元です。
ユーザを悩ませないためにも、オリジナルのメッセージを作成するようにしましょう。
オリジナルのメッセージを作成するには、MsgBox関数を使用します。
今回はすべてのアクションクエリが実行した後(データ作成が終了)に「データ作成が終了しました」のオリジナルのメッセージを表示させることとします。
イベントのクリック時に設定したイベントプロシージャを編集します。
赤下線部を追加します。
ボタンをクリックすると、
オリジナルのメッセージが表示されます。
msgbox関数は本当に便利で文字を表示させる以外にもアイコンを表示したり、ユーザが選ぶボタンを表示させたりすることができます。
その他の使い方についてはまた別の記事で紹介しますね。
・【書式】MsgBox “表示させたい文字”
・表示させたい文字は必ず””(ダブルクォーテーション)で囲む。
さいごに
いかがでしたでしょうか。
Accessに精通していない人でもこれならやってみようと思えましたでしょうか。
もちろんパワポやメモなどでクエリの実行順を明記するのも重要なことです。
しかし、どれだけ丁寧なマニュアルを作ったとしても人間はミスをします。決まった作業は機械に任せてしまいましょう。(そういう自分も何回か実行順を間違えたことがあります(^^;)
今回の記事を読んで、これなら試してみようと思っていただけたら幸いです。
最後まで読んでいただきありがとうございました。