اينو يكي از دوستان عزيز واسم فرستاد اما متاسفانه با هوشي كه من دارم نتونستم تو برنامم استفاده كنم
ممنون ميشم اگه دوستان اين كد رو تبديل به پروژه كنن شايد در اين صورت دوزاريم افتاد
You need to do a few things here:
1. Use a SELECT COUNT() query to return the number of records.
2. Set the .Max property after you get the COUNT()
3. Use a counter variable of Long data type
Code:
Private Sub XPButton1_Click()
Dim lCount As Long
Dim SQL As String
Dim rsMain As ADODB.Recordset
' Assume cn is already Set = New ADODB.Cnnection and opened
Set rsMain = New ADODB.Recordset
SQL = "SELECT COUNT(SomeField) AS MyCount FROM ....."
rsMain.Open SQL, cn, adOpenKeyset, adLockReadOnly
If rsMain!MyCount = 0 Then
rsMain.Close
Set rsMain = Nothing
MsgBox "No Records."
Exit Sub
Else
ProgressBar1.Min = 0
ProgressBar1.Max = rsMain!MyCount
rsMain.Close
lCount = 0
SQL = "SELECT ......"
rsMain.Open SQL, cn, adOpenForwardOnly, adLockReadOnly
Do Until rsMain.EOF
' Your Code to populate the FlexGrid
'
'
lCount = lCount + 1
ProgressBar1.Value = lCount
rsMain.MoveNext
Loop
rsMain.Close
set rsMain = Nothing
End Sub