Access VBA質問箱 IV

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

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


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

【9168】IsNumericのバグ? ksk 07/3/13(火) 10:37 質問[未読]
【9169】Re:IsNumericのバグ? ksk 07/3/13(火) 10:51 発言[未読]
【9170】dは、十進型 たん 07/3/13(火) 10:54 回答[未読]
【9171】Re:dは、十進型 ksk 07/3/13(火) 11:15 発言[未読]
【9172】Likeによる判定をネスト たん 07/3/13(火) 11:19 回答[未読]
【9173】Re:Likeによる判定をネスト ksk 07/3/13(火) 11:29 お礼[未読]

【9168】IsNumericのバグ?
質問  ksk  - 07/3/13(火) 10:37 -

引用なし
パスワード
   以下のようなコードにてTextBox1が数値かどうかを
判定しているのですが、
"1d2"や"1d23"のように数字の間に1文字だけ"d"が入っている場合のみ
なぜかIsNumericがTrueになります。
"d12"や"12d"、"1dd2"や"1d2d3"はFalseになります。
これは関数のバグでしょうか?
TextBox1,TextをDimで定義した変数にしても同様です。

--以下コード--

 If IsNumeric(TextBox1.Text) Then
  Exit Sub
 End If

【9169】Re:IsNumericのバグ?
発言  ksk  - 07/3/13(火) 10:51 -

引用なし
パスワード
   補足です。
バージョンはAccess2003になります。

【9170】dは、十進型
回答  たん  - 07/3/13(火) 10:54 -

引用なし
パスワード
   >"1d2"や"1d23"のように数字の間に1文字だけ"d"が入っている場合のみ
>なぜかIsNumericがTrueになります。

dは、十進型として認識されます。(暗黙の型変換による場合も含む)

ので、バグではありません。
安易なバグ発言をする前に、型をきちんと把握すべきです。

【9171】Re:dは、十進型
発言  ksk  - 07/3/13(火) 11:15 -

引用なし
パスワード
   >安易なバグ発言をする前に、型をきちんと把握すべきです。
申し訳ありません。抜けておりました。
回答ありがとうございます。

>>"1d2"や"1d23"のように数字の間に1文字だけ"d"が入っている場合のみ
>>なぜかIsNumericがTrueになります。
>dは、十進型として認識されます。(暗黙の型変換による場合も含む)
テキストボックスからの入力で、
このようなdやeの使用を認めたくない場合に
どのようにするのが一般的なのでしょうか?
1文字ずつIsNumericを通すのがベストでしょうか?

【9172】Likeによる判定をネスト
回答  たん  - 07/3/13(火) 11:19 -

引用なし
パスワード
   Like演算子による判定をネストすれば良いかと。

【9173】Re:Likeによる判定をネスト
お礼  ksk  - 07/3/13(火) 11:29 -

引用なし
パスワード
   >Like演算子による判定をネストすれば良いかと。
なるほど!そういう方法があるんですね。
それだと処理が早そうです。
ありがとうございました!

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