VBMAN.ToolsList - List Processing Object
Overview
VBMAN.ToolsList provides utility functions related to list controls and datasets, mainly used to convert database recordsets to collection objects.
Methods
RsToCollection
Convert ADODB.Recordset to cCollection
vb
Public Function RsToCollection(Obj As Variant) As cCollectionParameters:
Obj- ADODB.Recordset object
Returns: cCollection, each element is a Scripting.Dictionary containing one row of data
Description:
- Automatically handles recordset paging
- Each dictionary's key is field name, value is field value
- Dictionary uses TextCompare comparison mode (case insensitive)
Example:
vb
' Query from database
Dim rs As ADODB.Recordset
Set rs = conn.Execute("SELECT * FROM users")
' Convert to collection
Dim coll As cCollection
Set coll = VBMAN.ToolsList.RsToCollection(rs)
' Iterate results
Dim i As Long
For i = 1 To coll.Count
Dim row As Scripting.Dictionary
Set row = coll(i)
Debug.Print "ID: " & row("id")
Debug.Print "Name: " & row("name")
Debug.Print "---"
Next iComprehensive Examples
Example 1: Database Query to Collection
vb
Private Sub LoadUsersToCollection()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb"
Dim rs As ADODB.Recordset
Set rs = conn.Execute("SELECT id, username, email FROM users")
' Convert to collection
Dim users As cCollection
Set users = VBMAN.ToolsList.RsToCollection(rs)
' Use data
Dim user As Scripting.Dictionary
For Each user In users.RawCollection
Debug.Print user("username") & " - " & user("email")
Next
rs.Close
conn.Close
End SubExample 2: Paged Record Processing
vb
Private Sub ProcessPagedData()
Dim rs As ADODB.Recordset
Set rs = conn.Execute("SELECT * FROM large_table")
' Even if recordset has paging, RsToCollection can handle correctly
Dim data As cCollection
Set data = VBMAN.ToolsList.RsToCollection(rs)
Debug.Print "Total " & data.Count & " records"
End SubBest Practices
- Close Recordset in Time: Close Recordset promptly after conversion to release resources
- Field Name Access: Use field names to access dictionary values, code is clearer
- Null Value Handling: Pay attention to Null value handling in database