【问题标题】:Access: Runtime error 3075 (missing operator) in SQL update query访问:SQL 更新查询中的运行时错误 3075(缺少运算符)
【发布时间】:2014-09-13 01:14:06
【问题描述】:

第一次使用 Access 并希望创建一个使用变量作为其表名的更新查询。现在,我已经让自己陷入了一个没有好处的网络。当我到达需要 SQL 代码的部分时,我得到Runtime error 3075 - Missing operator in '(((" + enteredid + ".todayDate)=Format(Now()','""Short Date"")))' 我从未编写过 SQL,所以我不知道需要什么运算符。

我的代码: strSQL = "UPDATE " + enteredid + " SET " + enteredid + ".signIn = Format(Now(),""Short Time"") WHERE (((" + enteredid + ".todayDate)=Format(Now()','""Short Date"")));"

【问题讨论】:

  • 你在最后一个“格式”函数中有一些随机撇号 - 看看没有它们会发生什么:)

标签: sql ms-access ms-access-2013


【解决方案1】:

我的建议:

  1. 您可以通过使用Date() 函数而不是尝试仅提取Now() 的日期部分来避免WHERE 子句中的整个Format() 问题。

  2. 由于您正在对单个表执行 UPDATE,因此您可以只使用不带 TableName. 前缀的字段(列)名称。

  3. 为了使您的代码更加健壮,请将表名括在方括号中,这样如果表名包含空格或其他“有趣”字符,它就不会崩溃。

所以,修改后的代码看起来更像这样:

strSQL = _
        "UPDATE [" + enteredid + "] SET " + _
            "signIn = Format(Now(),""Short Time"") " + _
        "WHERE todayDate = Date()"

【讨论】:

  • 很好的建议。由于 Gandalf 是 Access 新手,他应该学习如何检查他的代码构建的 UPDATE 语句。 Debug.Print strSQL 会有所帮助。运行代码后,Ctrl+g 在即时窗口中查看语句文本。为了排除故障,他可以复制该语句文本并将其粘贴到新查询的 SQL 视图中。
  • 实际上,我使用的代码来自我放入 SQL 视图并复制的常规更新查询。奇怪的是它怎么没用......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多