• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:INSERT INTOで数値型にNull代入)

INSERT INTOで数値型にNull代入

このQ&Aのポイント
  • フォームのcmb性別を選択せず登録ボタンを押してINSERTするとエラーになる場合がある。
  • 性別フィールドは必須項目にせず選択しない時は空白でレコードに追加にしたい。
  • INSERT文の実行前に数値型フィールドにNullを代入することはできない。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

>& " ,'" & Nz(Me!cmb性別, Null ).Value & "'" _ & " ,'" & Nz(Me!cmb性別.Value, Null) & "'" _ では?

UMEGEN-0315
質問者

お礼

早急なレスありがとうございます! >& " ,'" & Nz(Me!cmb性別.Value, Null) & "'" _ 試させて頂いたのですが結果は同じでした・・・ & " ,'" & Null & "'" _ではエラー & " ,'" & 0 & "'" _では追加出来るので、やはり数値型にはNull代入は不可能なのでしょうか? そうなると、数値型で空白にしたい場合Nullに代用できるものはありますでしょうか? 面倒な質問で申し訳ありません!御教授お願いいたします。

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

No2です。確認のために、IF文の前に、 If IsNull(Me!cmb性別) Then If MsgBox("性別が選択されていません。このまま登録しますか", vbYesNo) = vbNo Then Exit Sub End If End If を入れて誤登記を防ぐということも必要かも しれません。

UMEGEN-0315
質問者

お礼

説明が足りずに申し訳ありません! 顧客登録で個人の場合は性別を選択し登録を行うのですが、法人の場合はcmb性別を(フォーム上非表示)にして選択せずに登録を行いたいのです。 他にも 顧客コードを数値型で管理したく、フィールドに「紹介者」と言う項目がありまして、 ここに顧客コードを入れたいのですが、紹介者がいない場合は空白で登録したいのですが・・・ 過去ログで調べ、 & " ,'" & Nz(Me!cmb性別, Null ).Value & "'" _ などやってみましたが、うまく行きません。 Function などでNullをセットするなどの過去ログがありましたが、これはかなり難易度の高い作業なのでしょうか? アドバイス宜しくお願いいたします。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

cmb性別で選択されている場合といない場合を振り分けて、 If Not IsNull(Me!cmb性別) Then strSQL = "INSERT INTO T顧客情報" _ & " (顧客コード" _ & " ,顧客名" _ & " ,性別)" strSQL = strSQL _ & "VALUES (" & Me!txt顧客コード.Value & "" _ & " ,'" & Me!txt顧客名.Value & "'" _ & " ,'" & Me!cmb性別.Value & "')" Else strSQL = "INSERT INTO T顧客情報" _ & " (顧客コード" _ & " ,顧客名)" strSQL = strSQL _ & "VALUES (" & Me!txt顧客コード.Value & "" _ & " ,'" & Me!txt顧客名.Value & "')" End If adoCN.BeginTrans adoCN.Execute strSQL のように、SQL文にcmb性別のデータを含めるか 含めないかにしてみては?

UMEGEN-0315
質問者

お礼

毎回お世話になります! 今回のフィールドは50行ほどありましてIf~Else~End Ifですとかなり長くなってしまいますので、 他の方法を考えたいと思います。 ありがとうございます。

回答No.1

テーブルのフィールドのプロパティを編集する。 「値要求」がNULLの禁止/許可を示します。

UMEGEN-0315
質問者

お礼

返答ありがとうございます! テーブルの値要求は「いいえ」になっています。 テキスト型か既定値を「0」にすればエラーは回避できるのですが・・・ 何とか数値型のままNullでもエラーを回避し追加する方法は無いでしょうか、 お力添えよろしくお願いいたします。