- ベストアンサー
access2002 VBAの初期値
アクセスのVBA初心者を卒業できない者です。力をお貸しください。 フォームに、郵便番号を入力するテキスト項目を作成しました。 定型入力の設定をして、"000-0000"で入力させます。 その入力形式をわかるように表示できたので、設定しました。 この項目を入力後処理を始めると、VBAにコントロールが移って、 Me.郵便番号(上記フォームの項目)には、予定通り7桁の数値が入ってきました。 そこで、内部で処理するワーク項目をStringで、w郵便番号として作成しました。 そして、テストとして、この項目には、未入力で送信したところ、エラーになってしまいました。 調査すると、上記ワーク項目へ値を移行するVBAのロジックで、それぞれの値が、 w郵便番号=ME.郵便番号 のデータ移行のロジックで、 w郵便番号="" ME.郵便番号=null となってて、何故かエラーロジックに飛んでしまっていました。 どちらも、値は何も設定していない初期値です。 何が間違っているのかわからず、非常に困っていますので、 どなたか、アドバイスお願いします。 判りづらい説明で申し訳ありません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
何も入力されていない場合 null値という特別な値になります if not IsDBNull(w郵便番号) then ' 入力されている場合 w郵便番号 = Me.郵便番号 else ' 未入力の場合 w郵便番号 = "" end if といった場合分けが必要でしょう
その他の回答 (1)
- temtecomai2
- ベストアンサー率61% (656/1071)
よくやるエラーではありますが、エラーが表示されるのであればそのエラーメッセージを質問文に書いたほうがいいですよ。 んで理由は #1 さんと同じ。<br/> テキストボックスに何も入力されていないので値が "" じゃなくて Null だから。(ここが Excel などのテキストボックスと違うところ) 何も入力しなかった場合に w郵便番号 に "" を入れちゃってもいいんだったら w郵便番号 = Me.郵便番号.Value & "" でも行けたような。
お礼
ありがとうございました
お礼
ありがとうございました。