Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1229 / 2272 ツリー ←次へ | 前へ→

【8129】サブフォームのコントロール値取得 マミ 06/7/3(月) 14:58 質問[未読]
【8130】Re:サブフォームのコントロール値取得 855 06/7/3(月) 15:17 回答[未読]
【8132】Re:サブフォームのコントロール値取得 マミ 06/7/3(月) 16:20 質問[未読]
【8133】Re:サブフォームのコントロール値取得 クロ 06/7/3(月) 16:33 回答[未読]
【8134】Re:サブフォームのコントロール値取得 マミ 06/7/3(月) 16:42 発言[未読]
【8135】Re:サブフォームのコントロール値取得 クロ 06/7/3(月) 16:45 発言[未読]
【8138】Re:サブフォームのコントロール値取得 マミ 06/7/3(月) 16:52 発言[未読]
【8139】Re:サブフォームのコントロール値取得 855 06/7/3(月) 16:57 発言[未読]
【8140】Re:サブフォームのコントロール値取得 マミ 06/7/3(月) 16:59 発言[未読]
【8142】Re:サブフォームのコントロール値取得 マミ 06/7/3(月) 17:12 お礼[未読]
【8141】Re:サブフォームのコントロール値取得 クロ 06/7/3(月) 17:09 回答[未読]
【8143】Re:サブフォームのコントロール値取得 クロ 06/7/3(月) 17:13 発言[未読]
【8145】Re:サブフォームのコントロール値取得 マミ 06/7/3(月) 17:15 お礼[未読]

【8129】サブフォームのコントロール値取得
質問  マミ E-MAIL  - 06/7/3(月) 14:58 -

引用なし
パスワード
   フォームを開いた際に、サブフォームのテキストボックスの値によって
処理を切り分けたいのですが、どのようにしたらよいのでしょうか?

メインフォームを開く際に、

 Forms!メインフォーム.サブフォーム.テキストコントロール名.value

としてみましたが、そもそもメインフォーム自体が見つかりませんという
エラーになってしまいます。メインフォーム名も間違いなく入力しました
が、なぜエラーとなってしまうか全くわかりません。構文自体が間違いな
のでしょうか。
どなたか、教えていただけませんか?

ちなみにOSはXPで、Accessのバージョンは2003です。

【8130】Re:サブフォームのコントロール値取得
回答  855  - 06/7/3(月) 15:17 -

引用なし
パスワード
   同じ環境ですがこれでいけました。

Forms!メインフォーム!サブフォーム.Form!コントロール名.Value

【8132】Re:サブフォームのコントロール値取得
質問  マミ E-MAIL  - 06/7/3(月) 16:20 -

引用なし
パスワード
   ▼855 さん:
>同じ環境ですがこれでいけました。
>
>Forms!メインフォーム!サブフォーム.Form!コントロール名.Value

ありがとうございます。メインフォームを開いた後に、教えていただ
いた構文で、コントロール値を取得することができました。
実際には、このメインフォームを開いたときに、テキストコントロール
の値によりラベルを表示させたいのですが、以下の構文ではエラーとは
なりませんが、ラベルの表示がされません。何がいけないのでしょうか。

Private sub MainForm_Load()
  If Forms!MainForm!SubForm.Form!ControlText.Value = "1" then
   Forms!MainForm!SubForm.Form!Label_1.Visible = True
  else
   Forms!MainForm!SubForm.Form!Label_1.Visible = False
  end if
end sub

重ね重ねすみませんが、ご教示いただけますか。よろしくお願いします。

【8133】Re:サブフォームのコントロール値取得
回答  クロ  - 06/7/3(月) 16:33 -

引用なし
パスワード
   横レス失礼します。
ControlTextのデータ型テキスト型ですか?
数値型でしたら「""」は不要かと…

【8134】Re:サブフォームのコントロール値取得
発言  マミ E-MAIL  - 06/7/3(月) 16:42 -

引用なし
パスワード
   ▼クロ さん:
>横レス失礼します。
>ControlTextのデータ型テキスト型ですか?
>数値型でしたら「""」は不要かと…

データ型は文字列です。実際には"あり"または"なし"という
文字列が入力され、"あり"の場合は、ラベルを表示、"なし"
の場合はラベルを非表示にしたいのですが、うまくいかない
のです。
コードはメインフォームのLoadに記述し、テキストコントロ
ールとラベルは共にサブフォームに配置されています。

【8135】Re:サブフォームのコントロール値取得
発言  クロ  - 06/7/3(月) 16:45 -

引用なし
パスワード
   サブフォームに1レコード表示ですか?先頭のレコードの対象テキスト
