パソコン(ソフト)

【Access】シンプルなテーブル追加だけど「INSERT INTO ステートメントの構文エラー」が出た原因

本当にシンプルなSQLでのテーブル追加コード

正直、

ココが号泣ポイント

本当にエラーの理由が分からずに3時間を費やしました!

数値型や文字列などの違いや、文字数の違いなどを疑って様々なデバッグをしました。

本当なら下記のコードでちゃんと動くはずでした。

Sub log_arrival()
Dim cn As New ADODB.Connection
Dim SQL As String
Dim uname As String

On Error GoTo ErrRtn

        uname = DLookup("user", "login", "ID = 1")
               
                
        SQL = "INSERT INTO dbo_log(log_user,what1,what2,what3,number) "
        SQL = SQL & "VALUES ('" & uname & "', '入庫登録修正','" & trans_edit_product_code & "' ,'" & trans_edit_reason & "','" & trans_edit_arrival & "') "
        
        Set cn = CurrentProject.Connection

        cn.BeginTrans

                DoCmd.RunSQL SQL

        cn.CommitTrans
        
                cn.Close: Set cn = Nothing
        
ExitErrRtn:
                Exit Sub

ErrRtn:
                MsgBox "ログ収集エラー: " & Err.description
                cn.RollbackTrans
                cn.Close: Set cn = Nothing
                End
                
End Sub





様々なデバッグを繰り返した結果

 

3時間が経過した頃、以前にも不可解な事を解決できた「データベースの修復」を行いました。

結果無意味でした。

原因は違うようです。

 

そして、行きついた結果が、

ココに注意

フィールド名がダメ

って事でした。

 

確かに、

注意ポイント

特殊文字などを使ったらエラーがでる可能性は知っていましたが、普通に「number」ってフィールド名がダメだって知りませんでした。

 

あと、valueもダメでした。

 

これを教訓にフィールド名は、パソコン自体がめったに使わないような言葉にした方が良いってことを知りました。

 

そして、ちゃんと動いたコードは、numberを変えて、what4にしたら問題解決しました。

 

SQL = "INSERT INTO dbo_log(log_user,what1,what2,what3,what4) "
SQL = SQL & "VALUES ('" & uname & "', '入庫登録修正','" & trans_edit_product_code & "' ,'" & trans_edit_reason & "','" & trans_edit_arrival & "') "

 

こんなところに時間を費やすとはトホホ(´;ω;`)ウゥゥ

 

-パソコン(ソフト)
-, , , , , , ,

Translate »

© 2020 PCTips