• ベストアンサー

アクセスvba [イベント プロシージャ]つけたい

もうフォームモジュールにイベントは出来上がってるのですが コントロールの名前を変更したため デザインビューのプロパティの[イベント プロシージャ]と言う文字が消えてしまいました。 フォーム上の全てのコマンドボタンのクリック時に [イベント プロシージャ]と言う文字を入れたいのですが そのような作業は可能でしょうか? [イベント プロシージャ]と言う文字が入れば、該当のイベントは既にモジュールにある為 イベントとして機能します。

質問者が選んだベストアンサー

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

もしかして、[埋込みマクロ]だったのではありませんか 添付されたものの[その他タグ]で名前を確認して その他タグに戻って、 クリック時の右端の[…]で 名前が[コマンド1]なら Private Sub コマンド1_Click() End Sub この[Private Sub]から[Private Sub]の間にコーディングします これがVBAの基本です。 ボックスには、標題と名前があります。 コマンドボタンもボックスの仲間です。 テンプの書式タグに標題が、その他タグに 名前があります。 標題はそのボックス内に表示されます 名前はそのボックス名です 何れも変更は可能ですが 一つのフォーム内で 標題は重複が許されますが、 名前は重複は許されません 尚、イベントはコマンドボタンだけでなく 他のボックスでも可能です。

ysxkeywvhr
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

[イベントプロシージャ]と書くことで動作するのではありません。 呼び出すプロシージャが存在し、関連付けされることを示すものです。 オブジェクト名の変更前後の関連が把握できているから プロパティウィンドウを掲載してるからフォームを開いて オブジェクトを選択した状態にありますね? そのまま、F7キーを押下して[コードビルダー]を選択。 VBEが開かれ、(新)オブジェクト名のClickイベントが作られます。 (旧)オブジェクト名のイベントの”中身だけ”を(新)オブジェクトのイベントに コピペかカット&ペーストしてすればOK。 [イベントプロシージャ]が復活します。 (旧)オブジェクトのイベントはほっといても削除してもどちらでもお好きに。

ysxkeywvhr
質問者

お礼

ありがとうございました。

