リンクユニット

Office 2019 Access 2019

[エラー時]アクションでマクロのエラーを出さずに次に進ませる

投稿日:2020年10月1日 更新日:

Accessでマクロを実行しようとすると、エラーメッセージが表示されて途中でストップしてしまうことがあります。

[エラー時]アクションを使用すると、このエラーをスキップして、次のアクションへ進ませることができます。

ここでは、埋め込みマクロで解説します。

埋め込みマクロのアクション[エラー時]

参考ここでは、ウィンドウは重ねて表示する設定にしています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。従来からAccessを使用している方に ...

続きを見る

選択クエリの作成


テーブル[T_顧客]を基に、[コース]フィールドで[VIP]を抽出するクエリ[Q_VIP]を作成しています。

クエリのデザインビュー

コマンドボタンにマクロを設定

フォームにコマンドボタンを設置して、ボタンをクリックしたら、テーブル[T_顧客_VIP]を削除して、クエリ[Q_VIP]を表示するようにします。

フォームにコマンドボタンを挿入して、コマンドボタンの名前は[VIP]としています。

コマンドボタン[VIP]のプロパティを開いて、[イベント]タブの[クリック時]の[...]をクリックします。

[ビルダーの選択]ダイアログボックスで、[マクロビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]で[マクロビルダー]を選択

マクロビルダーが表示されます。

[デザイン]タブの[表示/非表示]グループにある[すべてのアクションを表示]をクリックします。

そして、一覧から[オブジェクトの削除]を選択します。

[デザイン]タブの[すべてのアクションを表示]をクリック

以下のように、[オブジェクトの種類]で[テーブル]を選択して、[オブジェクト名]には[T_顧客_VIP]を選択します。

アクション[オブジェクトの削除]

次に[クエリを開く]のアクションを追加して、[クエリ名]に[Q_VIP]を指定します。

マクロアクション[クエリを開く]

上書き保存して、マクロツールを閉じます。

[デザイン]タブの[閉じる]グループ

参考埋め込みマクロについては、以下の記事でも解説しています。

パスワードを入力してフォームを開くようにする

Accessでパスワードを入力して、パスワードが合えばフォームを開くようにする方法です。 注意ここでは、Accessのオプションでウィンドウ ...

続きを見る

コマンドボタンをクリックして実行するとエラーメッセージ

フォームに作成したコマンドボタン[VIPコース名簿]をクリックすると、マクロが実行されます。問題ありません。

しかし、テーブル[T_顧客_VIP]をがない場合、以下のメッセージが表示されます。

[オブジェクトの削除]を実行しようにも、テーブル[T_顧客_VIP]がないので、実行できないのです。

オブジェクト'T_顧客_VIP'を見つけることができません。

メッセージウィンドウ

上記のメッセージウィンドウで[OK]ボタンを押すと、今度は、以下の[マクロのシングルステップ]ウィンドウが表示されます。

[マクロのシングルステップ]ウィンドウ

エラーメッセージを表示しないで次のステップへ進ませる

埋め込みマクロの[エラー時]アクションで、メッセージを出さずに次のステップへスキップする方法です。

クリック時のイベントの[埋め込みマクロ]を編集します。

コマンドボタンのプロパティを表示して、[イベント]タブの[クリック時]には、[埋め込みマクロ]と表示されています。右端にある[...]をクリックします。

[イベント]タブの[クリック時]の[埋め込みマクロ]

マクロビルダーが表示されます。

[新しいアクションの追加]の▼ボタンをクリックして、[エラー時]を選択します。

マクロアクション[エラー時]

[エラー時]アクションの[移動先]は[次]を選択します。そして、[上へ移動」ボタンを2回クリックして、先頭へ移動します。

[移動先]のテキストボックス内でポイントすると、以下のポップヒントが表示されます。

移動先

エラーが発生すると、[次]の場合はエラーが発生したアクションの次のアクションへ進みます。[マクロ名]の場合は以下のサブマクロ名に移動します。[失敗]の場合はマクロの実行を中止します。

アクション[エラー時]を上へ移動

アクションの順番は、以下のようになります。

マクロアクションの並び

[新しいアクションの追加]の▼ボタンをクリックして、再度[エラー時]を選択して、[移動先]を今度は[失敗]とします。

これで、エラー処理を解除することになります。

[エラー時]を選択して[移動先]を[失敗]に設定

マクロツールは、上書き保存して閉じます。

[デザイン]タブの[閉じる]グループ

これで、削除するテーブルが存在しない場合でも、エラーメッセージを出さずに、次のマクロアクションへ進むことができるようになります。

参考[エラー時]アクションについては、以下のMicrosoftのページを参照してください。

"OnError/エラー時" マクロ アクション - Access(Microsoft)

[オブジェクトまたはクラスがこのイベントセットをサポートしていません]のエラー

Access for Microsoft 365でコマンドボタンをクリックして、マクロを実行しようとすると、以下のメッセージが表示されるようになりました。

オブジェクトまたはクラスがこのイベントセットをサポートしていません。

[オブジェクトまたはクラスがこのイベントセットをサポートしていません。]のメッセージウィンドウ

上記メッセージウィンドウで[OK]ボタンをクリックすると、[マクロのシングルステップ]ウィンドウが表示されます。

永続ライセンス版のAccess2019、2016、2013では、上記メッセージウィンドウは表示されず問題なく動作します。

以下の記事で解説しているような仕組みなのですが、埋め込みマクロで、[値の代入]を使用している場合のみ、上記のエラーが表示されるようになりました。

フォームを参照用と編集用にボタンで切り替え(埋め込みマクロで設定)

Accessで1つのフォームを作成して、すべての内容を見せてレコードの編集ができるようにしています。 でも、そのフォームを開く時に制限を付け ...

続きを見る

埋め込みマクロや、ボタンを設置しているフォームにも問題はありません。

新しくデータベースを作成して、すべてのオブジェクトをインポートすると一時的には解決します。

また、マクロビルダーでリセットして上書きしても一時的には解決します。

ですが、編集していると、またメッセージウィンドウが表示されるようになります。

この場合も、[エラー時]アクションを追加して、エラーをスキップして次のマクロを実行するように設定して解決しました。

Profile

執筆者/はま

もっと理解したいあなたへ

おすすめ記事と広告

-Office 2019 Access 2019

Copyright © 2001-2020 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2020 AllRights Reserved Powered by AFFINGER4.