• 締切済み
  • 困ってます

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数313
  • ありがとう数0

みんなの回答

  • 回答No.2
  • osamuy
  • ベストアンサー率42% (1231/2878)

フォームのメソッドShowに引数vbModalを付けて、実行してみては。 詳しくは、Accessのヘルプをどうぞ。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Access VBAで

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

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

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

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

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

  • 回答No.1
  • maruru01
  • ベストアンサー率51% (1179/2272)

こんにちは。maruru01です。 状況がよくわからないので、ちょっと質問します。 1.「別のプロシージャ」はどこで呼び出しているのか。 あるフォームのコマンドボタンのクリックイベントなどか? 2.「あるコマンドボタン」は「別のプロシージャ」で開いたフォームにあるのか。 3.「もとに戻る」の"もと"とはどういう状態か。 4.「コマンドボタンをクリックする前」というのはどういう状態か。 5.コマンドボタンのイベントプロシージャは、クリックイベントのことか。 6.何かのデータと連結しているのか。そのデータ構造は? 「もと」とか「ある」とか抽象的な指示代名詞ではなく、もう少し具体的に書いて下さい。直接テーブルやフィールドの名前を書くのがまずいなら、適当に変名するとかして。

共感・感謝の気持ちを伝えよう!

質問者からの補足

わかりにくい質問で失礼致しました。 >1.「別のプロシージャ」はどこで呼び出しているのか。  フォームAのコマンドボタンAのクリックイベントです。 >2.「あるコマンドボタン」は「別のプロシージャ」で開いたフォームにあるのか。  フォームBにあり、コマンドボタンBです。 >3.「もとに戻る」の"もと"とはどういう状態か。  フォームAのコマンドボタンAのクリックイベントで、   ********   ********   call B   ++++++  とあるとしますが、  Bで、フォームBを開き、コマンドボタンBをクリックすると、  ++++++を実行したいのですが、フォームBを開くだけで、++++++が  実行されてしまいます。

