国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

StatusBar顯示數(shù)據(jù)庫的屬性

2004-02-13 eNet&Ciweek

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

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

  名為“frmDataviewer”的 Form

  名為“sbrData”的 StatusBar 控件

  名為“datData”的 Data 控件

  添加顯示數(shù)據(jù)庫屬性的 StatusBar

  用 Add 方法創(chuàng)建 Panel 對象的集合。

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

  用 Panel 對象的 Text 屬性顯示數(shù)據(jù)庫的屬性?! ?

  在 PanelClick 事件中用 Select Case 語句重新設(shè)置屬性。

  用 Add 方法創(chuàng)建 Panel 對象的集合

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

  Private Sub Form_Load()

  Dim pnlX As Panel

  Dim i As Integer

  For i = 1 to 3 '第一個面板已存在。

  Set pnlX = sbrData.Panels.Add()

  Next i

  End Sub  

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

  為每個 Panel 對象配置 AutoSize 屬性

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

  Private Sub Form_Load()

  Dim pnlX As Panel

  Dim i As Integer

  For i = 1 to 3 '第一個面板已存在。

  Set pnlX = sbrData.Panels.Add()

  Next i  

  '改變所有面板的 AutoSize。

  For i = 1 to 4 ' < -- 新代碼

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

  Next i '新

  End Sub
  

  用 Panel 對象的 Text 屬性顯示數(shù)據(jù)庫的屬性

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

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

  '聲明數(shù)據(jù)庫變量。

  Dim myDB As Database, myRs As Recordset

  '將 Database 設(shè)置為 BIBLIO.MDB 數(shù)據(jù)庫。

  Set myDB = DBEngine.Workspaces(0). _

  OpenDatabase("BIBLIO.MDB")

  '將記錄集變量設(shè)置為 Authors 表。

  Set myRs = _

  myDB.OpenRecordset("Publishers", dbOpenTable)

  '將 Text 屬性設(shè)置為記錄集屬性。

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

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

  myRs.DateCreated

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

  myRs.LastUpdated

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

  在 PanelClick 事件中用 Select Case 語句重新設(shè)置屬性

  StatusBar 控件還可以用來重新設(shè)置正在顯示的屬性。在上面的應(yīng)用實例中,DataGrid 控件被綁定到 Data 控件。(關(guān)于如何實現(xiàn)控件的數(shù)據(jù)綁定的詳細信息,請參閱《程序員指南》中的“使用 Visual Basic 標準控件”中的“使用 ADO 數(shù)據(jù)控件”)。在該 StatusBar 顯示的屬性中,只有 LockEdits 屬性可以被重新設(shè)置。要做到這一點,可以在 PanelClick 事件中使用 Select Case 語句,確定單擊了哪個 Panel 對象。PanelClick 事件包含有有對被單擊的 Panel 的引用。使用該引用即可重新設(shè)置被單擊的 Panel 對象的 Text 屬性?! ?

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

  Private Sub sbrData_PanelClick(ByVal Panel As Panel)

  Dim myRs As Recordset '聲明 Recordset 變量。

  'Data 控件的名稱為 "datData"

  Set myRs = datData.Recordset '設(shè)置變量?! ?

  Select Case Panel.Index

  Case 1 to 3

  '不能設(shè)置這些面板。

  Case 4 ' Updateable Property is settable.

  '切換該屬性。

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

  '更新 Panel 對象的 Text 屬性。

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

  & myRs.LockEdits

  End Select

  End Sub

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com