我有以下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本身有什么关系?
答案 0 :(得分:3)
找出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);