関連するQ&A

  • access テキストボックスの値取得

    いつもお世話になりますm(_ _)m access VBAをかじり始めた「超・初心者」です(^^;) フォームの画面にテキストボックスを作成し、そこに入力した値を取得したいのですが、どのようにすればよろしいのでしょうか?別に置いたコマンドボタンをクリックすると取得するようにしたいのです。 気軽に、コマンドボタンのイベントプロシージャに、 ----- dim rec as variant rec=textbox1.text   'recは、「テキストボックス1」に入力した値 ----- なんてやってみたんですが、全然ダメで、いろいろ検索してもさっぱり分かりません。 あほくさいほど初歩的な質問で恐縮ですが、なにとぞよろしくお願いいたしますm(_ _)m xp+access2003です。

  • Access2003でイベントが発生しないのはなぜ?

    いつもお世話になっています。 Access2000を使用して作ったソフトで、 あるコマンドボタンクリック時に、 イベントプロシージャを記入しているのですが、 それを2003形式に変換して、2003の入っている別のPCで実行すると、 ボタンをクリックしても、うんともすんともいいません。 エラーすら飛んできません。 で、どこでつまずいているのか調べるために、 ブレークポイントを使用してコードを止めながら 一行ずつ実行していくと、 ・・・あれ?通った・・・ そして一度通った後は何事も無かったように、 ボタンクリックでイベントが発生するようになってしまった為、 原因がわかりません。 切り分けをしてみたところ、 そのボタンのプロパティ イベントのクリック時の [イベントプロシージャ]を指定してある横の[・・・]ボタンを 一度クリックしてVBAを開いてあげると、 通るようになるみたいです。 他のボタンではそのような現象はみられていませんし、 イベントに[イベントプロシージャ]も指定してありますし、 [・・・]をクリックすると、ちゃんと指定のコードにも飛びます。 おまけにAccess2000だと、何の問題もなく通ります。 似たような状態になった方や、 原因や対処方法をご存知の方が見えましたら、 ご教授頂けると幸いです。 よろしくお願い致します。

  • 宜しくお願い致します。

    宜しくお願い致します。 access2000におきまして そのVBAにより イベントプロシージャーを作成するに際しまして フォーム1のコマンドボタン1 コマンドボタン2を 連続して クリックするというコードを作りたいのですが Do command button1 みたいな コードを探していますが そういうものは なにに 相当しますか いちおう たとえばコマンドボタン1のプロパティで イベントで イベントプロシージャーを開くときの コードをコピペして 同様にコマンドボタン2のプロパティで イベントで イベントプロシージャーを開くときの コードをコピペして 両者を ひとつのコードとして いっしょに 書いて 実行するということは 分かるし それで できるのですが そういうコードを 結合させる やり方ではなくて openform フォーム1 みたいに *** コマンドボタン1 みたいな そういう 関数は ありますか 宜しくお願い致します。

  • (Access)VBA デバックの仕方について

    スレッド違いかもしれませんが、プログラムの事なのでこちらに質問させて頂きます。 (アクセス)フォームに作成した【ボタン】にクリック時イベントをVBAコードで記入しました。 Private Sub コマンド0_Click() MsgBox "a" End Sub ・コンパイルして上書き保存。 ・実行時エラーがないか、F5ボタン(sub ユーザーフォームの実行) すると、マクロをクリック時イベントに貼り付けた訳でもないのに、【マクロボックス】が表示されて、デバックできません。 【質問】 (1)そもそも上記のようなコードの場合、デバックするにはわざわざフォームに戻って、コマンド0をクリックしてチェックしないといけないのでしょうか? (2)また、F5ですぐにプログラムが実行される時と、マクロボックスが表示される場合と有りますが、どのいう時にそれぞれのパターンに分かれていくのでしょうか? VBAまだまだ初心者なので、かなり混乱しています。 どなたか、ぜひ、ご指南よろしくお願いします。

  • accessで ラベルをクリックしたときにコマンドボタンのような動作をさせたいのです。

    こんにちは。よろしくお願いします。m(__)m アクセスのフォームに、コマンドボタンを貼り付けて、クリック時にいろいろな動作を設定しているのですが、コマンドボタンには色をつけられないので、なんだか味気ないのです。 それで、ラベルを使うと色もつけられるし、クリック時のイベントプロシージャーも使えるし、便利だよと教えてもらったのですが、クリックしても、したのかどうか、わからないので、頼りないのです。 そこで、マウスボタンクリック時と、解放時のイベントプロシージャーを設定してやるといいよときいて、そうかぁ、なるほどぉ!! と思い、やってみようとしているのですが、どのように設定したらいいのか、さっぱりわかりません。 クリックしたときに、コマンドボタンのような動作をさせるには、どのように設定したらいいのか、教えていただけるとうれしいです。 よろしくお願いします。

  • ACCESSのVBAでの2種類の画面サイズの指定

    環境:XPPro&ACCESS2003 Aフォームを開く時最大化しています。 Aフォームの開く時:[イベント プロシージャ] DoCmd.Maximize →最大化されて開きます。 このAフォームにボタンをつけて、クリック時にBフォームを開きます。Bフォームは小さなフォームです。 Bフォームの開く時:[イベント プロシージャ] DoCmd.MoveSize 0, 0, 5670, 5670 ところが、このBフォームが最大化されて開きます。 Bフォームを0, 0, 5670, 5670のサイズで開きたいのですが、どなたかご存知の方よろしくお願いします。

  • access の 閉じるボタンを無効に出来ますか

    お世話かけますがよろしくお願いします。 ACCESSファイルの「起動時の設定」をメニューフォームにしています。 メニューフォーム上にコマンドボタンを配置して、クリックイベントで 次の「次フォーム」を開くようにしています。 「次フォーム」上に閉じるコマンドボタンを配置して、この次フォームのみを閉じるようにしていますが、 右上隅にある閉じるアイコン?をクリックすると全てが終了しますので このアイコンを無効にしたいのですが

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

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

  • vbaについて。

    お世話になっております。 AccessVBAの初心者です。 subプロシージャのボタンクリックイベントから共通モジュール(Public)の動作を呼び、変数の加減乗除の計算をさせたいです。 共通モジュールの中をif文にする時、if「(subプロシージャの)ボタンが押された」時という記述はどのようにすれば良いでしょうか。 よろしくお願いします。

  • Access2010イベントプロシージャ起動せず

    access2003からaccess2010にアップグレードしたところaccessのイベントプロシージャの一部が発生しなくなりました。 例えば「フォーカス喪失時」 ボタンの「クリック時」は機能しますが、項目の「変更時」、「更新後処理」は使えなくなりました。 どなたか対処方法をご存知でしたら、教えてください。