プロが教えるわが家の防犯対策術!

最近Accessを始めた初心者です。

レポートで出力する際に文字が切れないように、フォームで入力文字数の制限をするため、Len関数でプロパティの入力規則に以下の設定をしました。

入力規則 Len([フィールド名])<51
エラーメッセージ 50文字以下に調整してください。

で、入力テストをしてみたところ、50文字まで入力可能、51文字からエラーメッセージが表示されるところまでは問題ないのですが、エラーの発生したテキストボックスを空にして、他のテキストボックスへ移動すると、また同じエラーメッセージが出てしまいます。
その後は何文字か入力しないと次のテキストボックスに移れなくなってしまい、入力する場所を間違えた場合にフォームを開きなおさねばならない状態です。

他には新しいレコードに移る際に、コードに以下のメッセージを設定していますが、他は何もしていません。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Beep
If MsgBox("情報が変更されています! 変更されたデータを保存しますか?", _
vbYesNo + vbQuestion) = vbNo Then
Me.Undo
Cancel = True
End If
End Sub

どなたかご教授いただけないでしょうか。

A 回答 (1件)

Len(Nz([フィールド名],""))<51


でいかがでしょう。

Len([フィールド名])<51 Or Is Null
でもいけるかな?(未確認)
    • good
    • 0
この回答へのお礼

Len(Nz([フィールド名],""))<51  を使って目的のテキストボックスにすることが出来ました。

>>Nz関数は、値が数値の場合は数値の0 、値が文字列の場合、長さ 0 の文字列を
>>返します。ただしクエリで使用すると常に長さ 0 の文字列を返します。

なるほど、そういったやり方で回避出来たのですね、大変勉強になりました。
ご指導ありがとうございました。

お礼日時:2007/01/29 11:09

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