我正在构建一个字符串,它将在我的access数据库中执行sql。为了正确引用源代码,我使用allenbrownaudit的一个指南作为模板来保存对主数据库的更改。
以下是当前给我带来麻烦的代码:
' If this was not a new record, save the old values.
If Not bWasNewRecord Then
sSQL = "INSERT INTO " & sAudTmpTable & " ( audType, audDate, audUser, ID, Campus, Building, Room, `Device Type`, Model, Domain, `Serial Tag`, Barcode, HostName, `Custodian Name`, Notes ) " & _
"SELECT 'EditFrom' AS Expr1, Now() AS Expr2, NetworkUserName() AS Expr3, " & sTable & "ID, Campus, Building, Room, `Device Type`, Model, Domain, `Serial Tag`, Barcode, Hostname, `Custodian Name`, Notes " & _
"FROM " & sTable & " WHERE " & sTable & "." & sKeyField & " = " & lngKeyValue & ";"
db.Execute sSQL, dbFailOnError
End If
目前它返回的错误是“参数太少。应该是1“,这让我觉得是where子句和后面的字符串连接导致了它。我的主要问题是,这个问题是语法问题,我只需要转义或在某处添加双引号,还是语句的逻辑问题,以及我试图做的:从条件中选择一个记录,其中更改的记录的id与db中的id匹配?欢迎留言或评论,谢谢您的时间。
1条答案
按热度按时间wgmfuz8q1#
如果您使用的是sql server,您将需要
对于其他RDBMS(可能对于jetdb=access),您需要引号而不是方括号(引号实际上也适用于sql server,我通常只使用方括号。)
…对于区分大小写的RDBMS(如oracle),请引用所有内容(无论如何都不会造成伤害)。。。