- 締切済み
アクセスVBAのエラーについて
フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- chayamati
- ベストアンサー率41% (260/624)
現象も確認され、解決方法もお分かりの上でと原因追及のQと推察します。 私はエラーが確認できないときは、最後の手段として 「空のファイルを作成して、現ファイルを全てインポート」をしています。 これで不都合がなくなる事があります。 少なくともファイルのボリュームが減少します。 修正を何度も重ねているうちにゴミが溜まるのですね
- chayamati
- ベストアンサー率41% (260/624)
>「コマンド103」のプロパティシートのイベントは”クリック時”が”イベントプロ シージャ”になっています。 この”イベントプロシージャ”の右端の「…」クリックしてください これで コマンドがVBAにつながることがあります。
お礼
ご回答ありがとうございます。右端の「…」をクリックして目的のコマンドのVBAのプログラムが出てくることは確認できますので、そのプログラムが実行されるはずなのですが。
- chayamati
- ベストアンサー率41% (260/624)
「コマンド103」のプロパティシートのイベントに[埋め込みマクロ] がありませんか VBAよりこちらが優先しているのでは この文字をDELキーで除去して下さい ちなみに、自分はどうせ閉じるのだから Private Sub コマンド103_Click() DoCmd.Close End Sub としています。
お礼
ご回答ありがとうございます。 「コマンド103」のプロパティシートのイベントは”クリック時”が”イベントプロシージャ”になっています。 それ以外(フォーカス取得後とか)は登録されていません。 ここの事でよろしかったでしょうか?
んんー Docmd を使う理由は? Resume も使わないよね。私の場合ですけど。
お礼
ご回答ありがとうございます。アクセス2000の頃から使っているので古いものがそのまま残っているんです。。。
お礼
ご回答ありがとうございます。一応正規の手順は理解しているつもりですが、「「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作する。」ということから別の何らかの設定が邪魔している可能性を疑っています。もっともご指摘のようMicrosoftのバグという可能性もありますが。