您需要使用可以添加参数的ADODB.Command对象。这基本上就是这样的Sub adotest() Dim Cn As ADODB.Connection Dim Cm As ADODB.Command Dim Pm As ADODB.Parameter Dim Rs as ADODB.Recordset Set Cn = New ADODB.Connection Cn.Open "mystring" Set Cm = New ADODB.Command With Cm .ActiveConnection = Cn .CommandText = "SELECT * FROM table WHERE parentid=?;" .CommandType = adCmdText Set Pm = .CreateParameter("parentid", adNumeric, adParamInput) Pm.Value = 1 .Parameters.Append Pm Set Rs = .Execute End WithEnd SubCommandText中的问号是参数的占位符。我相信,但我不是肯定的,你追加参数的顺序必须与问号的顺序相匹配(当你有多个时)。不要被愚弄,参数被命名为“parentid”,因为我不认为ADO关心除了识别之外的名称。