関連するQ&A

  • ACCESS VBAで別のプロシージャを呼びだした後

    いつもお世話になります。 ACCESS VBAで、別のプロシージャを呼びだし、 フォームを開き、あるコマンドボタンをクリックすると、 もとに戻ってくるようにしたいのですが、 call で別のプロシージャを呼びだし、フォームを開くところまではうまくいくのですが、コマンドボタンをクリックする前に戻ってきてしまいます。 コマンドボタンにはイベントプロシージャを設定しているのですが、 それではダメなんですよね? どのようなコードになるのでしょうか?よろしくお願いします。

  • アクセスで「モジュールがありません」となってしまいます

    ACCESS2000を使用しています。 メニュー用のフォームに、データ照会用のフォームを 呼び出すコマンドボタンを追加し、フォームビューに切り替え 試しにクリックしていみたら実行時えら'2001';となりました。 どうみても記述に間違いはないとおもわれるのですが、そうこう しているうちに」ほかのイベントプロシージャを設定してある コマンドボタンをクリックすると「モジュールがありません」 (こうなる前までは正常に動作していました)となって動作 しなかったり、照会用のフォームにいたってはデザインビューで も開かなくなってしまいました。 元に戻すことはできるでしょうか? 助けてください。

  • アクセスでイベントプロシージャが機能しない

    アクセス97で作成したデータベースをアクセス2000でへフォームをインポートしました。そこでデザインモードでコントロールボタンのイベントプロシージャをクリックしたら本来VBの画面になるべきところ、反応せずVB画面になりませんでした。 どうしたらいいか困っています。ご存じの方、よろしくお願いします。

  • アクセス イベントプロシージャーを記述する場所。

    アクセス初心者です。表題の件です。アクセスクラブを参考にしながら管理簿を作成しています。SampleFile184を見ながら作っているのですが、イベントプロシージャーを記述する場所が分かりません。カレンダーコントロールを貼り付けたフォームに以下のようなプロシージャーを記述します。とありますが、どこから入って記述すればいいのでしょうか?フォームヘッダーをクリックしてデザインから開いて、クリック時のとこでしょうか?それともモジュールを開いて書いていけばいいのでしょうか?初心者の質問ですみません。困っています。わかる方がいましたら、ご教授ください。よろしくお願い致します。

  • (アクセス)全てのイベントプロシージャが無反応に

    何らかの原因でプロシージャやコマンドボタンに設定したマクロ等が無反応になる現象に苦慮しています。 多くのフォームの中で、この現象に関連するフォームは2画面あり、それぞれをフォームA、フォームBということで説明いたします。((1)~(4)) (1)フォームAのコマンドボタン押下でフォームBを開きクエリーのデータ(フォームAで指定した条件)  を表示しています。  フォームBで他のフォームと異なっているプロパティは次の通りです。  ・ポップアップ ----はい  ・作業ウィンド固定 --はい (2)フォームBにはレコードソース(クエリ)の値を表示する幾つかのテキストボックスとコンボボックス  が2つあり、それぞれをコンボA、コンボBとするとフォームBを開いた時はそれぞれにクエリーの   データを表示し、変更する場合はコンボAで選定した条件でクエリによりコンボBにデータを表示す  るようにしています。 (3)なお、コンボAの列数は2で、コンボボックスには列1のデータ(商品名)を表示するようしていて列 2の値(商品コード)を一旦テキストボックスに取り出し、そのコードでクエリによりコンボBのデータ  を表示しています。テキストボックスのプロパティのコントロールソースには次のように記述していま す。   =コンボ186.column(1)   ※=コンボ186がコンボAのことです (4)あと、フォームBにはデータをチェックするためのイベントプロシージャが幾つかとフォームAへ戻る ためのコマンドボタンがありますが他のフォームと比べても特に問題は無いように思えます。 以上のような環境でフォームAからフォームBを開いた時に、フォームBにはレコードソースであるクエリの値は全て表示するものの全てのイベントプロシージャ及び(3)で説明しました  =コンボ186.column(1) の処理が一切動作しなくなります。 しかし、次の操作により回復し、その後はACCESSを終了し再起動しても正常に動作します。  ・フォームBをデザインビューで開く  ・フォームBを開く時に設定しているイベントプロシージャを表示  ・イベントプロシージャをいじって閉じる。(内容は変更しない)  ・フォームBをホームビューで開く   だらだらと長くなり説明も不十分かと思いますが、原因がどうしてもわからなく困っております。 何か手がかりを教えて頂けたらと思い投稿しました。 よろしくお願いいたします。

  • Accessでのイベントプロシージャ

    他の人が作成、使っているファイルで相談されたのですがわからないので教えてください。 今まで自分の意図するとおりの動いていたレポートがあります。 レポートのオープン時にイベントプロシージャを使ってコードをかいていました。 ですが動作がおかしかったので、イベントプロシージャを見ようと、デザインビューで 「開く時」のイベントプロシージャの横の「…」ボタンを押しても何も起こりません。 私もやってみたのですが何もおきません。 試しにと思い、「閉じる時」に新規にイベントプロシージャを作ってみようと、 横の▼ボタンを押してイベントプロシージャを選択し、「…」ボタンを押しても反応しません。 またMicrosoft Visual Basicを開き、左側のウィンドウを見たところ、上記の動作がおかしい レポート名が表示されていませんでした。 これはもうコードが消えてしまっているということでしょうか?

  • Access VBAで

    VBAの超初心者です。 Accessのフォームでコマンドボタンを押すと、決まった文字が入力できるフォームを作りたいと思っています。 クリック時のイベントプロシージャーはどのように記入すればよいのでしょうか。 ど素人な質問ですみません。

  • access vba プロシージャの呼び出し

    access vba についての質問です。 フォームにテキストボックスが二つあるのに対して、 オプションボタンが三つあります。(グループです) テキストボックス1に文字列を入力し、コマンドボタンを押すと 選択されているオプションボタンのcaptionをテキストボックス1の文字列と合わせる形でテキストボックス2に反映させたいです。 コマンドボタンのクリックで以上の動きをするfunctionプロシージャを呼び出したいのですが、呼び出す側プロシージャと呼び出される側プロシージャの変数の設定がわかりません。 超初心者のため初歩的、かつ説明がわかりづらくて恐縮ですが、理解のため省略などをしない形でコードの見本等お教え願えませんでしょうか。 よろしくおねがいします。

  • ACCESSのイベントで

    こんにちは。 ACCESSのフォームに、テキストボックスと コンボボックスがいくつかあり、 コマンドボタンが1つあります。 コマンドボタンを押す(クリック)すると、 その直前までアクティブだったコントロールの 名前(cmb○○ or txt○○ にしてます)が 知りたいのです。 どうすればよいでしょうか。お願いします。 ちなみに1つのフォームにコントロールが20~30あり、 そういうフォームが30~40こあるので、 そのコントロールに1つ1つイベントを 追加していく(forcusイベント等で変数に代入していく) 方法以外でお願いします。 なにしろ、全部で1000こ近くあるので・・・

  • フォームモジュール イベントが発動しない半角→全角

    コマンドボタンのコントロール名に「カード」(←これは半角です)とつけて、クリックイベントのプロシージャーを紐づけようとしたら、 Private Sub カード_Click() End Sub になってしまい、そのコマンドボタンをクリックしてもイベントが発生しません。 Private Sub カード_Click()の部分にブレークポイントを設置しても、通過されません。 都合上全て半角でコントロール名をつけてしまったため、コントロール名を変えたくないのですが VBAのフォームモジュールで「カード」(←これは半角です)とすると、 勝手に全角になってしまうのですが、 この機能を止める方法はありますか?

専門家に質問してみよう