我正试图修复我的第一份INSERT INTO声明。这是CurrentDb.Execute strSQL
的字符串strSQL = "INSERT INTO [Procedure] (UserName, Date, StartTime, EndTime, Semester, FacilityID, Doctor, CaseID, ServiceID, RoleName, Trainer, Comment, Updated_By, Updated_Datetime) VALUES ('username', '12/04/2018', '01:30 PM', '02:00 PM', 'Fall', '4', 'Dr. Who', 'Cataract Extraction with Stent For Glaucoma', '4', 'OS', 'Trainer', 'Comment', 'username', '4/23/2018 7:51:00 PM');"
程序字段名称:
UserName, Date, StartTime, EndTime, Semester, FacilityID, Doctor, CaseID, ServiceID, RoleName, Trainer, Comment, Updated_By, Updated_Datetime
非常感谢任何帮助。谢谢!! -Tyler M
答案 0 :(得分:1)
这是因为你的表中有一个与保留字相同的字段(内置函数)
Date
将表格中的字段重命名为
更好的字段DateOfProcedure
并且您的查询将起作用(当然也在编辑您的查询字符串之后)
在Access Debug窗口(Ctrl + G)中,您可以运行
? AccessError(3134)
它会返回
Syntax error in INSERT INTO statement.
当您在调试窗口中输入
时? date
您尝试使用表中字段名称的保留字,导致SQL查询失败。
另外两个提示(可选)
如果这些ID字段中的任何一个是数字,则不必将值括在单引号中(只要整个查询字符串用双引号括起来就可以没有引号)
对于日期/时间字段,您可以使用#符号而不是单引号来包含日期/时间值
答案 1 :(得分:0)
尝试在字段名称周围添加方括号
我确信MS-Access中的 [Date]是一个保留字 - 所以应该将其包装为
strSQL = "INSERT INTO [Procedure] (UserName, [Date],....
答案 2 :(得分:0)
此外,日期/时间字段必须传递正确的值,并且数字值周围没有引号:
strSQL = "INSERT INTO [Procedure] (UserName, [Date], StartTime, EndTime, Semester, FacilityID, Doctor, CaseID, ServiceID, RoleName, Trainer, Comment, Updated_By, Updated_Datetime) VALUES ('username', #12/04/2018#, #01:30 PM#, #02:00 PM#, 'Fall', 4, 'Dr. Who', 'Cataract Extraction with Stent For Glaucoma', 4, 'OS', 'Trainer', 'Comment', 'username', Now());"