[リストへもどる]
一括表示

投稿時間:2003/03/06(Thu) 19:05
投稿者名:Qちゃん
Eメール:
URL :
タイトル:
FORM LOAD時に・・
ほかの画面から呼ばれたフォームで FORM LOAD 時にUNLOAD ME を使うと
「既にアンロードされています」というエラーが出てきます。
UNLOAD ME のところではなく、呼び出し元でのエラーなのですが、
これはどう回避したらよいでしょうか?

投稿時間:2003/03/06(Thu) 19:32
投稿者名:NAO★
Eメール:
URL :
タイトル:
Re: FORM LOAD時に・・
> ほかの画面から呼ばれたフォームで FORM LOAD 時にUNLOAD ME を使うと
> 「既にアンロードされています」というエラーが出てきます。
> UNLOAD ME のところではなく、呼び出し元でのエラーなのですが、
> これはどう回避したらよいでしょうか?

Form_Load時にアンロードするのなら
最初から呼ばない方が…

投稿時間:2003/03/06(Thu) 19:34
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: FORM LOAD時に・・
> ほかの画面から呼ばれたフォームで FORM LOAD 時にUNLOAD ME を使うと
> 「既にアンロードされています」というエラーが出てきます。
> UNLOAD ME のところではなく、呼び出し元でのエラーなのですが、
> これはどう回避したらよいでしょうか?

下記の様な事ですか?  Form1とForm2を作成して
Form1には
Private Sub Command1_Click()
  Form2.Show
End Sub


Form2には
Private Sub Form_Load()
  Unload Me
End Sub
...としたらエラーが出る...でしょうか?

だとすれば普通は
Form1にて
Private Sub Command1_Click()
   Unload Me
   Form2.Show
End Sub
...とするか、又は
Form2には
Private Sub Form_Load()
  Unload Form1
End Sub
...の様にするのでは無いでしょうか?

(根本的に質問の意味を取り違えているのかな)

投稿時間:2003/03/06(Thu) 19:48
投稿者名:Qちゃん
Eメール:
URL :
タイトル:
Re^2: FORM LOAD時に・・
ご回答ありがとうございます。
説明が足りなかったようで・・

フォーム1から、フォーム2を呼んで、
フォーム2のロード時にDBなどからデータを取得したもものチャックをして、
もし、エラーなどあったらフォーム2を閉じる
ことをしたいのです。

ですので
FORM2に
Private Sub Form_Load()
  Unload Form2
End Sub
と書きたいのです。

投稿時間:2003/03/06(Thu) 20:21
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^3: FORM LOAD時に・・
Form_Loadイベント内でUnload Meは出来ません。

他の掲示板で同じような質問をしていた人に答えたものですが、もし参考になれば…。
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200303/03030005.txt

投稿時間:2003/03/07(Fri) 09:34
投稿者名:Qちゃん
Eメール:
URL :
タイトル:
Re^4: FORM LOAD時に・・
ありがとうございます。なんとなくわかりました。
ただ、他のフォームから呼び出したいのですが、そこらへんがよくわかりません。

From1
  Key_Click時
    From2.show vbModal
            ↓
Form2
  From_Load時
         処理
             ↓
         If  条件  True
           UNLOAD ME
         ELSE
           そのまま開く
         END IF

ということをしたいんですけど。。。  

投稿時間:2003/03/07(Fri) 11:29
投稿者名:よねKEN
Eメール:
URL :http://www5b.biglobe.ne.jp/~yone-ken/
タイトル:
Re^5: FORM LOAD時に・・
> From1
>   Key_Click時
>     From2.show vbModal
>             ↓
> Form2
>   From_Load時
>          処理
>              ↓
>          If  条件  True
>            UNLOAD ME
>          ELSE
>            そのまま開く
>          END IF

Form2に下記のようなPublicメソッドを追加します。

Public Function CanShow() As Boolean
    If 条件 Then
        CanShow = False
    Else
        CanShow = True
    End If
End Function

呼出し側は先のメソッドを使ってチェックします。
Form1
   Key_Click時
   If Form2.CanShow() Then
     Form2.show vbModal
   End If

のようにすればUnloadする必要はないかと思います。

注意点ですが、CanShowメソッド内では、
Form2にもとからあるプロパティやForm2上に配置されているコントロールにアクセスしてはいけません。
これらにアクセスしてしまうと暗黙にForm2がロードされてしまいます。
独自に作成したメソッドやプロパティにアクセスするのは問題ありません。
(もちろんその独自に作成したメソッド、プロパティが
Form2のプロパティやForm2上のコントロールにアクセスしていないことが前提条件です)

投稿時間:2003/03/07(Fri) 19:53
投稿者名:Qちゃん
Eメール:
URL :
タイトル:
Re^6: FORM LOAD時に・・
解決しました。どうもありがとうございました。