我有一个SQL通过查询,该查询返回了我的表,该表基于"来自... where ='variable'"结构的变量。我想在VBA代码上使用该通行证查询,并从表单中获取变量。在简历中:我将在表单上输入变量,在通过查询中运行VBA代码,并将结果带回同一表单。我该怎么做?
Dim rst As DAO.Recordset
With CurrentDb.QueryDefs("qryPass")
.SQL = "select * from dbo.tblCustomers where City = '" & Me!City & "'"
.ReturnsRecords = True
Set rst = .OpenRecordset
End With
以上将使用当前表格文本框,称为城市。为了防止SQL注入,您可以使用以下方式:
.SQL = "select * from dbo.tblCustomers where City = " & qu(me!City)
,您有一个通用程序,可以用:
围绕该表达式放置报价。Function qu(vText As Variant) As String
qu = Chr$(34) & vText & Chr$(34)
qu = Replace(qu, ";", "")
qu = Replace(qu, "(", "")
qu = Replace(qu, ")", "")
qu = Replace(qu, "=", "")
End Function