システムwiki

コンボまたはテキストボックスが入力されていない場合は、[無効]または[グレー]チェックボックスをオンにします.

turbon5 解決済 最終更新日:2021-06-14 10:14

こんにちは、

CodeBelowを使用してテキストボックスを無効にするためのコンボボックスを取得できますが、テキストボックスではなくこの作業を行うにはどうすればよいですか?:

プライベートサブコンボ_BOX_AFTERUPDATE()

me.text_box.enabled=(Me.Combo_Box.ListIndex>= 0)

終了SUB

返信リスト(回答:10)

7 #
Scottge

任意のコントロールの有効なプロパティには、true/false(yes/no、on/off)値があります.使用しているコードは、式によって返される値に応じて有効なプロパティを設定します.
コンボで選択され、falseは選択されていません.だからそれはどのコントロールでも動作します.



これが役立つことを願っています、scott<>p.s.私たちの答えが役立ったかどうかを教えてくれるようにしてください.Microsoft Access MVP 2009著者:Microsoft Office Access 2007 VBAテクニカルエディタ:Microsoft Access 2007とAccess 2007フォームを使用した特別版、
レポートとクエリ

応答7# ->にスキップ
6 #
turbon5

私はもう一度試してみました、そしてそれは働いた!働いていなかった理由は、私が実際のフィールドの名前ではなく、私がコントロール名に入ろうとしていたからでした.どのようにデータベースを作成した者がどのようにして「スーパーバイザの名前」という名前の名前があるか
名前ですが、'が私をめちゃくちゃにしていました.その名前を符号化が他のものとして認識していない方法を名前を維持する方法はありますか?私がしたことは'を取る OUTとそれを「監督者名」にする

応答6# ->にスキップ
8 #
turbon5

OK、私は以下のテキストボックスに基づいてこのコードを試してみましたが、どうやらやっていませんでした.別のテキストボックスが空白のままになっている場合、またはNULLの場合は、別のボックスが無効になっているか、またはグレー表示されていました:

プライベートサブTEXT_BOX_AFTERUPDATE()
me.text_box.enabled= null
me.text_box_2.enabled= false


me.text.box_2.enabled= true

の場合は終わります

終了SUB

応答8# ->にスキップ
5 #
KenSher

ここに間違ったことがいくつかあります.
1.何かをnullと比較することはできません.nullには何もありません、nullさえありません.isNull関数は、何かがNULLかどうかを判断するために使用されます.
2.いずれにせよ、Enabledプロパティはtrueまたはfalseです.
そのため:
プライベートサブTEXT_BOX_AFTERUPDATE()
ISNULL(ME.TEXT_BOX)の場合
me.text_box_2.enabled= false


me.text.box_2.enabled= true

の場合は終了

またはもっと簡潔に:
プライベートサブTEXT_BOX_AFTERUPDATE()
me.text.box_2.enabled= not isNull(Me.Text_box)


text_boxがnullの既存のレコードに移動したときにtext.box_2を無効にする場合は、text.box_2を無効にしたい場合は、コードを現在のイベントプロシージャーに入れます.



ケンシェリダン、ススタッフォード、イギリス

応答5# ->にスキップ
4 #
turbon5

おかげで私は今働くためにこれを手に入れました.チェックボックス、コンボボックス、およびテキストボックスのコードがすべて異なることに気付いたので、これらすべての異なるコードを表示できる場所がありますか.また、フィールド名をスーパーバイザのものにする方法はありますか
監督者だけではなく?コードが変更されたため、コードを含めないようにコードを変更しましたか?

応答4# ->にスキップ
2 #
KenSher

