Page 34 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼フォ−ムの表示について よ-たん 02/9/14(土) 23:17 ┗Re:フォ−ムの表示について イケガミ 02/9/14(土) 23:25 ┗Re:フォ−ムの表示について よ-たん 02/9/14(土) 23:39 ┗Re:フォ−ムの表示について イケガミ 02/9/15(日) 0:02 ┗Re:フォ−ムの表示について よ-たん 02/9/15(日) 0:50 ┗Re:フォ−ムの表示について イケガミ 02/9/15(日) 1:13 ┗Re:フォ−ムの表示について よ-たん 02/9/15(日) 2:14 ─────────────────────────────────────── ■題名 : フォ−ムの表示について ■名前 : よ-たん <ks_yokana@ybb.ne.jp> ■日付 : 02/9/14(土) 23:17 -------------------------------------------------------------------------
たびたびすみません。 月末処理として、あるル−チンをバックグラウドで実行しようとしてるのですが、 処理の実行がわからないのでフォ−ムで、処理中を告げるメッセ−ジを表示 したいのですがどうもうまくいきません。 たびたびで恐縮ですがどなたかお願いします。 標準モジュ−ル public sub A() DoCmd.OpenForm "BF", , , , acFormEdit End Sub Private sub B() 処理 for i=0 to 100000 'ウェイト next i End sub 標準モジュ−ル以外 AF Form Private Sub Form_Load() A End Sub BF Form Private Sub Cmd_MouseDown BF.Txt.visible =True '暫くお待ちとかを表示 End sub Private Sub Cmd_Click() B End Sub こんなかんじで書いてます。。 最初は、Aから直接Bを読んでたんですが。 フォ−ムは表示されるんですが。各コントロ−ルが ちゃんと表示されずに。半透明になってたので。 先にフォ−ムを表示して。コマンドボタン(cmd)で。OKで。処理するように ワンクッション設けたのですが。。 Menu(Switcboard)から。AF Formを起動して。 BF Formが表示するんですが。次にAF Formが表示するので。 BF FormがアクティブにならずにAF Formで隠れてしまいます。 BF FormのForm_LostFocusイベントにMe.SetFocusをつけたのですがだめでした。 とにかくBF Formを最前列に表示したいのですが。 どうか。お願いします。 ご教授頂けないでしょうか? Show(VB)やったら。いけたと思うんですが。ACCESSにはないみたいなので。。 BF.Show やったら。エラ−になりました。 |
>月末処理として、あるル−チンをバックグラウドで実行しようとしてるのですが、 >処理の実行がわからないのでフォ−ムで、処理中を告げるメッセ−ジを表示 >したいのですがどうもうまくいきません。 >Show(VB)やったら。いけたと思うんですが。ACCESSにはないみたいなので。。 >BF.Show やったら。エラ−になりました。 あんまり、処理の内容が分かりませんが、 Msgbox ではダメなのでしょうか? Dim lngAns As Long lngAns = Msgbox("処理をしますか?",vbOkCancel) If lngAns = vbOk Then '処理 Else Msgbox "処理を中止します。" Exit Sub End IF のように。。 |
▼イケガミ さん: >>月末処理として、あるル−チンをバックグラウドで実行しようとしてるのですが、 >>処理の実行がわからないのでフォ−ムで、処理中を告げるメッセ−ジを表示 >>したいのですがどうもうまくいきません。 > >>Show(VB)やったら。いけたと思うんですが。ACCESSにはないみたいなので。。 >>BF.Show やったら。エラ−になりました。 > >あんまり、処理の内容が分かりませんが、 >Msgbox ではダメなのでしょうか? > >Dim lngAns As Long >lngAns = Msgbox("処理をしますか?",vbOkCancel) >If lngAns = vbOk Then > '処理 >Else > Msgbox "処理を中止します。" > Exit Sub >End IF > >のように。。 最初に、月が変わったらMsgboxで、この月末(締め)の処理を実行するかどうか。 Ok or Noで。聞いてるんですが。 Okの場合。しめの処理を走らしてます。 Formとは。独立させて。この処理をしようとしてまてます。 で。処理してる証拠として。”処理中”ですと。表示したいので。 Msgboxで。選択せずに。"処理中”と表示し。処理がおわったら。そのメッセ−ジが けせるなら、なんでもかまわないのです。 こんなんで。質問の意図はわかるでしょうか? |
>処理してる証拠として。”処理中”ですと。表示したいので。 処理中は、「処理中」と表示し、完了後そのメッセージを消したいと言うこと? でしたら、ラベルのみのフォームを作成し、プロパティで「作業ウィンドゥ」を 「はい」にし、処理前にそのフォームを開き、処理後に閉じればいいのでは? |
▼イケガミ さん: >>処理してる証拠として。”処理中”ですと。表示したいので。 > >処理中は、「処理中」と表示し、完了後そのメッセージを消したいと言うこと? > >でしたら、ラベルのみのフォームを作成し、プロパティで「作業ウィンドゥ」を >「はい」にし、処理前にそのフォームを開き、処理後に閉じればいいのでは? 一応、そういうフォ−ムを作ってるのですが。。 プロジェクト(DB自身)の起動時、もしくは、ACCESSのメニュ−(Switchborad) もしくは、主になるForm Aが表示してすぐ。。(ユ−ザ−による、何かのイベント発生前(ユ−ザ−に操作をしてほしくない。。)) 状態で、希望の処理Bを行いたいのです。 標準モジュ−ル public sub A() DoCmd.OpenForm "B", , , , acFormEdit ’これがメッセ−ジ表示用form End Sub これを、最前列にしたいんです。 Private sub B() ’ 希望の処理B 処理 for i=0 to 100000 'ウェイト next i End sub 標準モジュ−ル以外 (A Form) Private Sub Form_Load() ’主になるForm A A End Sub (B Form) Private Sub Cmd_MouseDown B.Txt.visible =True '暫くお待ちとかを表示(メッセ−ジの変更) End sub 最初にMsgboxで、処理するかの選択を促してるので ”実行しますか?”と表示してる。 Private Sub Cmd_Click() ’ 希望の処理Bをキック (この辺はVBの本に書いてたのを代用してます。 B MouseDown、Clickイベント) End Sub 取り敢えずはformのCloseはいれてません。。 で、作業ウィンドウ固定=はい でも。だめでした。 (作業ウィンドウ固定って、どういった役割するんですか??) 結果は。 やはり、A Fromが最前列になりました。 ACCESSのメニュ−で。AFormを起動しようとして、同時にBFormもひらいてるので、 うまいこといかないと思うんですが、 何か方法はないでしょうか? やはり、こういったことはむりなんでしょうか? ちなみに、ポップアップ=はいで、うまくいきましたが。。 表示の位置が。文字道理ポップアップの位置になりました。。 これで、位置がかえれたらそれでいいんですけど。。 ポップアップだから。動かせないですよね。。(恐らく) |
>プロジェクト(DB自身)の起動時、もしくは、ACCESSのメニュ−(Switchborad) >もしくは、主になるForm Aが表示してすぐ。。(ユ−ザ−による、何かのイベント発生前(ユ−ザ−に操作をしてほしくない。。)) >状態で、希望の処理Bを行いたいのです。 以下の文はほとんど見てませんが、上記の事がしたいのなら、 AutoExecマクロを使って、メニューフォームを開く前に、コードの実行を させてみては? |
▼イケガミ さん: >>プロジェクト(DB自身)の起動時、もしくは、ACCESSのメニュ−(Switchborad) >>もしくは、主になるForm Aが表示してすぐ。。(ユ−ザ−による、何かのイベント発生前(ユ−ザ−に操作をしてほしくない。。)) >>状態で、希望の処理Bを行いたいのです。 > >以下の文はほとんど見てませんが、上記の事がしたいのなら、 >AutoExecマクロを使って、メニューフォームを開く前に、コードの実行を >させてみては? マクロはあまりわからないので、Helpで、AutoExec見て。 よくわからなかったので、いろいろ探ってて ふとformOpenの設定をみなおしてたら、 WindowMode に acDialogというのがあったので。 DoCmd.OpenForm "月末処理F", , , , , acDialog にしてみたら、いけました。。 いろいろ、お手数かけまして済みませんでした。 本当、有難うございました。 助かりました。 |