Tentu Anda sudah tidak asing lagi dengan potongan kode di bawah:
Do While Recordset.EOF = False ListBox.AddItem Recordset!Field Recordset.MoveNext Loop
Atau kode di bawah ini:
For i = 1 To Recordset.RecordCount ListBox.AddItem Recordset!Field Recordset.MoveNext Next
Kedua kode di atas digunakan untuk mem-populate (mengisi) ListBox atau ComboBox dengan Field dari sebuah database. Kode di atas bisa menjadi 10 s/d 20 kali lebih cepat dengan sedikit memodifikasi kodenya yakni dengan membuat satu variable yang diperlakukan sebagai buffer.
Coba Anda bandingkan dua kode di bawah ini:
Private Sub Command2_Click() Dim L As Long Dim v As Variant Dim t As Double t = GetTickCount Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "SELECT isbn FROM [Title Author] ORDER BY isbn", db, adOpenStatic, adLockOptimistic List1.Clear List1.Visible = False For L = 0 To adoPrimaryRS.RecordCount - 1 List1.AddItem adoPrimaryRS!isbn adoPrimaryRS.MoveNext Next List1.Visible = True Me.Caption = GetTickCount - t & " milliseconds" End Sub
Dengan kode di bawah ini:
Private Sub Command1_Click() Dim L As Long Dim v As Variant Dim t As Double t = GetTickCount Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "SELECT isbn FROM [Title Author] ORDER BY isbn", db, adOpenStatic, adLockOptimistic List1.Clear List1.Visible = False v = adoPrimaryRS.GetRows For L = 0 To adoPrimaryRS.RecordCount - 1 List1.AddItem v(0, L) Next v = Empty List1.Visible = True Me.Caption = GetTickCount - t & " milliseconds" End Sub
Kode di atas itu, asumsinya Anda telah melakukan koneksi terlebih dahulu.
Catatan: Dua kode di atas digunakan untuk mengakses database BIBLIO.MDB.
