過去ログ

                                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 やったら。エラ−になりました。

 ───────────────────────────────────────  ■題名 : Re:フォ−ムの表示について  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/14(土) 23:25  -------------------------------------------------------------------------
   >月末処理として、あるル−チンをバックグラウドで実行しようとしてるのですが、
>処理の実行がわからないのでフォ−ムで、処理中を告げるメッセ−ジを表示
>したいのですがどうもうまくいきません。

>Show(VB)やったら。いけたと思うんですが。ACCESSにはないみたいなので。。
>BF.Show やったら。エラ−になりました。

あんまり、処理の内容が分かりませんが、
Msgbox ではダメなのでしょうか?

Dim lngAns As Long
lngAns = Msgbox("処理をしますか?",vbOkCancel)
If lngAns = vbOk Then
  '処理
Else
  Msgbox "処理を中止します。"
  Exit Sub
End IF

のように。。

 ───────────────────────────────────────  ■題名 : Re:フォ−ムの表示について  ■名前 : よ-たん <ks_yokana@ybb.ne.jp>  ■日付 : 02/9/14(土) 23:39  -------------------------------------------------------------------------
   ▼イケガミ さん:
>>月末処理として、あるル−チンをバックグラウドで実行しようとしてるのですが、
>>処理の実行がわからないのでフォ−ムで、処理中を告げるメッセ−ジを表示
>>したいのですがどうもうまくいきません。
>
>>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で。選択せずに。"処理中”と表示し。処理がおわったら。そのメッセ−ジが
けせるなら、なんでもかまわないのです。

こんなんで。質問の意図はわかるでしょうか?

 ───────────────────────────────────────  ■題名 : Re:フォ−ムの表示について  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/15(日) 0:02  -------------------------------------------------------------------------
   >処理してる証拠として。”処理中”ですと。表示したいので。

処理中は、「処理中」と表示し、完了後そのメッセージを消したいと言うこと?

でしたら、ラベルのみのフォームを作成し、プロパティで「作業ウィンドゥ」を
「はい」にし、処理前にそのフォームを開き、処理後に閉じればいいのでは?

 ───────────────────────────────────────  ■題名 : Re:フォ−ムの表示について  ■名前 : よ-たん <ks_yokana@ybb.ne.jp>  ■日付 : 02/9/15(日) 0:50  -------------------------------------------------------------------------
   ▼イケガミ さん:
>>処理してる証拠として。”処理中”ですと。表示したいので。
>
>処理中は、「処理中」と表示し、完了後そのメッセージを消したいと言うこと?
>
>でしたら、ラベルのみのフォームを作成し、プロパティで「作業ウィンドゥ」を
>「はい」にし、処理前にそのフォームを開き、処理後に閉じればいいのでは?

一応、そういうフォ−ムを作ってるのですが。。
プロジェクト(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もひらいてるので、
うまいこといかないと思うんですが、

何か方法はないでしょうか?
やはり、こういったことはむりなんでしょうか?

ちなみに、ポップアップ=はいで、うまくいきましたが。。
表示の位置が。文字道理ポップアップの位置になりました。。
これで、位置がかえれたらそれでいいんですけど。。
ポップアップだから。動かせないですよね。。(恐らく)

 ───────────────────────────────────────  ■題名 : Re:フォ−ムの表示について  ■名前 : イケガミ <ikegami_kumamoto@dosule.com>  ■日付 : 02/9/15(日) 1:13  -------------------------------------------------------------------------
   >プロジェクト(DB自身)の起動時、もしくは、ACCESSのメニュ−(Switchborad)
>もしくは、主になるForm Aが表示してすぐ。。(ユ−ザ−による、何かのイベント発生前(ユ−ザ−に操作をしてほしくない。。))
>状態で、希望の処理Bを行いたいのです。

以下の文はほとんど見てませんが、上記の事がしたいのなら、
AutoExecマクロを使って、メニューフォームを開く前に、コードの実行を
させてみては?

 ───────────────────────────────────────  ■題名 : Re:フォ−ムの表示について  ■名前 : よ-たん <ks_yokana@ybb.ne.jp>  ■日付 : 02/9/15(日) 2:14  -------------------------------------------------------------------------
   ▼イケガミ さん:
>>プロジェクト(DB自身)の起動時、もしくは、ACCESSのメニュ−(Switchborad)
>>もしくは、主になるForm Aが表示してすぐ。。(ユ−ザ−による、何かのイベント発生前(ユ−ザ−に操作をしてほしくない。。))
>>状態で、希望の処理Bを行いたいのです。
>
>以下の文はほとんど見てませんが、上記の事がしたいのなら、
>AutoExecマクロを使って、メニューフォームを開く前に、コードの実行を
>させてみては?

マクロはあまりわからないので、Helpで、AutoExec見て。
よくわからなかったので、いろいろ探ってて
ふとformOpenの設定をみなおしてたら、

WindowMode に acDialogというのがあったので。

DoCmd.OpenForm "月末処理F", , , , , acDialog

にしてみたら、いけました。。

いろいろ、お手数かけまして済みませんでした。
本当、有難うございました。

助かりました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 34