VB編程中網(wǎng)格控件的選用及使用方法
(作者未知) 2010/5/24
(接上頁)Comp.FixedAlignment(GrdHardComp.Col) = 2 GrdHardComp.Text = "構成機器區(qū)分"① … … 在數(shù)據(jù)向Grid中寫入或取出時,為了便于大量的數(shù)據(jù)同時,簡便地寫入與修改,可以定義一個類型。如下: Type M_Hard Number As String OrderNum As String MachKind As String MachKindName As String … … End Type (其中Number等均為要輸入的圖示條目) Private Hards() As M_Hard Hards(),此時就作為數(shù)據(jù)的傳輸變量,進行Grid與TextBox之間的數(shù)據(jù)傳輸。 數(shù)據(jù)向類內(nèi)寫入: If HardComp.RecordCount ﹥ 0 Then HardComp.MoveFirst Do Until HardComp.EOF ReDim Preserve Hards(H%)// H%為記數(shù)變量。 Hards(H%).OrderNum = HardComp![ OrderNum]//輸入編號 Hards(H%).MachKind = HardComp![ MachKind]//種類 Hards(H%).MachKindName = HardComp![ MachKindName]//分類名 Hards(H%).MachName = HardComp![ MachName]//名稱 … … loop HardComp.MoveFirst 類內(nèi)數(shù)據(jù)向Grid內(nèi)寫入: GrdHardComp.Row = H% + 1//記錄數(shù)統(tǒng)計 GrdHardComp.Col = 0 GrdHardComp.Text = " " & Hards(H%).OrderNum GrdHardComp.Col = 1 GrdHardComp.Text = " " & Hards(H%).MachKind GrdHardComp.Col = 2 GrdHardComp.Text = " " & Hards(H%).MachKindName GrdHardComp.Col = 3 GrdHardComp.Text = " " & Hards(H%).MachName GrdHardComp.Col = 4 … … GrdHardComp.Text = " " & Hards(H%).HardLastDate GrdHardComp.Rows = GrdHardComp.Rows + 1//行數(shù)加1 HardComp.MoveNext H% = H% + 1 當然,如果使數(shù)據(jù)真正寫入數(shù)據(jù)庫,還需進行數(shù)據(jù)庫的讀寫操作。Grid只是提供了一個預覽的功能,便于數(shù)據(jù)的修改。 由以上Grid的特點及其使用方法可以看出,在需要對數(shù)據(jù)庫進行大量數(shù)據(jù)的操作時,為了減少對數(shù)據(jù)庫的直接操作,提高數(shù)據(jù)庫的安全性,使用Grid控件,還是有很大方便的。 Grid是VB在早期版本中就帶有的控件,使用簡便,穩(wěn)定性好,在早期的VB開發(fā)過程中,使用尤其廣泛。但現(xiàn)在與其它控件比較起來功能有些不足。 DBGrid控件: DBGrid是專用來操作數(shù)據(jù)庫的網(wǎng)格控件,可以綁定到Data控件,幾乎不用寫代碼就可方便地對數(shù)據(jù)進行顯示,增加、刪除或修改記錄,DBGrid具有OnAddNew、BeforeDelete等事件,可在增加新記錄或刪除修改時對數(shù)據(jù)進行有效性檢驗,來實現(xiàn)事務處理功能。DBGrid也可以在設計時編輯網(wǎng)格格式,指定顯示字段等,由于它提供了Column、Split、SelBookmarks等對象,更增強了顯示和操作數(shù)據(jù)的能力。 下面是筆者所參與開發(fā)的東京社會調查研究所的項目--《健康診斷系統(tǒng)》的一個實例。 圖中的Data4控件把數(shù)據(jù)庫和DBGrid直接連起來,DBGrid的題目,項目設置可以在屬性窗口里直接做到。在使用時,要注意新數(shù)據(jù)是先更新數(shù)據(jù)庫,然后才回寫到DBGrid里。方法如下: Sql = "SELECT * FROM 表名" //SQL語句 Set Data4.Recordset = MyDB2.OpenRecordset(sSql, dbOpenSnapshot) Data4.Refresh 或: DatMonthPlan.RecordSource = "SELECT * FROM 表名WHERE (((關鍵字)=’" & Key & "’)); 如果想對DBGrid中的某個條目進行復制,方法(未完,下一頁)
|
|
|