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




Kirim email ke