国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

DataGrid控件的使用四

2019-11-18 17:43:04
字體:
來源:轉載
供稿:網友

    使用Bookmarks和SelBookmarks跟蹤記錄
    Bookmarks和SelBookmarks提供了標記記錄的一種手段。當編寫應用程序中的特定功能(諸如允許最終用戶手工地選擇多個不相鄰的記錄,進行所選記錄的大批更新)時,這就很有必要。在這些情形中,需要標記哪些記錄已被選擇,因此可以使用SelBookmarks集合及其屬性。
    有兩個函數,分別是CellText和CellValue方法,需要標記才能正確執行。

    標記用戶的選擇
    SelBookmarks集合包含所有選定的記錄的書簽。當最終用戶手工選擇記錄時(即在單擊時按住CTRL鍵),每一個選定的記錄的書簽都會加入到該集合中。使用標準的循環,用戶可以知道已經選定了什么,也可以保存書簽(因為可能需要恢復某個值),以及執行操作:
    DimiasInteger'    Nexti

    通過在程序中添加到SelBookmarks集合來選擇記錄
    通過將記錄添加到這個集合,也可以在程序中選定記錄。例如,可能有一個顯示指定的客戶所有訂貨的網格。如果要高亮顯示該客戶花費超過$100的所有記錄,則對記錄進行過濾,并將結果書簽添加到SelBookmarks集合。
    DimrsAsRecordset
    Setrs=Adodc1.Recordset

    WhileNotrs.EOF
      Ifrs!SupplierID=12Then
        DataGrid1.SelBookmarks.Addrs.Bookmark
      EndIf
      rs.MoveNext
    Wend

    顯示計算結果字段
    假設在表中有一個名為"
PRice"的字段,并且想使用本地稅率來計算表中每一項的稅費。這就是一個計算結果字段,可以通過修改DataSource的查詢來計算這個值,并把這個值返回給DataGrid控件。
    要在DataGrid控件中創建一個計算結果字段
    1.確認在機器上已為Northwind數據庫建立了一個OLEDB數據源;如果還沒有創建這樣的一個數據源,請按照“創建Northwind的OLEDBData連接”的步驟操作。
    2.在窗體上放置一個ADOData控件和一個DataGrid控件。
    3.將ADOData控件的ConnectionString屬性設置為Northwind的數據源。
    4.設置ADOData控件的RecordSource屬性。在“屬性”窗口中,單擊“記錄源”并輸入SelectProductName,UnitPrice,(UnitPrice*.082)AsTaxFromProducts。
    5.將DataGrid控件的DataSource屬性設置為這個ADOData控件。
    6.運行該工程。

    與類模塊一起使用DataGrid控件
    如果想要訪問以自定義格式或以ODBC驅動程序不直接支持的格式存放的數據,可以創建一個類來封裝該數據。然后可以編寫該類的自定義函數來檢索這些數據。這樣該類就變成了一種數據源,可以被任何數據使用者(如DataGrid控件)使用。
    在這個類模塊的Initialize事件中,首先通過聲明一個作為New ADODB.Recordset的變量,來創建一個ADODBrecordset對象。在創建了這個recordset對象后,再添加字段,每個數據源中的每個字段都要加入。然后使用合適的數據填充這個記錄集。
    注意也可以使用OLEDB示例提供者來創建一個數據源。關于OLEDB示例提供者的詳細信息,請參閱“創建帶有數據提供方的部件”。
    類模塊有一個GetDataMember事件,只要當數據使用者(諸如DataGrid控件)需要數據時就產生該事件。在這個事件中,Data參數被設置為在Initialize事件中所創建的recordset對象。
    如果要使用這個類模塊,應創建一個具有一個DataGrid控件的窗體。在該窗體的Load事件的代碼中,將該控件的DataSource屬性設置為這個類。
    注意數據類模塊在設計時是不可用的。例如,如果使用DataGrid控件,則當用戶在“屬性”窗口中單擊“數據源”時,所有可用的數據源都會出現在一個下拉列表中。但其中不會有這個數據類模塊,它只能在代碼中設置。

    使用類模塊創建一個數據源
    下面的示例使用一個類模塊來創建一個簡單數據源。然后通過DataSource屬性將DataGrid控件綁定到該模塊。
