我想在excel中使用vba获取记录集中的记录总数,我在代码下面使用但它没有运行。也许帮助我!
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.ActiveWorkbook.Path & "\infodb.mdb"
cn.Open strConnection
strSql = "SELECt * FROM tbl_hoze"
Set rs = cn.Execute(strSql)
rs.MoveLast
MsgBox rs.RecordCount
答案 0 :(得分:0)
假设您的SQL语句已成功执行并且您获得了记录集,我将获取数组中的行并使用该数组执行我想要的任何操作。 RecordCount函数有时会失败,这经常发生在我身上。
此外,在您想要打印记录数之前,我不知道您为什么使用rs.MoveLast。删除它或将其移动到msgbox行之后,看看会发生什么。简而言之,你会这样做:
=DCount("*", "qry_members")
答案 1 :(得分:0)
每当我使用SQL Server数据库(而不是使用Access)时,我都会遇到这个问题。所以我已经设计出了这个能够为你提供SQL Server Recordset行数的快速函数。
Private Function GetSQLRecordCount(rs As Recordset) As Integer
Dim retVal As Integer: retVal = 0
On Error GoTo NOROWSRETURNED
Dim counterArray() As Variant: counterArray = rs.GetRows()
retVal = UBound(counterArray, 2) - LBound(counterArray, 2) + 1
On Error GoTo 0
GetSQLRecordCount = retVal
Exit Function
NOROWSRETURNED:
retVal = 0
GetSQLRecordCount = retVal
End Function
我最近经常使用它,而且它非常稳固。