現在Access VBAを勉強しております。
こちらのテーブルのレコードにSQL文のINSERT INTO VALUESを利用してレコードを追加しようとしております。
その際に下記のSQL文が表題にある通りエラーを起こしており、解決方法がよくわかりません。
問題のSQL文は下記のとおりです。
Private Sub Touroku()
Dim DB As DAO.Database
Dim strSQL As String
Set DB = CurrentDb
関連行 strSQL = "INSERT INTO G顧客情報(登録番号, 氏名, カナ氏名, 生年月日, 性別コード, 関係コード, 都道府県コード, 郵便番号, 住所, 勤務先, 電話番号, 携帯電話番号, PCメールアドレス, 携帯メールアドレス, 備考) " & _
"VALUES(" & _
DMax("登録番号", "G顧客情報") + 1 & " , " & _
" ' " & Me.Tx氏名.Value & " ' , " & _
" ' " & Me.Txカナ氏名.Value & " ' , " & _
エラー該当行 " # " & Me.Tx生年月日 & "#, " & _
Me.Cb性別コード.Value & " , " & _
Me.Cb関係コード.Value & " , " & _
Me.Cb都道府県コード.Value & " , " & _
" ' " & Me.Tx郵便番号.Value & " ' , " & _
" ' " & Me.Tx住所.Value & " ' , " & _
" ' " & Me.Tx勤務先.Value & " ' , " & _
" ' " & Me.Tx電話番号.Value & " ' , " & _
" ' " & Me.Tx携帯電話番号.Value & " ' , " & _
" ' " & Me.Txメールアドレス.Value & " ' , " & _
" ' " & Me.Tx携帯メールアドレス.Value & " ' , " & _
" ' " & Me.Tx備考.Value & " ' ) ; "
DB.Execute strSQL
DB.Close Set DB = Nothing
End Sub
全文はこれですが、実際のエラーを起こしている部分は上記のエラー該当行のみとなっております。
この部分と関連行と書かれている行の生年月日を削除すると問題なく追加が可能となっております。
エラー文は
実行時エラー"3075"
クエリ式 '# 'の日付の構文エラーです。
と表示されております。
お忙しいところ恐縮ですが、何卒エラーの原因と解決方法をご教授のほどよろしくお願いいたします
追記:
ご指摘を受けまして、イミディエイトウィンドウにstrSQLの中身を表示しました。
イミディエイトウィンドウには長いですが、
INSERT INTO G顧客情報(登録番号, 氏名, カナ氏名, 生年月日, 性別コード, 関係コード, 都道府県コード, 郵便番号, 住所, 勤務先, 電話番号, 携帯電話番号, PCメールアドレス, 携帯メールアドレス, 備考) VALUES(25 , ' 岡 ' , ' オカ ' , # 2021/12/04#, 1 , 1 , 1 , ' 1111111 ' , ' 東京 ' , ' かながわ ' , ' 000000 ' , ' 000000 ' , ' 000000 ' , ' 00000 ' , ' 00000 ' ) ;
と表示されました。
また、日付をフォームのコントロール(Me.Tx生年月日)の中に正しく入力してみたところ問題なく追加できました。
どうやら空欄のまま追加ボタンを押下して生年月日フィールドにnull値が入ったことがエラーの原因らしいです。
しかし私の中でなぜnull値が入るとエラーになるのかわからないことに加えて、null値であってもエラーなくそのまま空欄で先に進んでほしいのですがどうすればよろしいのでしょうか?
お時間ございましたら何卒ご教授のほどよろしくお願いいたします。