[英]Access VBA SQL Run-time error '3075' Syntax error
I'm trying to run this code but it gives me the error message: 我正在尝试运行此代码,但它给了我错误消息:
Run-time error '3075';
运行时错误'3075'; "Syntax error(missing operator) in query expression"
“查询表达式中的语法错误(缺少运算符)”
How should I fix this error? 我该如何解决该错误?
I would like insert CellNumber that is in table1 but not in Variable table into ERROR table with DateTime , string, and CellNumber 我想插入CellNumber即表1中而不是在变量表与日期时间 ,字符串和CellNumber 错误表
Dim sqlstr As String
sqlstr = "SELECT CellNumber FROM table1 WHERE CellNumber NOT IN (SELECT CellNumber FROM Variable)"
DoCmd.RunSQL "INSERT INTO ERROR ([DateTime], RowNum, Error) SELECT Now(), 'string' as RowNum, CellNumber FROM(" & sqlstr & ")"
Dim sqlstr As String
sqlstr = "INSERT INTO Error ( [DateTime],RowNum, Error ) " & _
"SELECT Now() , 'String' , table1.cellnumber FROM table1 " & _
"LEFT JOIN Variable ON table1.cellnumber = Variable.cellnumber " & _
"WHERE Variable.cellnumber Is Null"
currentdb.execute sqlstr, dbfailonerror
That's how I would do it 我就是那样做的
Edit------ I would like to add for posterity a few comments: 编辑------我想在后代添加一些评论:
Now()
and omit it from my sql altogether...All new records would get time-stamped with less room for error. Now()
,并从我的sql中完全省略它...所有新记录都将带有时间戳,错误空间更少。 Dim sqlstr As String sqlstr = "INSERT INTO tblError ( StringField, CellNumber ) " & _ "SELECT 'String' , table1.cellnumber FROM table1 " & _ "LEFT JOIN table2 ON table1.cellnumber = table2.cellnumber " & _ "WHERE table2.cellnumber Is Null" currentdb.execute sqlstr, dbfailonerror
DateTime
, Error
, or Variable
as a table or field name, because even if access can deal with it (by delimiting reserved names [DateTime]
, for Instance), it can be confusing and misleading when trying to troubleshoot your code and sql. DateTime
, Error
或Variable
用作表或字段名称,因为即使访问可以处理它(通过分隔实例的保留名称[DateTime]
),在尝试对代码进行故障排除时也可能会造成混淆和误导和SQL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.