Access VBA質問箱 IV

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

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


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

【5988】数値のみ入力したい場合 Seri 05/8/24(水) 12:54 質問[未読]
【5989】Re:数値のみ入力したい場合 Gin_II 05/8/24(水) 13:05 回答[未読]
【5990】Re:数値のみ入力したい場合 Seri 05/8/24(水) 13:19 発言[未読]
【5996】Re:数値のみ入力したい場合 Gin_II 05/8/24(水) 14:09 回答[未読]
【6000】Re:数値のみ入力したい場合 Seri 05/8/24(水) 14:47 発言[未読]
【5991】Re:数値のみ入力したい場合 小僧 05/8/24(水) 13:21 発言[未読]
【5992】Re:数値のみ入力したい場合 Seri 05/8/24(水) 13:36 発言[未読]
【5993】Re:数値のみ入力したい場合 小僧 05/8/24(水) 13:57 発言[未読]
【5997】Re:数値のみ入力したい場合 Seri 05/8/24(水) 14:14 質問[未読]
【6001】Re:数値のみ入力したい場合 小僧 05/8/24(水) 15:06 発言[未読]
【6002】Re:数値のみ入力したい場合 Seri 05/8/24(水) 17:43 発言[未読]
【6004】Re:数値のみ入力したい場合 YU-TANG 05/8/24(水) 21:48 発言[未読]
【6008】Re:数値のみ入力したい場合 Seri 05/8/25(木) 10:28 お礼[未読]
【6024】Re:数値のみ入力したい場合 YU-TANG 05/8/25(木) 21:39 発言[未読]
【6036】Re:数値のみ入力したい場合 Seri 05/8/26(金) 10:30 お礼[未読]

【5988】数値のみ入力したい場合
質問  Seri  - 05/8/24(水) 12:54 -

引用なし
パスワード
   テキストボックスに数値以外の英字や記号が入力された場合に
エラーメッセージを表示したいのですが英数字の入力規制の
やり方はわかるのですが、数値のみがわかりません。
わかる方がいましたら教えてください。

【5989】Re:数値のみ入力したい場合
回答  Gin_II  - 05/8/24(水) 13:05 -

引用なし
パスワード
   >エラーメッセージを表示したいのですが英数字の入力規制の
>やり方はわかるのですが、数値のみがわかりません。

入力規則プロパティで
[フィールド名] Between 0 And 99999

とかではダメですか?

【5990】Re:数値のみ入力したい場合
発言  Seri  - 05/8/24(水) 13:19 -

引用なし
パスワード
   ▼Gin_II さん:
>>エラーメッセージを表示したいのですが英数字の入力規制の
>>やり方はわかるのですが、数値のみがわかりません。
>
>入力規則プロパティで
>[フィールド名] Between 0 And 99999
>
>とかではダメですか?

早速の回答ありがとうございます。
試させていただいたのですが、自作で作ったエラーとは違い
アクセス自体のエラーが
『このフィールドに入力した値が正しくありません。』
                    表示されてしまいます。

【5991】Re:数値のみ入力したい場合
発言  小僧  - 05/8/24(水) 13:21 -

引用なし
パスワード
   ▼Seri さん、Gin_II さん:
こんにちは。

VBA で行うのであれば、

更新前処理に

IsNumeric関数で

テキストボックスの値がFalseの場合

Cancel = True

でどうでしょうか。

【5992】Re:数値のみ入力したい場合
発言  Seri  - 05/8/24(水) 13:36 -

引用なし
パスワード
   ▼小僧 さん:
>VBA で行うのであれば、
>
>更新前処理に
>
>IsNumeric関数で
>
>テキストボックスの値がFalseの場合
>
>Cancel = True
>
>でどうでしょうか。

早速のご意見ありがとうございます。
試してみたのですが更新前処理のイベントが発生する前に
アクセスのエラーが表示されてしまいます。

【5993】Re:数値のみ入力したい場合
発言  小僧  - 05/8/24(水) 13:57 -

引用なし
パスワード
   ▼Seri さん:
こんにちは。

更新前処理の前にAccessの入力規制が働いてしまうので
設定されているようでしたら外してみてください。

【5996】Re:数値のみ入力したい場合
回答  Gin_II  - 05/8/24(水) 14:09 -

引用なし
パスワード
   >試させていただいたのですが、自作で作ったエラーとは違い
>アクセス自体のエラーが
>『このフィールドに入力した値が正しくありません。』
>                    表示されてしまいます。

入力規則プロパティの近くに、エラーメッセージプロパティというのが
ありますよ。

【5997】Re:数値のみ入力したい場合
質問  Seri  - 05/8/24(水) 14:14 -

