與復本操作有關的對象、屬性和方法
為了實現復本燥乍,MicrosoftJet數據庫引擎提供了多個對象、屬性和方法。在這一節中,將介紹與復本操作有關的對象、屬性和方法。
1.Document對象和Documents集合
Document對象含有關於對象的一個實例的信息,對象可以是一個數據庫、表、查詢或關系(僅用於MicrosoftJet數據庫)。
每個Container對象有一個包含Document對象的Documents集合(其關系詳見VB的幫助文件),這些Document對象描述由Container指定類型的內置對象的實例。表1列出了Document所描述的對象的類型、其Container對象的名稱及Document包含信息的類型。
Documentcontainer包含的信息
數據庫數據庫保存的數據庫
表或查詢表或查詢保存的表或查詢
關系關系保存的關系
(表1)
用Document對象可以實現下列操作:
·用Name屬性返回由用戶或MicrosoftJet數據庫引擎在建立對象時給對象所取的名字。
·用Container屬性返回包含Document對象的Container對象的名稱。
·用Owner屬性設置或返回對象的擁有者。為了設置owner屬性,用戶必須有對Document對象的寫權限,並且必須把userName屬性設置為一個現有的user或Group對象的名稱。
·用UserName屬性或Permissions屬性設置或返回一個用戶或組對象的訪問權限。為了設置這些屬性,用戶必須有對Document對象的寫權限,並且必須把userName屬性設置為一個現有的User或GrOup對象的名稱。
·用DateCreated屬性和LasUpdated屬性分別返回建立Document對象和最後修改Document對象的日期和時間。
由於一個Document對象對應於一個現有的對象,因此用戶不能建立新的Document對象或者刪除現有的Document對象。一個Documents集合含有多個Document對象。可以通過以下幾種格式引用一個Document對象:
Documents(0)
Documents("Name”)
Documents![name]
2.container對象和Containers集合
Contalner對象把相似類型的Document對象放在一個組中。每個Database對象含有由內部container對象組成的Containers集合。應用程序可以定自己的文檔類型和相應的容器(僅對MicrosoftJet數據庫),但這些對象不一定總是通過DAO支持。某些Container對象由MicrosoftJet數據庫引擎定義,也可以由其它應用程序定義。由MicrosoftJet數據庫引擎定義的Container對象及其所包含的信息見表2
Container對象包含的信息
數據庫保存的數據庫
表保存的表及查詢
關系保存的關系
(表2)
說明:
1.)每個Container對象含有由Document對象組成的Documents集合,通常用Container對象作為到Document對象中信息的直接鏈接,也可以用container集合為給定類型的Document對象設置安全性。
2.)用Container對象可以實現以下操作:
·用Name屬性返回Container對象的預定義名稱。
·用Permissions和UserName屬性來設置container對象的權限;在Container對象的Documents集合中建立Document對象來繼承這些訪問權限設置。
·用owner屬性設置或返回Container對象的所有者。為了設置Ower屬性,必須寫入Container對象的權限,並把屬性設置為現有user或Group對象的名稱。
(3)Container對象是由系統預定的,因此不能建立新的container對象,也不能刪除現有的Container對象。
(4)可以通過順序號或Name屬性設置或引用集合中的container對象,例如:
Containers(0)
Containers(”name”)
Containers![Name]
【例】編寫程序,列出Tables容器中的Documents集合。
在窗體上畫一個命令按鈕,然後編寫如下的事件過程:
PrivateSubCommand1_Click()
DimdbsnorthwindAsDatabase
DimdocloopAsDocument
DimprploopAsProperty
Setdbsnorthwind=OpenDatabase("e:f.mdb")
Withdbsnorthwind.Containers!tables
Debug.Print"documentsin"&.Name&"container"
'列出Table容器中的Documents集合
ForEachdocloopIn.Documents
Debug.Print""&docloop.Name
Nextdocloop
Endwith
dbsnorthwind.close
Endsub
該過程列出f.mdb數據庫Table容器中的Documents集合。程序運行後,單擊命令按鈕,即可在“立即”窗口中列出該集合。->