当前位置:主页>VB教程>

StatusBar显示数据库的属性

来源: 作者: 发布时间:2008-10-22 点击次数:
在编辑数据库的记录时,可以用StatusBar控件通知用户数据库的各种属性,例如正在编辑的表的名称、其创建日期、以及最后一次更新的日期。

  下面的代码用到了如下对象:

字串6

  名为“frmDataviewer”的Form

字串6

  名为“sbrData”的StatusBar控件

字串6

  名为“datData”的Data控件 字串8

  添加显示数据库属性的StatusBar

字串2

  用Add方法创建Panel对象的集合。 字串8

  为每个Panel对象配置AutoSize属性。  

字串3

  用Panel对象的Text属性显示数据库的属性。   字串5

  在PanelClick事件中用SelectCase语句重新设置属性。 字串5

  用Add方法创建Panel对象的集合 字串5

  要在运行时创建Panel对象的集合,需要使用Add方法。首先需要声明一个Panel类型的变量。在添加每个Panel对象时,可以用该变量包含对新创建的对象的引用。下面的代码在Form对象的Load事件中创建了三个Panel对象。 字串6

  PrivateSubForm_Load() 字串7

  DimpnlXAsPanel 字串1

  DimiAsInteger 字串3

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

字串9

  SetpnlX=sbrData.Panels.Add() 字串6

  Nexti 字串4

  EndSub  

字串8

  注意:在向集合中添加了三个Panel对象之后,控件中实际上有四个面板,原因是该控件中已缺省地创建了一个面板。  

字串3

  为每个Panel对象配置AutoSize属性 字串3

  StatusBar控件的一个特性就是面板能够根据自身的内容自动改变大小。下例循环遍历了所有Panel对象,并将每个的AutoSize属性设置为sbrSpring(1)。这样每个面板通过“伸缩”分享该控件的总宽度。  

字串9

  PrivateSubForm_Load() 字串4

  DimpnlXAsPanel

字串2

  DimiAsInteger 字串4

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

字串4

  SetpnlX=sbrData.Panels.Add()

字串5

  Nexti  

字串9

  '改变所有面板的AutoSize。 字串5

  Fori=1to4'<--新代码

字串3

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

字串3

  Nexti'新 字串1

  EndSub
  

字串4

  用Panel对象的Text属性显示数据库的属性 字串5

  要改变所有面板中显示的信息,只需设置该Panel对象的Text属性即可。下面的代码显示了由数据访问对象打开的数据库的有关信息。   字串7

  在Form对象的Load事件中,首先创建两个数据库变量,并分别赋值为打开的数据库(Biblio.mdb)和记录集(Authors)。然后代码将Name、DateCreated、LastUpdated和LockEdit属性的值赋予每个Panel对象的Text属性。  

字串3

  '声明数据库变量。

字串6

  DimmyDBAsDatabase,myRsAsRecordset 字串7

  '将Database设置为BIBLIO.MDB数据库。 字串2

  SetmyDB=DBEngine.Workspaces(0)._ 字串7

  OpenDatabase("BIBLIO.MDB")

字串6

  '将记录集变量设置为Authors表。

字串8

  SetmyRs=_ 字串8

  myDB.OpenRecordset("Publishers",dbOpenTable)

字串6

  '将Text属性设置为记录集属性。

字串7

  sbrData.Panels(1).Text="名称:"&myRs.Name 字串1

  sbrData.Panels(2).Text="创建日期:"&_ 字串6

  myRs.DateCreated 字串5

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

  myRs.LastUpdated 字串9

  sbrData.Panels(4).Text="编辑上锁:"&myRs.LockEdits  

字串9

  在PanelClick事件中用SelectCase语句重新设置属性 字串8

  StatusBar控件还可以用来重新设置正在显示的属性。在上面的应用实例中,DataGrid控件被绑定到Data控件。(关于如何实现控件的数据绑定的详细信息,请参阅《程序员指南》中的“使用VisualBasic标准控件”中的“使用ADO数据控件”)。在该StatusBar显示的属性中,只有LockEdits属性可以被重新设置。要做到这一点,可以在PanelClick事件中使用SelectCase语句,确定单击了哪个Panel对象。PanelClick事件包含有有对被单击的Panel的引用。使用该引用即可重新设置被单击的Panel对象的Text属性。  

字串1

  下面的代码首先创建Recordset类型的变量,并将其设置为由Data控件打开的记录集。SelectCase语句被用来检测Panel对象的Index属性。如果Index为4,则LockEdits属性在-1(True)和0(False)之间切换。最后,使用新的信息更新Panel对象的Text属性。   字串8

  PrivateSubsbrData_PanelClick(ByValPanelAsPanel) 字串5

  DimmyRsAsRecordset'声明Recordset变量。 字串5

  'Data控件的名称为"datData" 字串6

  SetmyRs=datData.Recordset'设置变量。  

字串6

  SelectCasePanel.Index

字串2

  Case1to3

字串4

  '不能设置这些面板。

字串7

  Case4'UpdateablePropertyissettable.

字串5

  '切换该属性。

字串2

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

字串4

  '更新Panel对象的Text属性。 字串2

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

字串2

  &myRs.LockEdits 字串1

  EndSelect

字串3

  EndSub

字串2

-> 字串3