こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

TextとValueの違い?

Access2010です。
フォームに有る数値入力のためのテキストボックスのKeyDownイベントに、入力後の値がゼロかNullか空白なら再入力させるようにコードを記述しましたがこれでは「型が一致しません」のエラーになります。

-----KeyDownイベントの内容 ここから-----
Select Case Keycode
Case 13
If IsNull(Me.数量.Text) Or Me.数量.Text = "" Or Me.数量.Text = 0 Then
MsgBox ("数量が不正です"), vbCritical
Keycode = 0
End If
End Select
-----KeyDownイベントの内容 ここまで-----

でも、Exitイベントに同じような内容を記述した場合は希望通りの動きをします。
※上記コードからSelectとKeycode=0を外し、TextをValueに変更。

私が何かを理解できていないのだと思いますが、何が違うのでしょう?

投稿日時 - 2015-07-09 08:00:42

QNo.9008888

困ってます

質問者が選んだベストアンサー

× Me.数量.Text = 0
〇 Me.数量.Text = "0"

Private Sub テキスト_数量_Exit(Cancel As Integer)
  Cancel = CBool(Val(テキスト_数量 & "") = 0)
  If Cancel Then
    Warning "数量が不正です!"
  End If
End Sub

Public Sub Message(ByVal Msg As String)
  MsgBox Msg, vbInformation, " お知らせ"
End Sub

Public Sub Warning(ByVal Msg As String)
  MsgBox Msg, vbExclamation, " 警告"
End Sub

PS、一般的な商用ソフトではかかる入力後チェック機能はなぜないのか?

は、考える価値があると思いますよ。

投稿日時 - 2015-07-09 08:42:36

お礼

有難うございます。
サンプルのコードが素晴らしいです。

投稿日時 - 2015-07-09 17:01:22

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

> Me.数量.Text = 0
Textは文字通り文字列なので、
Me.数量.Text = "0"

投稿日時 - 2015-07-09 08:26:50

お礼

有難うございます。

投稿日時 - 2015-07-09 17:00:19

あなたにオススメの質問