با استفاده از کد آزمایشی زیر تونستم شماش درست رو انجام بدمPrivate Sub cmdRecordCount_Click()
On Error GoTo Catch
Dim strSql As String
Dim objRst1 As ADODB.Recordset
Dim objRst2 As ADODB.Recordset
Dim objRst3 As ADODB.Recordset
Dim objRst4 As ADODB.Recordset
Call ConnectToServer1
'' Get all categories from local Northwind database.
strSql = "SELECT * FROM dbo.tblSepordeh WHERE NumHesab=47100 "
'' In code below, because we didn't specify cursor location, it's server-side by default.
'' Returns -1
Set objRst1 = New ADODB.Recordset
objRst1.Open strSql, cn, adOpenForwardOnly
'' Returns -1
Set objRst2 = New ADODB.Recordset
objRst2.Open strSql, cn, adOpenDynamic
'' Returns valid count
Set objRst3 = New ADODB.Recordset
objRst3.Open strSql, cn, adOpenKeyset
'' Returns valid count
Set objRst4 = New ADODB.Recordset
objRst4.Open strSql, cn, adOpenStatic
'' Display the number of records in Immediate window.
MsgBox "objRst1 (adOpenForwardOnly) record count: " & objRst1.RecordCount
MsgBox "objRst2 (adOpenDynamic) record count: " & objRst2.RecordCount
MsgBox "objRst3 (adOpenKeyset) record count: " & objRst3.RecordCount
MsgBox "objRst4 (adOpenStatic) record count: " & objRst4.RecordCount
'' Clean up
objRst1.Close
objRst2.Close
objRst3.Close
objRst4.Close
Set objRst1 = Nothing
Set objRst2 = Nothing
Set objRst3 = Nothing
Set objRst4 = Nothing
Exit Sub
Catch:
MsgBox "cmdRecordCount_Click()" & vbCrLf & vbCrLf _
& "Error#: " & err.number & vbCrLf & vbCrLf & err.Description
End Sub
البته ظاهرا باید از adOpenKeyset یا adOpenStatic استفاده کنم تا شمارش دقیقی از خواسته من نشان بدهد
راستی این کد ها به نست کد شما خلاصه و در یک خط آمده و برخی خصوصیات حذف شده است.
ممنون میشم در این مورد هم راهنمایی بفرمایید مثل گذشته که راهنمایی خوبی بوده اید استاد.