VB6 內建資料感知控件分為基本 (TextBox 等) 與進階三大件:DBGrid (資料網格)、DBList (下拉清單)、DBCombo (下拉編輯框)。本文詳解三者屬性配置、主從聯動邏輯、工具箱引用步驟,並提供完整範例程式碼。
工具箱引用進階控件
- 右鍵工具箱 → 元件
- 勾選 Microsoft Data Bound Grid Control 6.0 (SPx) → 加入 DBGrid
- 勾選 Microsoft Data Bound List Controls 6.0 → 加入 DBList、DBCombo
DBGrid:呈現完整 Recordset
DataSource → 指向 Data 控件 (或 ADO Data Control)
- 自動從 Recordset 產生欄位標題與資料列
- 支援儲存格級編輯、整列選取、程式碼指定
Col/Row
- 行數:
DataGrid.Recordset.RecordCount,列數:DataGrid.Columns.Count
DBList / DBCombo:主從聯動核心屬性
| 屬性 | 說明 |
RowSource | 提供清單項目來源的 Data 控件名稱 |
ListField | RowSource Recordset 中顯示於清單的欄位名 |
SelectedItem | 目前選取項目在 RowSource Recordset 中的書籤 |
完整範例:清單選人 → 文字框顯示完整資料
設計階段設定
Data1:DatabaseName="C:\myfile.mdb", RecordSource="Phone"
DBList1:RowSource=Data1, ListField="姓名"
- 三個
TextBox:DataSource=Data1, DataField 分別為 "姓名"、"電話"、"地址"
關鍵程式碼:DBList1_Click
Private Sub DBList1_Click()
' 將 Data1 Recordset 定位到清單選取項目的書籤
Data1.Recordset.Bookmark = DBList1.SelectedItem
End Sub
原理:SelectedItem 非顯示文字,而是該筆記錄的 Bookmark。指派給 Data1.Recordset.Bookmark 即可同步移動主 Recordset 游標,進而透過資料繫結自動更新三個 TextBox。
DBCombo 差異補充
DBCombo 結合編輯框與下拉清單,使用者可輸入不在清單的值。
- 屬性機制與
DBList 相同,額外支援 Text 屬性取得/設定編輯框內容。
常見問題排查