MySQL 查询在 Access 上不起作用
Posted
技术标签:
【中文标题】MySQL 查询在 Access 上不起作用【英文标题】:MySQL query not working on Access 【发布时间】:2015-07-01 23:58:53 【问题描述】:我有以下 mysql 查询:
INSERT INTO parts
(part_id, source, user, decision, reason, date_messaged, date_suppress_message)
VALUES ('IRUDHE3456','Escalation','john','fail','advertising','2015-07-01',NULL);
它通过 MySQL Workbench 完美地插入行。如果我尝试在 Access 中通过 VBA 运行此查询,则没有任何反应,我根本没有收到任何错误消息,什么也没有。并且该行没有被插入。 VBA 如下所示:
DoCmd.RunSQL the_query_above
对我做错了什么有任何想法吗?在这种情况下,语法如何变化?
这是一个通过 ODBC 链接的表,以防万一,还是问题与 Access 本身更相关?
【问题讨论】:
date_messaged 字段的数据类型是 Date/Time 还是 text 根据 Access? 它是 MySQL 工作台中的 DATE 字段,Access 表示日期/时间 【参考方案1】:找出您的INSERT
失败且没有错误消息的原因。
使用CurrentDb.Execute
及其dbFailOnError 选项执行它。该组合将提醒您注意密钥违规错误,否则可能会导致静默失败。
还要确保SetWarnings
没有关闭。关闭时,Access 会禁止显示信息。确保您能看到所有可能有助于您进行故障排除的信息。
'DoCmd.RunSQL the_query_above
DoCmd.SetWarnings True
CurrentDb.Execute the_query_above, dbFailOnError
我还建议您修改INSERT
声明。将[user]
括在方括号中,因为它是reserved word。由于 date_messaged 是日期/时间数据类型,请使用 #
字符而不是 '
引号将您希望插入的值括起来。
INSERT INTO parts
(part_id, source, [user], decision, reason, date_messaged, date_suppress_message)
VALUES ('IRUDHE3456','Escalation','john','fail','advertising',#2015-07-01#,NULL);
【讨论】:
以上是关于MySQL 查询在 Access 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
用于导出的 INTO OUTFILE 查询在本地驱动器上不起作用
为啥外部链接在构建后在 phonegap 应用程序上不起作用
ACCESS_COARSE_LOCATION 在 Android 6 上不起作用 [重复]
MS Access FileDialog 过滤器在原始负载上不起作用