作者:多米音乐_34249295 | 来源:互联网 | 2023-05-20 13:36
我有一个程序应该从SQL数据库读取数据并向Excel报告。它可以在32位计算机上按预期工作,但是由于我移至64位工作环境,因此程序无法运行。这是我的代码示例(返回的第一个错误):
Private Sub SearchBox_Change()
ResultBox.Clear
Call CompileQuery
'If the query is empty
If SearchBox.Value = "" Then
NumShowingLabel = "Showing 0 of 0 Results"
ResultBox.Clear
GoTo noSearch
End If
'Open a new query with varQuery
With varRecordset
.ActiveCOnnection= varConnection
.Open varQuery
End With
'Set NumShowingLabel
If varRecordset.RecordCount > varMaxResults Then
NumShowingLabel = "Showing 60 of " & varRecordset.RecordCount & " Results"
Else
NumShowingLabel = "Showing " & varRecordset.RecordCount & " of " & varRecordset.RecordCount & " Results"
End If
'As long as there is a record, move to the first one
If Not varRecordset.RecordCount = 0 Then varRecordset.MoveFirst
'Add each record to ResultBox
If varRecordset.RecordCount > varMaxResults Then
For varTempInt = 1 To varMaxResults
ResultBox.AddItem varRecordset.Fields("FileName").Value
varRecordset.MoveNext
Next
Else
For varTempInt = 1 To varRecordset.RecordCount
ResultBox.AddItem varRecordset.Fields("FileName").Value
varRecordset.MoveNext
Next
End If
'Release varRecordSet
varRecordset.Close
noSearch:
End Sub
当运行时,Excel返回错误“类型不匹配”和亮点.RecordCount
的For varTempInt = 1 To varRecordset.RecordCount
(最后一个for循环的样品中)。我已安装Windows支持文章983246建议的修补程序,至少据我所知。我将其安装到C:目录并重新启动了计算机,但仍然无法正常工作。
编辑1:只是想澄清一下,我以前使用的是ADO 2.5 NOT ADO 6.1
TL; DR:如何RecordSet.RecordCount
在运行Excel 2010的64位计算机上修复“类型不匹配”错误?
1> dfresh22..:
此问题实际上是由早期Excel中的错误引起的。那里有一个修复程序。HotFix
我在office 16上开发了一些宏,但是当我在以前的版本上执行UAT时,它失败了,对此的快速简便解决方案只是强制转换RecordCount
rst = SomeRecordset
dim rstCount as Long
rstCount = CLng(rst.RecordCount)