• 締切済み

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

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

みんなの回答

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

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

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

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

toroon
質問者

補足

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

関連するQ&A

  • Access VBAで

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

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

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

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

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

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

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

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

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

  • 他のモジュールのプロシージャの呼び出したい。

    VB6でForm間でのプロシージャの呼び出しができなくて困っています。 例えば、Form1,Form2のフォームを2つ用意し、Form2上にCommand1というコマンドボタンを配置します。 Form1でForm2のCommand1_Clickするには、Form1のコードで、Call Form1.Command1_Click ではだめなのでしょうか。

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

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

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

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

  • access VBA のprocedureについて

    access 2003 で作ったprocedure を2007で実行させるとうまく作動しない時があります。 フォームのデザイン画面上でプロパティからコードを表示させようとすると、新たなコードを作成することになり、まったく同じ名前のpurocedureが二つできてしまいます。多くの場合古いpurocedureを削除すれば問題は解決しますが、たまにすべてのprocedureに影響してしまうことがあります。 どうも最初に実行したprocedureに問題が発生するようなのですが、同じような経験をした方はいるでしょうか?

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

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

専門家に質問してみよう