Excel VBA 没有打开记录集

Excel VBA is not opening recordset

我有一个 ADODB 记录集,直到前几天都运行良好。现在一行代码打不开。我已经仔细检查了数据是否可以提取。我应该每次只得到一条记录运行。我还有其他几个记录集可以很好地从同一个工作表中提取数据,并且它们设置为 运行 的方式完全相同,所以我不确定是什么问题。设置如下:

Dim Vals as new adodb.recordset
Dim StrSql as string
Dim MN as string

StrSql = "SELECT DISTINCT [SampleWorksheet].[Price] WHERE [SampleWorksheet].[Model] = '" & MN

If Vals.State = 1 Then Vals.Close
vals.Open strSQL, cnn, adOpenKeyset, adLockOptimistic


Vals.close

我尝试用 set vals = cnn.execute 打开,但记录集拒绝打开。它不会出错,它只是永远循环,因为它在 Do While Not Vals.EOF 内,并且它永远不会到达 EOF,因为它没有打开。连接设置为 运行 针对自身并且在我的所有文件中都能正常工作。

如有任何建议,我们将不胜感激。

可以试试

Dim Vals as adodb.recordset

StrSql = "SELECT DISTINCT Price FROM SampleWorksheet WHERE Model = '" & MN & "'"
Set Vals = cnn.execute(StrSql)