ボックスが対象になるかと思いますがどうでしょうか?

ちなみに当方のテストでは問題ないようです。

【8138】Re:サブフォームのコントロール値取得
発言  マミ E-MAIL  - 06/7/3(月) 16:52 -

引用なし
パスワード
   ▼クロ さん:
>サブフォームに1レコード表示ですか?先頭のレコードの対象テキスト
>ボックスが対象になるかと思いますがどうでしょうか?
>
>ちなみに当方のテストでは問題ないようです。

はい。1レコードです。メインフォームとサブフォームではIDでリンク
されており、メインフォームを開く時にフィルターをかけて対象の1レ
コードに絞っています。ちなみにIf文で"あり"の場合にMsgboxを表示
してみましたが、正常に表示されました。でも、ラベル.Visible=True
は無視されてしまいます。

【8139】Re:サブフォームのコントロール値取得
発言  855  - 06/7/3(月) 16:57 -

引用なし
パスワード
   私もためしてみましたがちゃんと非表示になりました。

Me.サブフォーム.Requery

とかやってみたらどうです?

【8140】Re:サブフォームのコントロール値取得
発言  マミ E-MAIL  - 06/7/3(月) 16:59 -

引用なし
パスワード
   ▼マミ さん:
>▼クロ さん:
>>サブフォームに1レコード表示ですか?先頭のレコードの対象テキスト
>>ボックスが対象になるかと思いますがどうでしょうか?
>>
>>ちなみに当方のテストでは問題ないようです。
>
>はい。1レコードです。メインフォームとサブフォームではIDでリンク
>されており、メインフォームを開く時にフィルターをかけて対象の1レ
>コードに絞っています。ちなみにIf文で"あり"の場合にMsgboxを表示
>してみましたが、正常に表示されました。でも、ラベル.Visible=True
>は無視されてしまいます。

Private sub MainForm_Load()
  If Forms!MainForm!SubForm.Form!ControlText.Value = "あり" then
   Forms!MainForm!SubForm.Form!Label_1.Visible = True
   Msgbox "ありの処理",vbokonly
  else
   Forms!MainForm!SubForm.Form!Label_1.Visible = False
  end if
end sub

上記のように記述してみると、Msgboxは表示されます。エラーにもなら
ずに、フォームが開きます。でもLabel_1が表示されないのです。

【8141】Re:サブフォームのコントロール値取得
回答  クロ  - 06/7/3(月) 17:09 -

引用なし
パスワード
   >はい。1レコードです。メインフォームとサブフォームではIDでリンク
>されており、メインフォームを開く時にフィルターをかけて対象の1レ
>コードに絞っています。ちなみにIf文で"あり"の場合にMsgboxを表示
>してみましたが、正常に表示されました。でも、ラベル.Visible=True
>は無視されてしまいます。
でしたらラベル名が間違っているとか?

【8142】Re:サブフォームのコントロール値取得
お礼  マミ E-MAIL  - 06/7/3(月) 17:12 -

引用なし
パスワード
   メインフォームを開いた時に、サブフォームのテキストコントロールに
最初にフォーカスがセットされるようにして、そのテキストコントロー
ルのEnterイベントに条件文を書いて見たら、フォームを開いた時にテキ
ストコントロールの値により、ラベル表示/非表示を切り替えることが
できました。これで何とかなりそうな気がします。

855さん、クロさん、いろいろありがとうございました。

【8143】Re:サブフォームのコントロール値取得
発言  クロ  - 06/7/3(月) 17:13 -

引用なし
パスワード
   Private sub MainForm_Load()
ここの「MainForm」は誤記ですか?
Private Sub Form_Load()
としてみては?

【8145】Re:サブフォームのコントロール値取得
お礼  マミ E-MAIL  - 06/7/3(月) 17:15 -

引用なし
パスワード
   ▼クロ さん:
>>はい。1レコードです。メインフォームとサブフォームではIDでリンク
>>されており、メインフォームを開く時にフィルターをかけて対象の1レ
>>コードに絞っています。ちなみにIf文で"あり"の場合にMsgboxを表示
>>してみましたが、正常に表示されました。でも、ラベル.Visible=True
>>は無視されてしまいます。
>でしたらラベル名が間違っているとか?

ラベル名は、コントロールのプロパティから名前をコピーしてソースに
貼り付けましたので、間違いないのですが、From_Openにはどう記述して
も表示切替ができません。とりあえず、前後してしまいましたが先ほどの
お礼の投稿のとおりで対処してみようと思います。
きめ細かく、ご教示いただき本当にありがとうございました。

1229 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078222
(SS)C-BOARD v3.8 is Free