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 过滤器在原始负载上不起作用

带有参数的 Oledb 更新命令在 access-db 上不起作用

为啥 pull-right 类在 bootstrap 版本 4.1.0 上不起作用? [复制]