访问更新 SQL

问题描述

我正在尝试更新我的表(引用)字段名称(引用日期)类型日期 使用输入框进行更新,其中用户通过输入框传递数字,然后传递给这个数字以引用日期给我日期 + 2 天的结果。 (例如:输入框2天,加2天到20-12-2020结果是22-12-2020) 我得到的错误(更新语句中的语法错误) 我的访问版本是2013

我的代码如下:

Dim S As Integer
    
S = InputBox(" How many days to follow","Number of Days !")

DoCmd.Runsql "UPDATE Referral" & _
"SET referdate = referdate" & Me.referdate + S & _
"where SRSno = " & Me.SRSno

Me.Refresh

解决方法

根据文档 (https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/update-statement-microsoft-access-sql),您的语句似乎包含与局部变量连接的现有列值。试试这个:

DoCmd.RunSQL "UPDATE Referral" & _
"SET referdate = " & Me.referdate + S & _
"where SRSno = " & Me.SRSno

区别很细微,但 Microsoft 示例显示将值作为查询表达式的一部分添加到现有列值:

SET OrderAmount = OrderAmount * 1.1,

您的情况的替代语法可能是:

DoCmd.RunSQL "UPDATE Referral" & _
"SET referdate = referdate + " & S & _
"where SRSno = " & Me.SRSno

无论哪种情况,请注意 referdate 在语句中只出现一次。

,

包括 DateAdd 并且不要忘记空格:

If Val(S) > 0 Then
    DoCmd.RunSQL "UPDATE Referral " & _
    "SET referdate = DateAdd('d'," & Val(S) & ",referdata) " & _
    "WHERE SRSno = " & Me.SRSno & ""
End If