[[20120521100804]] 『別フォームの値を表示する』(nin) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『別フォームの値を表示する』(nin)

form1では、1つの案件の情報を入力するフォームです。
form2では、form1の中のコンボボックス(日付入力)のドロップボタンした時に、
表示するフォームで、カレンダー上になっていて入力指定されてあります。

そこで、form2で該当した日付をチェックしたときに、
form2を閉じて、値をform1のコンボボックス欄に入力したいのですが、
よい方法があれば教えてください。

form1
public sub cbo日付 _DropButtonClick()

form2
Private Sub Calendar1_Click()

それぞれ、最初の宣言が合っているのかもわかりません。

よろしくお願いします。


 Form2のCalendar1なるものが、何者なのか不明だけど、その値が
 Calendar1.Value に入っているとする。
 で、Form2を閉じるまえに、適切な場所、たとえばCalendar1.Click の中で
 Form1.cbo日付.Value に値を転記してやればいい。

 Private Sub Calendar1_Click()
    Form1.cbo日付.Value = Calendar1.Value
 End Sub

 ただし、データの型式がyyyy/mm/dd といったようなものだった場合、cbo日付にはシリアル値で
 格納されるので、そうであれば一工夫が必要。

 だけど・・・・????
 cbo日付 はコンボボックスだよね? ということは、リストから何かを選ぶのが第一義。
 (もちろん、入力してもいいし、今回のように、マクロで値をせっとしてもいいけど)
 ということは、そのcbo日付のリストそのものが選択候補の日付のリストじゃないの?
 であれば、そこから日付を選べばいい。なぜ、わざわざ別フォームを表示させて、そこで日付を選ぶのかな?
 Form1側がコンボボックスじゃなく、たとえばテキストボックス等ならうなずけるけど?

 (ぶらっと)

解答ありがとうございます。

確かにcbo日付にて選択させれば、事が足りますね・・・
今回は、見やすさを重視してやってみようかと思います。

言い忘れていたのですが、
form2は、form1からだけでなく、別フォームの複数のコマンドからできるようにしたいと考えています。

1対1であれば
Form1.cbo日付.Value = Calendar1.Value
でよいのですが、
複数になった場合の値の受け渡しが分かりません。

よろしくお願いします
(NIN)


 Form2がモーダル表示なら、たとえば。

 標準モジュールにパブリック変数で、Form2の選択結果を格納する変数を規定して
 Form2では、そこにセット。
 Form1他、Form2を呼び出したフォーム側では、戻ってきたらその変数から選択された値を取得。

 ほかにも、いろいろ手はあるけど。

 (ぶらっと)

 Form2ではなにもせず、パブリック変数も使わず以下の方法でも。
(ただし、Form2の呼び出しはモーダルで)

 Private Sub Cbo日付_DropButtonClick()
    With Form2
        .Show
        cbo日付.Value = .Calendar1.Value
    End With
 End Sub

 (ぶらっと)

なるほど、form2以外でも値を入力することができるんですね!!
勉強になります。

カレンダーのチェック時に入力を実行するようにすることもできますか?


 その Calendar1 って、どんなコントロールなの?
 選んだときにクリックイベントが発生するようなものであれば

 Private Sub Calendar1_Click()
    UnLoad Me
 End Sub

 かなぁ?(Calendar1が何物かがわからないのでだめかもしれないけどね)

 (ぶらっと)

度々のコメントですみません。

カレンダーは、エクセルの"カレンダーコントロール10.0”を使用しています。


完璧です!!

思い通りになりました。
お手数おかけしました。

ありがとうございました。
NIN


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.