Excel,VBA:参数化查询

我有一个Excel的VBA函数,从SQL中提取数据,代码如下:

Function GetDCF(vari As String) Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim cn As ADODB.Connection Set cn = New ADODB.Connection Dim strConn As String Dim sql As String strConn = "PROVIDER=SQLOLEDB;DATA SOURCE=xxxxx;INITIAL CATALOG=xxxxx;INTEGRATED SECURITY=sspi;" cn.Open strConn sql = "select * from table1 where COMPANY = '" & Range("A2").Value & "' " rs.Open sql, cn, adOpenDynamic, adLockOptimistic GetDCF = rs.Fields(vari) / 100 cn.Close Set rs = Nothing Set cn = Nothing End Function 

现在一切正常,除了当我有一个公司,如迈克的狗,撇号防止SQL查询工作正常。 我想我会切换到参数化查询。 但是我不确定在这种情况下怎么做?

感谢您的任何build议!

正如我在评论中所提到的,你可以在你的sql查询中使用Replace来转义单引号:

 sql = "select * from table1 where COMPANY = '" & Replace(Range("A2").Value, "'", "''") & "' "