2017-04-07 15 views
0

私はMicrosoft Access内でデータベースを作成しました。
フォームにボタンが付いています。クリックしたときにテーブルcustomerHeaderに新しいレコードを挿入します。
このテーブルには、オートナンバーである4つのフィールドがあります。私のSQLステートメントでは、autofieldなのでorderNumberは含めません。
ボタンをクリックしようとしたときにクリックイベントが実行されると、Microsoft Accessで追加クエリのレコードを追加できないというエラーが表示されます。Microsoft Access VBA INSERT SQLステートメント

私はあらゆるところを見てきましたが、私は解決策を見つけることができませんでした。

Private Sub addOrder_Click() 
    Dim mySql As String 
    Dim rowNum As Integer 
    Dim recCount As Long 
    Dim orderNumber As Long 
    Dim myBool As Boolean 


    Dim todayDate As Date 

    todayDate = CDate(Date) 

    myBool = False 


    MsgBox todayDate 

    rowNum = Form.CurrentRecord 
    rowNum = CInt(rowNum - 1) 



    'DoCmd.GoToRecord , , acNewRec 
    mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (" & todayDate & "," & rowNum & "," & myBool & ")" 

    DoCmd.RunSQL mySql 

    Me!orderNum.Requery 
+0

日付の ' - '(# "&todayDate&"#、 "'の前後に '#'を追加しても構いませんが、SQLは機能します(日付の書式あなたの地域に応じて - 私はアクセスで日付が嫌いです。)それは与えるssage?通常、それは - 型変換失敗のために 'MS Access xフィールドがNullに設定されており、xレコードが追加されていません..... ' –

+0

具体的には、「Microsoft Access set 0 field( s)を型変換に失敗したためにNullに設定し、キー違反、ロック違反によるレコード数0、および検証ルールによるレコード数が0であるため、テーブルに1レコードを追加しませんでした。違反 "と述べた。私は日付に#を追加しようとします –

答えて

0

あなたはあまり周りにはありません - ちょうど日付値の文字列表現の形式のためのISO・シーケンスを使用します。

mySql = "INSERT INTO orderHeader (orderDate,custNumber,printed) VALUES (#" & Format(todayDate, "yyyy\/mm\/dd") & "#," & rowNum & "," & myBool & ")" 

しかし、それはそれの今日、単純に使用します。

+0

私はちょうどそれを今試みましたが、残念ながら、私は以前と同じエラーが与えられています。 –

+0

次に何かが続いています。値を手動で挿入し、問題のある値を見つけてください。 – Gustav

+0

"キー違反"は、一意のインデックスを持つフィールドに重複値を挿入しようとしていることを意味します。 – Gustav

関連する問題