アプリ版:「スタンプのみでお礼する」機能のリリースについて

access フォームのテキストボックスにID(数字)を手入力し、
テーブルから情報を引き出すというのを作っています。

問題は、一度入力した数字を消した後(バックスペースキーやデリートキーや切り取り)、エンターキーを押すと
「バリアント型でない変数に Null 値を代入しようとしました」
と表示されてしまう点です。
業務上支障はありませんが、この表示を無くしたいのです。

このIDは常に5桁である必要がある為、
フォーム上では定型入力を”99999”としております。
テーブル上ではテキスト型としております。

どのようにすれば、解決できるでしょうか。

A 回答 (4件)

3、そもそもエラーが発生する代入をスキップする。



Private Sub ID_AfterUpdate()
  Dim lngID As Long
  
  If Len(Me.ID & "") > 0 Then
    lngID = Me.ID
    MsgBox lngID
  End If
End Sub
    • good
    • 0

1、単にエラーを表示させない。


2、変数代入時にエラーを発生させない。

Private Sub ID_AfterUpdate()
On Error Resume Next
  Dim lngID As Long
  
  lngID = Me.ID
  MsgBox lngID
End Sub

Private Sub ID_AfterUpdate()
  Dim lngID As Long
  
  lngID = Nz(Me.ID, 0)
  If lngID <> 0 Then
    MsgBox lngID
  End If
End Sub

この回答への補足

皆様ご回答ありがとうございます。この場を借りて申し上げます。

しかし解決できませんでした。
皆さんがおっしゃるNz関数、If文は試しました。

しかし、それらのステートメントに至る前にエラーになっているようです。On Error Resume Nextに至る前のエラーのようです。

プロパティ→データ→既定値
で、既定値を”0”とすると例のエラー表示は無くなりましたが、
(当然ですが)IDを入力するテキストボックスはデフォルトで”0”が表示されます。

5桁での数字入力が必須の為、定型入力を”99999”とした所に起因しているように感じるのですが、どうにか解決できないでしょうか。

補足日時:2006/12/14 14:20
    • good
    • 0

同じ状況をテストしました。


詳しい設定が分らないのですが、次のコードでは解決しませんか?

フォームの上でテキストボックス名を仮に TX1 とすると
フォーム→デザインで開く
そのテキストボックスのプロパティを開く
イベント→更新後処理をクリックして(イベントプロシージャ)にする
その右横のボックスをクリック
-----------------------------
Private Sub TX1_AfterUpdate()
End Sub
-----------------------------
と表示されるとおもうので、その間にエラー処理のコードを書きます
-----------------------------
Private Sub TX1_AfterUpdate()
If IsNull(TX1) Then
TX1 = "99999"
End If
End Sub
-----------------------------
この設定ではテキストが空になったとき、無理やり99999にすると
いう処理ですが、他にも方法はあります。
保存して閉じてフォームを実行すると
NULLになった時エラーメッセージが回避されていると思いますが?

もし違っていたら教えてください。
それと大きなプログラムの場合、設定がよけい悪くなると行けないので
データベースのコピーを使って試してみてください

この回答への補足

皆様ご回答ありがとうございます。この場を借りて申し上げます。

しかし解決できませんでした。
皆さんがおっしゃるNz関数、If文は試しました。

しかし、それらのステートメントに至る前にエラーになっているようです。

プロパティ→データ→既定値
で、既定値を”0”とすると例のエラー表示は無くなりましたが、
(当然ですが)IDを入力するテキストボックスはデフォルトで”0”が表示されます。

5桁での数字入力が必須の為、定型入力を”99999”とした所に起因しているように感じるのですが、どうにか解決できないでしょうか。

補足日時:2006/12/14 14:45
    • good
    • 0

> テーブルから情報を引き出すというのを作っています


ここをどの様に作っているのか説明が無いと・・・

Nz 関数で括って、Nz(テイストボックス名," ") などとすれば良いかも?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A