利用數(shù)據(jù)訪問對象(DAO),用戶可以從 Visual Basic 中處理數(shù)據(jù)庫的結(jié)構(gòu)和其中所含的數(shù)據(jù)。多數(shù) DAO 對象都對應(yīng)于數(shù)據(jù)庫中能夠看到的對象,例如,TableDef 對象對應(yīng)于 Microsoft Access 表。Field 對象對應(yīng)于表中的字段。
可以對 DAO 對象設(shè)置的屬性大多數(shù)都是 DAO 屬性。這些屬性由 Microsoft Jet 數(shù)據(jù)庫引擎定義并且設(shè)置的方法與任何包含 Jet 數(shù)據(jù)庫引擎的應(yīng)用程序中設(shè)置方法相同。某些可以對 DAO 對象設(shè)置的屬性由 Microsoft Access 定義,Jet 數(shù)據(jù)庫引擎不會自動識別這些屬性。如何設(shè)置 DAO 對象的屬性取決于該屬性是由 Jet 數(shù)據(jù)庫引擎定義還是由 Microsoft Access 定義。
若要設(shè)置由 Jet 數(shù)據(jù)庫引擎定義的屬性,請引用 DAO 層次結(jié)構(gòu)中的對象。實(shí)現(xiàn)這一點(diǎn)的最方便快捷的方法是創(chuàng)建代表需要處理的不同對象的對象變量,并在代碼的后續(xù)步驟中引用該對象變量。例如,以下代碼新建一個(gè) TableDef 對象并設(shè)置其 Name 屬性:
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Set dbs = CurrentDb
Set tdf = dbs.CreateTableDef
tdf.Name = "Contacts"
當(dāng)設(shè)置由 Microsoft Access 定義但應(yīng)用于 DAO 對象的屬性時(shí),Jet 數(shù)據(jù)庫引擎不會將該屬性自動識別為有效的屬性。首次設(shè)置該屬性時(shí),必須創(chuàng)建該屬性并將其追加到應(yīng)用該屬性的對象的 Properties 集合中。當(dāng)該屬性位于 Properties 集合中后,就可以按照與任何其他 DAO 屬性相同的方式設(shè)置它。
如果首次在用戶界面中設(shè)置一個(gè)屬性,該屬性會自動添加到 Properties 集合中,可以按照正常的方式設(shè)置它。
當(dāng)編寫用于設(shè)置由 Microsoft Access 定義的屬性的過程時(shí),應(yīng)該編寫錯(cuò)誤處理代碼以驗(yàn)證正在設(shè)置的屬性在 Properties 集合中是否已經(jīng)存在。有關(guān)詳細(xì)信息,請參閱關(guān)于 CreateProperty 方法的“幫助”主題或單個(gè)屬性的主題。
切記,創(chuàng)建一個(gè)屬性時(shí),在將其追加到 Properties 集合之前必須正確指定其 Type 屬性??梢愿鶕?jù)“幫助”主題“設(shè)置”中各個(gè)屬性的信息來確定 Type 屬性。下表提供了有關(guān)確定 Type 屬性設(shè)置的一些指導(dǎo)。
如果屬性設(shè)置是 |
那么 Type 屬性應(yīng)當(dāng)是 |
字符串 |
dbText |
True/False |
dbBoolean |
整數(shù) |
dbInteger |
下表列出了某些應(yīng)用于 DAO 對象的、Microsoft Access 定義的屬性。
DAO 對象 |
Microsoft Access 定義的屬性 |
Database |
AppTitle、AppIcon、StartupShowDBWindow、StartupShowStatusBar、AllowShortcutMenus、AllowFullMenus、AllowBuiltInToolbars、AllowToolbarChanges、AllowBreakIntoCode、AllowSpecialKeys、Replicable、ReplicationConflictFunction |
SummaryInfo Container |
Title、Subject、Author、Manager、Company、Category、Keywords、Comments、Hyperlink Base (單擊“文件”菜單上的“數(shù)據(jù)庫屬性”,然后參閱“‘?dāng)?shù)據(jù)庫名稱’屬性”對話框的“摘要”選項(xiàng)卡) |
UserDefined Container |
(單擊“文件”菜單上的“數(shù)據(jù)庫屬性”,然后參閱“‘?dāng)?shù)據(jù)庫名稱’屬性”對話框的“摘要”選項(xiàng)卡) |
TableDef |
DatasheetBackColor、DatasheetCellsEffect、DatasheetFontHeight、DatasheetFontItalic、DatasheetFontName、DatasheetFontUnderline、DatasheetFontWeight、DatasheetForeColor、DatasheetGridlinesBehavior、DatasheetGridlinesColor、Description、FrozenColumns、RowHeight、ShowGrid |
QueryDef |
DatasheetBackColor、DatasheetCellsEffect、DatasheetFontHeight、DatasheetFontItalic、DatasheetFontName、DatasheetFontUnderline、DatasheetFontWeight、DatasheetForeColor、DatasheetGridlinesBehavior、DatasheetGridlinesColor、Description、FrozenColumns、LogMessages、MaxRecords、RecordLocks、RowHeight、ShowGrid |
Field |
Caption、ColumnHidden、ColumnOrder、ColumnWidth、DecimalPlaces、Description、Format、InputMask |