程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> StatusBar顯示數據庫的屬性

StatusBar顯示數據庫的屬性

編輯:更多關於編程

      在編輯數據庫的記錄時,可以用StatusBar控件通知用戶數據庫的各種屬性,例如正在編輯的表的名稱、其創建日期、以及最後一次更新的日期。

      下面的代碼用到了如下對象:

      名為“frmDataviewer”的Form

      名為“sbrData”的StatusBar控件

      名為“datData”的Data控件

      添加顯示數據庫屬性的StatusBar

      用Add方法創建Panel對象的集合。

      為每個Panel對象配置AutoSize屬性。

      用Panel對象的Text屬性顯示數據庫的屬性。

      在PanelClick事件中用SelectCase語句重新設置屬性。

      用Add方法創建Panel對象的集合

      要在運行時創建Panel對象的集合,需要使用Add方法。首先需要聲明一個Panel類型的變量。在添加每個Panel對象時,可以用該變量包含對新創建的對象的引用。下面的代碼在Form對象的Load事件中創建了三個Panel對象。

      PrivateSubForm_Load()

      DimpnlXAsPanel

      DimiAsInteger

      Fori=1to3'第一個面板已存在。

      SetpnlX=sbrData.Panels.Add()

      Nexti

      EndSub

      注意:在向集合中添加了三個Panel對象之後,控件中實際上有四個面板,原因是該控件中已缺省地創建了一個面板。

      為每個Panel對象配置AutoSize屬性

      StatusBar控件的一個特性就是面板能夠根據自身的內容自動改變大小。下例循環遍歷了所有Panel對象,並將每個的AutoSize屬性設置為sbrSpring(1)。這樣每個面板通過“伸縮”分享該控件的總寬度。

      PrivateSubForm_Load()

      DimpnlXAsPanel

      DimiAsInteger

      Fori=1to3'第一個面板已存在。

      SetpnlX=sbrData.Panels.Add()

      Nexti

      '改變所有面板的AutoSize。

      Fori=1to4'<--新代碼

      sbrData.Panels(i).AutoSize=sbrSpring'新

      Nexti'新

      EndSub

      用Panel對象的Text屬性顯示數據庫的屬性

      要改變所有面板中顯示的信息,只需設置該Panel對象的Text屬性即可。下面的代碼顯示了由數據訪問對象打開的數據庫的有關信息。

      在Form對象的Load事件中,首先創建兩個數據庫變量,並分別賦值為打開的數據庫(Biblio.mdb)和記錄集(Authors)。然後代碼將Name、DateCreated、LastUpdated和LockEdit屬性的值賦予每個Panel對象的Text屬性。

      '聲明數據庫變量。

      DimmyDBAsDatabase,myRsAsRecordset

      '將Database設置為BIBLIO.MDB數據庫。

      SetmyDB=DBEngine.Workspaces(0)._

      OpenDatabase("BIBLIO.MDB")

      '將記錄集變量設置為Authors表。

      SetmyRs=_

      myDB.OpenRecordset("Publishers",dbOpenTable)

      '將Text屬性設置為記錄集屬性。

      sbrData.Panels(1).Text="名稱:"&myRs.Name

      sbrData.Panels(2).Text="創建日期:"&_

      myRs.DateCreated

      sbrData.Panels(3).Text="上一次修改的日期:"&_

      myRs.LastUpdated

      sbrData.Panels(4).Text="編輯上鎖:"&myRs.LockEdits

      在PanelClick事件中用SelectCase語句重新設置屬性

      StatusBar控件還可以用來重新設置正在顯示的屬性。在上面的應用實例中,DataGrid控件被綁定到Data控件。(關於如何實現控件的數據綁定的詳細信息,請參閱《程序員指南》中的“使用VisualBasic標准控件”中的“使用ADO數據控件”)。在該StatusBar顯示的屬性中,只有LockEdits屬性可以被重新設置。要做到這一點,可以在PanelClick事件中使用SelectCase語句,確定單擊了哪個Panel對象。PanelClick事件包含有有對被單擊的Panel的引用。使用該引用即可重新設置被單擊的Panel對象的Text屬性。

      下面的代碼首先創建Recordset類型的變量,並將其設置為由Data控件打開的記錄集。SelectCase語句被用來檢測Panel對象的Index屬性。如果Index為4,則LockEdits屬性在-1(True)和0(False)之間切換。最後,使用新的信息更新Panel對象的Text屬性。

      PrivateSubsbrData_PanelClick(ByValPanelAsPanel)

      DimmyRsAsRecordset'聲明Recordset變量。

      'Data控件的名稱為"datData"

      SetmyRs=datData.Recordset'設置變量。

      SelectCasePanel.Index

      Case1to3

      '不能設置這些面板。

      Case4'UpdateablePropertyissettable.

      '切換該屬性。

      myRs.LockEdits=Abs(myRs.LockEdits)-1

      '更新Panel對象的Text屬性。

      sbrData.Panels(4).Text="LockEdits:"_

      &myRs.LockEdits

      EndSelect

      EndSub

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved