Access VBA質問箱 IV

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

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


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

【9288】ボックスのプロパティ値がうまく制御出来ないのですが ワニとカメ 07/4/13(金) 14:16 質問[未読]
【9295】Re:ボックスのプロパティ値がうまく制御出来... まさ7251 07/4/15(日) 17:27 発言[未読]
【9299】Re:ボックスのプロパティ値がうまく制御出来... ワニとカメ 07/4/16(月) 10:27 お礼[未読]
【9298】Re:ボックスのプロパティ値がうまく制御出来... hatena 07/4/16(月) 10:00 回答[未読]
【9300】Re:ボックスのプロパティ値がうまく制御出来... ワニとカメ 07/4/16(月) 10:37 お礼[未読]
【9302】Re:ボックスのプロパティ値がうまく制御出来... hatena 07/4/16(月) 10:56 回答[未読]
【9404】Re:ボックスのプロパティ値がうまく制御出来... ワニとカメ 07/5/14(月) 12:42 お礼[未読]

【9288】ボックスのプロパティ値がうまく制御出来...
質問  ワニとカメ  - 07/4/13(金) 14:16 -

引用なし
パスワード
   他の相談室に投稿したものですが解決しそうにないので、こちらに投稿していみました。
コマンドボタン(名前:cb種別)と、テキストボックス(名前:tx転送先)ひとつずつ作りました。そのコマンドボタンでは英数半角で1、3のいずれかの値を選択して入力し、1が選択された場合にはテキストボックスを使用可、ロックなし、3を選択の場合は使用不可、ロック有りにしたいです。そこで、コマンドボタンの「変更時」イベントを仮に選び、次のようなコードを書きました。
-------------------------------------
Private Sub Form_Open(Cancel As Integer)
    Me!cb種別 = ""
End Sub
-------------------------------------
Private Sub cb種別_Change()
If Me!cb種別 = 1 Then
    Me!tx転送先.Enabled = True
    Me!tx転送先.Locked = False
Else
    Me!tx転送先.Enabled = False
    Me!tx転送先.Locked = True
End If
MsgBox Me!cb種別
MsgBox Me!tx転送先.Enabled
End Sub
-----------------------------------
しかし、実際にフォームを開き、コマンドボタンで3を選ぶと、テキストボックスにはカーソルは行きませんでした(True?)が、見た目使用可の白色(不可の場合は灰色)の状態です。
そこで、End If文の直下に上記MsgBox文を2つ入れて見ますと、
3とFalseがボックス表示されました。ということは実行直後はテキストボックスのプロパティは使用不可になっているのにもかかわらず、あたかも使用出来るかのような表示になっていて誤解しやすいです。
なぜでしょうか?プロパティ値と外見を一致させたいのですが、どうすればいいでしょうか?

【9295】Re:ボックスのプロパティ値がうまく制御出...
発言  まさ7251  - 07/4/15(日) 17:27 -

引用なし
パスワード
   ▼ワニとカメ さん:
>他の相談室に投稿したものですが解決しそうにないので、こちらに投稿していみました。

どこに相談したのでしょうか。
何も進展はなかったのでしょうか。
マルチポストになりますが、その辺の後始末はしているのでしょうか。

> そこで、コマンドボタンの「変更時」イベントを仮に選び、
> 次のようなコードを書きました。

コマンドボタンに、「変更時」イベントはありません。
他のコントロールの間違いでしょうか。

>しかし、実際にフォームを開き、コマンドボタンで3を選ぶと、
>テキストボックスにはカーソルは行きませんでした(True?)が、

これは、TABを押して移動させるとか、マウスでクリックしても
カーソルが移動しないという意味でしょうか。

>見た目使用可の白色(不可の場合は灰色)の状態です。

使用可能が”いいえ”でも、同時に編集ロックが”はい”であれば、
白色になりますよ。
試しにテキストボックスを作って、プロパティを変更してみれば
わかるかと思います。

【9298】Re:ボックスのプロパティ値がうまく制御出...
回答  hatena  - 07/4/16(月) 10:00 -

引用なし
パスワード
   > そのコマンドボタンでは英数半角で1、3のいずれかの値を選択して入力し、

この内容から推測するに、コマンドボタンではなくて、コンボボックスのことかな。

コンボボックスなら、変更時ではなく、更新後処理 に記述してください。

【9299】Re:ボックスのプロパティ値がうまく制御出...
お礼  ワニとカメ  - 07/4/16(月) 10:27 -

引用なし
パスワード
   >どこに相談したのでしょうか。
はい、「答えてねっと」というマイクロソフト主催の相談室です。

>何も進展はなかったのでしょうか。
当初はIf文での文法ミスを発見できましたが、このプロパティ処理については解決に至りませんでした。

マルチポストになりますが、その辺の後始末はしているのでしょうか。
>ご心配なく、解決していませんが、「解決」処理しました。

>コマンドボタンに、「変更時」イベントはありません。...
すみません、コンボボックスの用語ミスでした。

>使用可能が”いいえ”でも、同時に編集ロックが”はい”であれば、
白色に・・・
えっ?そうですか?試しにやってみましたらおっしゃるとおりですね。
私は"EnabledプロパティがTrue"イコール白色、"EnabledプロパティがFalse"イコール灰色、思っていましたが誤解だったようで、勉強になりました。
ありがとうございました。

【9300】Re:ボックスのプロパティ値がうまく制御出...
お礼  ワニとカメ  - 07/4/16(月) 10:37 -

引用なし
パスワード
   ▼hatena さん:
>> そのコマンドボタンでは英数半角で1、3のいずれかの値を選択して入力し、
>
>この内容から推測するに、コマンドボタンではなくて、コンボボックスのことかな。
>
>コンボボックスなら、変更時ではなく、更新後処理 に記述してください。
アドバイスありがとうございます。先の"まさ7253"さんにも回答させていただきましたが、ご推察とおり、コンボボックスの誤りです。私の用語ミスでした。
イベントは更新後処理にしましたが、テキストボックスの色は不変でした。

【9302】Re:ボックスのプロパティ値がうまく制御出...
回答  hatena  - 07/4/16(月) 10:56 -

引用なし
パスワード
   >アドバイスありがとうございます。先の"まさ7253"さんにも回答させていただきましたが、ご推察とおり、コンボボックスの誤りです。私の用語ミスでした。
>イベントは更新後処理にしましたが、テキストボックスの色は不変でした。

まさ7253さんも指摘されてますが、Enabled だけの変更でいいですね。


Private Sub cb種別_Change()
  Me!tx転送先.Enabled = (Me!cb種別 = 1)
End Sub

別案として、条件付き書式を使うのもあります。

【9404】Re:ボックスのプロパティ値がうまく制御出...
お礼  ワニとカメ  - 07/5/14(月) 12:42 -

引用なし
パスワード
   ▼hatena さん:
>まさ7253さんも指摘されてますが、Enabled だけの変更でいいですね。
>Private Sub cb種別_Change()
>  Me!tx転送先.Enabled = (Me!cb種別 = 1)
>End Sub
>
>別案として、条件付き書式を使うのもあります。
hatenaさんへ
アドバイスありがとうございます。
条件付書式は思いつきませんでした。これならVBAによらず、最も簡明な策と思います。今回はVBAで解決しましたが、今後の参考にさせていただきます。

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