要創建一個用于DataGrid的類
    1.創建一個新的標準Exe工程。
    2.給窗體添加一個DataGrid控件。如果DataGrid控件不在“工具箱”中,則在“工程”菜單中單擊“部件”,
再單擊“MicrosoftDataGridControl”,然后單擊“確定”。
    3.在“工程”菜單中,單擊“引用”。在“引用”對話框中,單擊“MicrosoftActiveXDataObjects2.0Library”。
    4.在“工程”菜單中,單擊“添加類模塊”來給工程添加一個數據類模塊。
    5.在“工程資源管理器”窗口中,單擊并選定“類”圖標,并按F4鍵顯示“屬性”窗口。
    6.在“屬性”窗口中,將類的名稱更改為NamesData。
    7.在“屬性”窗口中,單擊“DataSourceBehavior”并將該屬性更改為vbDataSource。
    8.在該類模塊的Declarations部分,創建一個ADODBRecordset變量,如下所示:
    OptionExplicit
    PrivateWithEventsrsNamesAsADODB.RecordSet
    使用WithEvents關鍵詞來聲明該變量,使用戶可以對RecordSet對象的事件編程。
    9.在該類的Initialize事件中,添加下述代碼:
    PrivateSubClass_Initialize()
      '將新的數據成員的名稱添加到DataMember集合
      '這使其它對象可以看見這些可用的
      DataMembersDataMembers.Add"Names"

      SetrsNames=NewADODB.RecordSet   '設置對象變量。
      '創建一個具有兩個字段的recordset,并打開該recordset。
      '第一個記錄具有一個整數的數據類型,第二個記錄是一個最大可
      '達256個字符的字符串。CursorType被設置為OpenStatic
      '——一個可更新的對一組記錄的快照。LockType被設置為
      'LockOptimistic,以允許對該recordset進行更新。
      WithrsNames
        .Fields.Append"ID",adInteger
        .Fields.Append"Name",adBSTR,255
        .CursorType=adOpenStatic
        .LockType=adLockOptimistic
        .Open
      EndWith

      DimiAsInteger
      Fori=1to10  '添加十條記錄。
        rsNames.AddNew
        rsNames!ID=i
        rsNames!Name="Name"&i
        rsNames.Update
      Nexti
      rsNames.MoveFirst'移到該記錄集的開始。
    EndSub
    這部分代碼首先創建recordset對象,然后給該對象添加兩個字段。代碼接著給recordset添加十條記錄。
    10.在該類的GetDataMember事件中,添加下述代碼:
    PrivateSubClass_GetDataMember(ByValDataMemberAsString,_
    DataAsObject)
       SetData=rsNames
    EndSub
    只要發生該事件——即當該類對象被綁定到一個數據使用者,如DataGrid控件時,代碼將返回該recordset對象。
    11.在Form對象的代碼模塊中,聲明一個數據類的對象變量:
    OptionExplicit
    PrivatedatNamesAsNamesData'類變量
    12.在Form對象的Load事件的代碼中,將DataGrid控件的DataSource設置為該類對象。
     PrivateSubForm_Load()
       '創建一個新的NamesData對象
       SetdatNames=NewNamesData
       '將這個DataGrid綁定到新的數據源datNames
       SetDataGrid1.DataSource=datNames
     EndSub
    13.按F5鍵運行該工程。

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰坪| 新野县| 宜昌市| 阿瓦提县| 延寿县| 石狮市| 溧水县| 菏泽市| 濮阳市| 焦作市| 大兴区| 丁青县| 龙岩市| 海南省| 抚松县| 巩义市| 新民市| 浑源县| 怀来县| 周至县| 平山县| 亚东县| 确山县| 沙湾县| 赤壁市| 桐庐县| 松江区| 阿克| 泌阳县| 承德县| 遵化市| 喀喇沁旗| 且末县| 原平市| 抚顺市| 突泉县| 广汉市| 长垣县| 嘉善县| 威远县| 泸水县|