Scottがどのようなものに追加するかを、コントロール名と列(フィールド)の名前の間に区別を描きます.
私は自分自身がコントロール名、テキストボックスのTXT、コンボボックスのためのTXT、CBO、リストボックスのためのLST、チェックボックスなどのLSTなどを使用します.ただし、table内の列の名前またはtableの名前にはこれらを使用しないでください.タグTBLは一般にtableに使用されています
名前、およびタグが列名に使用され、データ型および/または列の役割を識別します.主キー、FORAREキー列の場合はFKのPK. 複数の列で構成された複合主キーで何ができるかわからない
個々の列が外部キーである場合、または実際に主キーが1対1の関係の外部キーである場所は?
個人的には、tableと列名のタグの使用が、特に複雑なSQL文の書き込みや読み取り時にこれらがセマンティクスの邪魔になると思います.私はいつもJoe Celkoのリードをたどって、複数回または集団を使ってみました
tableの名前、例えば.これはtableがセットであるという事実を反映しているように、従業員.列の場合は、特異な名詞を使用して使用してください.これは、列が表が表すエンティティ型の単一属性を表すという事実を反映しています. ただし、この種のものについて処方することはできません.一日の終わりには、最も快適なものは何でも使用するのが最善です.
ただし、しっかりしたポジションを採用することの1つのことは、すべてのオブジェクト名でスペースや特殊文字を回避する必要があります. それは人生をずっと簡単にします.FirstNameのような複合単語の場合、CamelCaseはここに使用できます
CamelCase、FirstName、およびその他すべての小文字、firstName、列名、およびtable名の適切なケース.もう一度選択はあなたのものです.オブジェクトに使用されている名前は、いずれのApplicationのように、ユーザーがもちろんに関する限り完全に無関係です.
名前の価値がある場合、それらはフォームとレポートを介してデータベースをインターフェースします.その中で、キャプションは、基礎となるオブジェクトの名前に関係なくどんな場合でも構いません.



ケンシェリダン、ススタッフォード、イギリス

応答2# ->にスキップ
1 #
turbon5

私が使用した3つのコードから、それらはコントロール名だけではなく、互いに異なるようです.これらは私が使用したコードです:

別のテキストボックスを有効にするために、入力する必要があるかNOT NULLを入力する必要があるブランクテキストボックスのコード

プライベートサブTEXT_BOX_AFTERUPDATE()
me.text.box_2.enabled= not isNull(Me.Text_box)
終了サブ

別のテキストボックスを有効にするために埋める必要があるコンボボックスのコード

プライベートサブコンボボックス_afterupdate()

me.any_other_box_event.enabled=(me.combo_box.listIndex>= 0)

終了サブ

別のボックスを有効にするために並べ替える必要があるチェックボックスのコード

プライベートサブCHECK_BOX_AFTERUPDATE()

check_boxの場合は 'check_boxがチェックされている場合

me.other_field.enabled= true

me.other_field.enabled= false

の場合は終わります

終了サブ

応答4# ->にスキップ
3 #
Scottge

まず、コードは異なっていません.変更がコントロール名であるのは唯一のものです.私の前の説明を参照してください.

次に、オブジェクト名、特にアポストロフィではないスペースを使用しないでください.ほとんどの開発者は、テキストボックスのチェックボックスまたはTXTControlNameのCHKControlNameのようなコントロールの種類を識別するために命名規則を使用します.アクセス命名を検索した場合
表記法は、一般的に使用されるプレフィックスの例を見つけるでしょう.



これが役立つことを願っています、scott<>p.s.私たちの答えが役立ったかどうかを教えてくれるようにしてください.Microsoft Access MVP 2009著者:Microsoft Office Access 2007 VBAテクニカルエディタ:Microsoft Access 2007とAccess 2007フォームを使用した特別版、
レポートとクエリ

9 #
KarlDon

あなたのコードはチェックボックスにも働くべきです.
正確な問題は何ですか?エラーは何も起こりません、...?



karl
*******
アクセスに関するFAQ(ドイツ語/イタリア語): https://www.donkarl.com

10 #
Marshal

コントロールのKibdについても同じです.
Me.ThecheckBox.Enabled=(Me.Combo_Box.ListIndex>= 0)

あなたが他のスレッドで尋ねたのと同じ質問ではありませんか?