引用なし
パスワード
   ▼小僧 さん:
>▼Seri さん:
>こんにちは。
>
>更新前処理の前にAccessの入力規制が働いてしまうので
>設定されているようでしたら外してみてください。

確認したのですが入力規制は設定していませんでした。
テーブルのフィールドが数値型になっているのが原因でしょうか?

【6000】Re:数値のみ入力したい場合
発言  Seri  - 05/8/24(水) 14:47 -

引用なし
パスワード
   ▼Gin_II さん:
>>試させていただいたのですが、自作で作ったエラーとは違い
>>アクセス自体のエラーが
>>『このフィールドに入力した値が正しくありません。』
>>                    表示されてしまいます。
>
>入力規則プロパティの近くに、エラーメッセージプロパティというのが
>ありますよ。

エラーメッセージプロパティに入力したメッセージが表示されません。

【6001】Re:数値のみ入力したい場合
発言  小僧  - 05/8/24(水) 15:06 -

引用なし
パスワード
   ▼Seri さん:
作成されているフォームは連結フォームなのでしょうか。

色々探したのですが、連結フォームにおいて
Access が発行するメッセージより先にイベントを拾う方法が
見つかりませんでした。

当方の知識では無理ですので
引き続き識者の回答をお待ち下さい。

【6002】Re:数値のみ入力したい場合
発言  Seri  - 05/8/24(水) 17:43 -

引用なし
パスワード
   ▼小僧 さん:
>作成されているフォームは連結フォームなのでしょうか。

連結フォームです。

>
>色々探したのですが、連結フォームにおいて
>Access が発行するメッセージより先にイベントを拾う方法が
>見つかりませんでした。
>
>当方の知識では無理ですので
>引き続き識者の回答をお待ち下さい。

いろいろとありがとうございました。

【6004】Re:数値のみ入力したい場合
発言  YU-TANG WEB  - 05/8/24(水) 21:48 -

引用なし
パスワード
   こんばんは、YU-TANG です。

入力規則で対応できる方法は私も知りませんが、そもそも数値以外
入力できないようにするという方向性はナシなんでしょうか?

数値以外の入力を許しておきながら、後でダメ出しするのは、設計
思想として少し?です。

【6008】Re:数値のみ入力したい場合
お礼  Seri  - 05/8/25(木) 10:28 -

引用なし
パスワード
   ▼YU-TANG さん:
>こんばんは、YU-TANG です。
>
>入力規則で対応できる方法は私も知りませんが、そもそも数値以外
>入力できないようにするという方向性はナシなんでしょうか?
>
>数値以外の入力を許しておきながら、後でダメ出しするのは、設計
>思想として少し?です。

ご意見ありがとうございます。

【6024】Re:数値のみ入力したい場合
発言  YU-TANG WEB  - 05/8/25(木) 21:39 -

引用なし
パスワード
   ▼Seri さん:
>ご意見ありがとうございます。

ということは、後出し NG 路線を変える気は無い、ということですね。
ま、何をもって使いやすいとするかは人それぞれなので、それも良い
でしょう。

前回のレスにも書いたとおり、入力規則で対応する方法は分かりません
ので、後はフォームの [エラー時] イベントを使うくらいでしょうか。

# ヘルプの使用例そのまんまですが。

Private Sub Form_Error(DataErr As Integer, Response As Integer)

  Const conInvalidDataType = 2113
  Dim strMsg As String

  If DataErr = conInvalidDataType Then
    Response = acDataErrContinue
    strMsg = "数値を入力してください。"
    MsgBox strMsg
    ActiveControl.Undo
  End If

End Sub

それでは、頑張ってください。

【6036】Re:数値のみ入力したい場合
お礼  Seri  - 05/8/26(金) 10:30 -

引用なし
パスワード
   ▼YU-TANG さん:
>▼Seri さん:
>>ご意見ありがとうございます。
>
>ということは、後出し NG 路線を変える気は無い、ということですね。
>ま、何をもって使いやすいとするかは人それぞれなので、それも良い
>でしょう。
>
>前回のレスにも書いたとおり、入力規則で対応する方法は分かりません
>ので、後はフォームの [エラー時] イベントを使うくらいでしょうか。
>
># ヘルプの使用例そのまんまですが。
>
>Private Sub Form_Error(DataErr As Integer, Response As Integer)
>
>  Const conInvalidDataType = 2113
>  Dim strMsg As String
>
>  If DataErr = conInvalidDataType Then
>    Response = acDataErrContinue
>    strMsg = "数値を入力してください。"
>    MsgBox strMsg
>    ActiveControl.Undo
>  End If
>
>End Sub
>
>それでは、頑張ってください。

ありがとうございます。がんばります。

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