MS Access VBA - 语法错误,截断更新sql语句

问题描述:

我在数据表视图中有一个子表单,其记录源是一个临时表。所以每当用户在表单上插入新的事务时,她都会将新记录插入到临时表中。子窗体被设置为使用户不必为事务输入日期,这意味着子窗体中的数据表不显示日期字段。日期通过主窗体中的文本框插入。MS Access VBA - 语法错误,截断更新sql语句

每当记录插入我使用子窗体的更新后子和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 

正如你可以看到我priting SQL语句执行权前,它打印: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;

所以看起来声明的结尾被截断,但我不明白为什么。有人能帮助我吗?

尝试在ISO格式提供日期:

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

谢谢,奇迹般有效! – flouwer

如果今天的日期,使用日期

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

或使用格式

strSQL = "UPDATE tblTempTable " & _ 
"SET transactionDate = #" & Format(transactionDate, "yyyy\/mm\/dd") & "# " & _ 
"WHERE ID = " & currentID & ";"