好.我想使用参数化查询来避免在我的数据中处理嵌入的双引号或单引号(“或”).
举个简单的例子,VBA代码对于参数化的版本是什么样的?
Dim qstr as String Dim possiblyDangerousString as String qstr = "SELECT MyTable.LastName from MyTable WHERE MyTable.LastName = '" & possiblyDangerousString & "';"
我没有从我的代码中剪切和粘贴它(现在在另一个盒子上),所以可能会有拼写错误.
一旦我弄清楚这个简单的例子,我需要转向更复杂的语句(多个参数和连接).
谢谢你的建议
解决方法
在VBA中,您可以使用以下内容:
Dim db As DAO.Database Dim qdf As QueryDef Dim strsql as String Set db = CurrentDb strsql = "PARAMETERS txtLastName Text(150); " _ & "SELECT LastName FROM MyTable " _ & "WHERE LastName=txtLastName" ''Create a temporary query Set qdf = db.CreateQueryDef("",strsql) qdf.Parameters!txtLastName = Trim(possiblyDangerousString)
这个例子用处不大,因为你现在要对查询做些什么呢?请注意,您可以存储参数查询并在VBA中分配参数.另请注意,备注字段会成为问题,因为参数只能接受255个字符.