2016-10-17 5 views
0

私はデータシートビューでそのレコードソースが一時テーブルであるサブフォームを持っています。したがって、ユーザーがフォームに新しいトランザクションを挿入すると、新しいレコードが一時テーブルに挿入されます。サブフォームは、ユーザーがトランザクションの日付を入力する必要がないように設定されています。つまり、サブフォームのデータシートに日付フィールドが表示されません。日付は、メインフォームのテキストボックスに挿入されます。MS Access VBA - 構文エラー、切り捨てられた更新SQLステートメント

レコードが挿入されるたびに、サブフォームのAfterUpdateサブコマンドとSQL UPDATEステートメントを使用して、一時テーブルに日付を挿入しています。しかし、私は構文エラーが発生しています。

Dim db As Database 
Dim currentID As Integer 
Dim transactionDate As Date 
Dim strSQL As String 

Private Sub Form_AfterUpdate() 
    Set db = CurrentDb 
    currentID = Me!txtID 
    transactionDate = Me.Parent!txtDate 

    strSQL = "UPDATE tblTempTable " _ 
    & "SET transactionDate = " & transactionDate _ 
    & " WHERE ID = " & currentID & ";" 

Debug.Print (strSQL) 
db.Execute strSQL 

End Sub 

をあなたは私が右の実行前にSQL文をpritingだし、それが印刷さ見ることができるように:UPDATE tblTempTable SET transactionDate = 17.10.2016 WHERE ID = 55;が、私はsytnaxエラー取得しています:Syntax error in number in query expression '17.10.201'をこれは私が使用しているコードです。 & "SET transactionDate = #" & transactionDate & "#" _を使ってハッシュタグ内の日付以外にも、構文エラー:Syntax error in date in query expression '#17.10.2016'が表示されます。同時に、Debug.Printは次のように出力します。UPDATE tblTempTable SET transactionDate = #17.10.2016# WHERE ID = 56;

したがって、ステートメントの末尾が切り詰められているように見えますが、私はその理由を理解していません。誰かが私を助けることができますか?

答えて

1

はISO形式で日付を供給してみてください。

UPDATE tblTempTable SET transactionDate = #2016-10-17# WHERE ID = 55; 
+0

はありがとうを、魅力のように動作します! – flouwer

0

今日の日付場合は、使用:

strSQL = "UPDATE tblTempTable " & _ 
"SET transactionDate = Date() " & _ 
"WHERE ID = " & currentID & ";" 

またはフォーマット使用:

strSQL = "UPDATE tblTempTable " & _ 
"SET transactionDate = #" & Format(transactionDate, "yyyy\/mm\/dd") & "# " & _ 
"WHERE ID = " & currentID & ";" 
関連する問題