As the term implies, a data source is a readily accessible object that provides data to any data consumer (any class or control that can be bound to a source of external data). In past versions of Visual Basic, data sources included the intrinsic Data control and the RemoteData Control. Visual Basic 6.0 introduces several new data sources that enable you to create rich applications to view and edit data. For example, the Data Environment designer allows you to create hierarchical recordsets, or data from several related tables in a tree-view format. In addition to new data sources, you can create your own data source by setting the class module's DataSourceBehavior property to vbDataSource.
Visual Basic's new richer set of data sources includes:
Visual Basic enables you to create your own data sources. Using new features such as the DataBindingBehavior and DataSourceBehavior properties of the class module, you can encapsulate the methods, properties, and events necessary to create a data source or data consumer that accesses data from any kind of database. For details on creating data sources and data consumers using a data-aware class, see Creating Data-Aware Classes.
In addition to creating data-aware classes, you can also create your own data-aware user controls. Such a control could resemble the new ADO Data Control and be customized to your needs. For a step-by-step example of creating a data-aware user control, see Creating the MyDataControl Project.
The Data Environment is a new feature that allows you to create hierarchical cursors. A hierarchical cursor is a unique structure of parent and child recordsets. In general, a hierarchical cursor mirrors the structure of related tables in a relational database. For example, the Northwind database has a table named "Products" that contains a field named "SupplierID." That field contains unique IDs from the related table named "Suppliers." Using the Data Environment designer, you can create a hierarchical cursor that can be displayed in a control such as the Hierarchical FlexGrid control.
For details about hierarchical cursors, see Hierarchical Cursors and Data Shaping. For details about the DataEnvironment, see About the Data Environment Designer.
Using the ActiveX Data Object Recordset (ADOR) library, you can create ADO recordsets in memory, as shown below:
Private rs As New ADODB.Recordset ' variable for recordset
Private Sub CreateRecordset()
With rs
.Fields.Append "ID", adInteger
.Fields.Append "Item", adBSTR, 255
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open ' No connection object needed.
End With
Dim i As Integer
For i = 1 To 100
rs.AddNew
rs!ID= i
rs!Item = "thing " & i
rs.Update
Next i
rs.MoveFirst
End Sub
Once such a recordset is filled with data, set the DataSource property of a data consumer to the recordset, as shown below:
' myControl is a data-bound user control and rsTempData is a temporary
' recordset created using ADODB, and filled from some data store.
Set myControl.DataSource = rs
For an example of creating ADO recordsets in code, see Creating a Data Source. Another example of creating a recordset and using it as a data source for the DataGrid control can be found in Using the DataGrid Control with a Class Module.