ini bagus banget.. saya jg baru tau nih bisa begini.. tapi ada masalah baru.. saya coba gunakan untuk load query yang sangat rumit (walaupun kembalian datanya sekitar 37000 aja kata progressnya sih).. fetch progressnya udah jalan bagus, tapi sebelum event fetchcomplete di trigger.. (artinya kayanya semua data dah keload karena progress kaga jalan lagi), terjadi hang cukup lama (kaya recordsetnya lagi retrieve ulang data untuk kedua kali tapi kali ini tanpa progress) sebelum akhirnya fetchcompletenya jalan.. tau gak, kenapa ya ??
thx. ======================= http://www.fire888.com -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of Lilis Suryani ArjaMaya Sent: Thursday, May 24, 2007 10:01 AM To: [email protected] Subject: Re: [Programmer-VB] progress bar sewaktu load database --> nih solusinya hallo mas, coba manfaatkan event pada ado recordsetnya contohnya spt dibawah ini, ini utk menampilkan data yg ditampung ke datagrid dan progressbar akan terlihat sampai baris data sudah tampil semua di datagrid semoga membantu. tolong kasih tau hasilnya Dim WithEvents rs As ADODB.Recordset Dim rsJumlah As ADODB.Recordset Dim maksimal As Integer Private Sub Command1_Click() Dim sConn As String Dim sSQL As String Screen.MousePointer = vbHourglass DoEvents sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & App.Path & "\DB.mdb;" & _ "Persist Security Info=False" Set rsJumlah = New ADODB.Recordset rsJumlah.CursorLocation = adUseClient rsJumlah.Open "SELECT COUNT('namaField') AS Total FROM namaTabel", sConn maksimal = Val(rsTotal.Fields(0)) sSQL = "SELECT * FROM namatabel" Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Properties("Initial Fetch Size") = 0 rs.Properties("Background Fetch Size") = 1 DoEvents ProgressBar1.Max = maksimal ProgressBar1.Value = 0 rs.Open sSQL, sConn, adOpenKeyset, adLockOptimistic, adAsyncFetch DoEvents End Sub Private Sub rs_FetchProgress(ByVal Progress As Long, _ ByVal MaxProgress As Long, _ adStatus As ADODB.EventStatusEnum, _ ByVal pRecordset As ADODB.Recordset) Me.Caption = Progress ProgressBar1.Value = Progress Label1.Caption = Format((Progress / maksimal) * 100, "###") & "%" If ProgressBar1.Value = MaxProgress Then ProgressBar1.Value = 0 Label1.Caption = "" Set DataGrid1.DataSource = rs Screen.MousePointer = vbDefault End If End Sub salam Lilis Suryani ArjaMaya ____________________________________________________________________________ ________Get the free Yahoo! toolbar and rest assured with the added security of spyware protection. http://new.toolbar.yahoo.com/toolbar/features/norton/index.php Wahana Programmer Groups Links Yahoo! Groups Links
