Option Explicit
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
Catatan: Dua kode di atas digunakan untuk mengakses database BIBLIO.MDB.
READ MORE - ListBox Load Table - 10 s/d 20 X Lebih Cepat - Tips dan Tric