![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっております。
チェックボックスについてお伺いさせて
いただきます。
内容は以下の通りとなっております。
【チェックボッスがONのとき】
ME!テキストボックスA.Visible = TRUE
ME!テキストボックスB.Visible = TRUE
数値の入力を可能としています。
ただ・・・
【チェックボッスがOFFのとき】
ME!テキストボックスA.Visible = FALSE
ME!テキストボックスB.Visible = FALSE
とするように設定しているのですが。
これが
ME!テキストボックスAとBのどちらかに数値が入力されている場合、
エラーメッセージを表示して各テキストボックスを0にしてから、
ME!テキストボックスAとBを可視 不可の設定にしたいのですが。
どうしても、うまくコード記述することができず苦戦しております。
どなたかご教授お願いいたします。
No.3ベストアンサー
- 回答日時:
こんな感じでいかがでしょうか。
チェックボックスのクリック時のイベントとして作成してみました。
数字以外の文字列が入力されない前提で書いています。
Private Sub チェックボックス1_Click()
Dim txtA As String
Dim txtB As String
'チェックボックスが"ON"の場合
If Me!チェックボックス1.Value = True Then
Me!テキストボックスA.Visible = True
Me!テキストボックスB.Visible = True
Exit Sub
End If
'チェックボックスが"OFF"の場合
'テキストボックスの値を取得(Nullの場合は"")
If IsNull(Me!テキストボックスA.Value) = False Then
txtA = Me!テキストボックスA.Value
Else
txtA = ""
End If
If IsNull(Me!テキストボックスB.Value) = False Then
txtB = Me!テキストボックスB.Value
Else
txtB = ""
End If
'数値判定
If txtA <> "" And txtA <> "0" Then
MsgBox "Aに数値が入力されています"
End If
If txtB <> "" And txtB <> "0" Then
MsgBox "Bに数値が入力されています"
End If
Me!テキストボックスA.Value = "0"
Me!テキストボックスB.Value = "0"
Me!テキストボックスA.Visible = False
Me!テキストボックスB.Visible = False
End Sub
No.2
- 回答日時:
チェックボックス系の制御でよくあるバグは、チェックボックスを激しく連打したときに。
処理の一部が歯抜けるとか。挙動不審になったり。場合によっては、突然、エラーになったり。
誰が何の目的に使って、
どの程度の信頼性を担保するかによるですが。
信頼性がナーバスなら、
その連打テストをやるべきなのは、いわずもがな。
No.1
- 回答日時:
私の頭が変なのか、世間が変なのか不明で。
どう考えても、意味を1通りに解釈するのがきついような記述をしてこれが、仕様書でござると言って平気な人々がいるです。
なぜ、そうなるのか永遠の謎なのです。
数値の入力を可能とするのは。
ア)該当のテキストボックスでキーボード入力をしたときに、数字文字列以外は文字が入らない制御としたいか。
イ) そうではなくキーボード入力自体は、制限はないが
なにかのアクションをするボタン、例えば、登録ボタンなど。その数値を見て処理するところで、
数値かどうかをチェックする方針なのか。
ウ)数値とは、実数のことをいってるのか。つまり、
小数点とか、小数桁は許すのか。整数に限定か。
先頭に+、-の文字が
あるのは許すのか。
AとBのどちらかに数値が
入力されている場合というのは、値が0の場合はその条件に含んでるのか。
(ア)で、もし、
他のアプリ、例えば、
メモ帳などから、文字列を
該当のテキストボックスにコピペしたときなども、
当然、テストしてうまくいってることが確認できたならば。
状況によっては、
「数値が入力されている場合」と称されるものは、
単に、
"0"でない、かつ、""
とするだけで、判定可能かもしれない。
AとBを可視にするときは、
テキストボックスは、0にするのか。
あと、
ア)の制御だったときに、
初期値0にしたいのか。
バックスペースキーや、
デリートキーなどで、
0を消して、
なにも入力されていない
状況がおこりうるのか
などは、当然、テストして
確かめとして。
もし、そうだったときに。
テキストボックスからフォーカスアウト時、なにも入力されてなかったら0に変えるとかするのか。
特に、その必要ないのか。
などなど、
そういう背景があって。
「数値かどうか判定」の処理方法はかわるです。
別に、テキストボックスA、Bの入力値について、
各々やって、Orで判定するだけだと思うです。
あと、気になるのは。
チェックボックスを変更したときのイベントハンドラーで、
該当のチェックボックスのON/OFFについて、操作したその値がとれてるか
デバッガーで確認するとか
です。
つまり、操作前のワンテンポ遅れた逆のON/OFF値になってしまっていないかなど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) テキストボックスの値を該当セルに登録する方法 2 2022/11/23 18:47
- Visual Basic(VBA) 検索 3 2022/12/14 18:21
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) テキストボックス1の値に対するテキストボックス2に表示する値 1 2022/04/05 14:35
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Access サブフォームでの選択行の取得
その他(データベース)
-
access2019 チェックボックスと連動したクエリ抽出条件について
Access(アクセス)
-
アクセスVBAのMe!と[ ]
Access(アクセス)
-
-
4
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
5
Access チェックボックスを使ってレポートへの表示・非表示
その他(データベース)
-
6
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
7
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
8
Access チェックボックスでチェックしたデータのみフォームで表示
Access(アクセス)
-
9
どこにもフォーカスを当てたくない
Access(アクセス)
-
10
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
11
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
12
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
13
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
14
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
15
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
16
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
17
Access チェックボックスを利用した絞込検索のクエリ記述
その他(Microsoft Office)
-
18
Access2007で複数のチェックボックスにチェックが入らない
Access(アクセス)
-
19
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
20
Access フォームで複数テーブルの同時入力
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでテキストボックスの...
-
Word縦書きで左から右への行
-
Access VBAボタンでテキストボ...
-
VBA 空白テキストボックスカウント
-
VBAでテキストボックスに斜線を...
-
ユーザーフォーム上にある「テ...
-
Access レポート印刷するときに...
-
レコードを保存するコード ア...
-
データベースのINT型項目にNULL...
-
「フォームを作成できませんで...
-
アクセスで数値型のフィールド...
-
passwordが入れられません・・・・
-
サブフォームに対してGoToRecor...
-
YahooのIDがロックされてしまい...
-
クエリで出来た表にチェックボ...
-
ACCESS起動時に所定フォームを...
-
親フォームからサブフォームの...
-
Accessで、フォームからフォー...
-
親・子リンクフィールドの設定...
-
アクセスのテキストボックスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスでテキストボックスの...
-
Word縦書きで左から右への行
-
ユーザーフォーム上にある「テ...
-
ACCESS 値の代入
-
チェックボックスのON OFFでの...
-
VBA 空白テキストボックスカウント
-
Access VBAボタンでテキストボ...
-
Accessテキストボックスの未入...
-
VBAでテキストボックスに斜線を...
-
Access テキストボックスのフォ...
-
もう一点、組織図について
-
テキストボックスや図、オブジ...
-
accessのフォームで日付を定形...
-
イラストレーターのCS2を使用し...
-
スクロールテキストボックスで...
-
マクロ初心者です。エクセルの...
-
エクセル2000での2つのテキスト...
-
アクセス Dlookup関数の表示が...
-
【Access】 テキストボックスへ...
-
連番を変更するマクロ
おすすめ情報