利用 ActiveX 数据对象 (ADO) ,用户可以从 Visual Basic 中处理数据库的结构和其中包含的数据。多数 ADO 对象都对应于数据库中能够看到的对象,例如,Table 对象对应于 Microsoft Access 表。Field 对象对应于表中的字段。
可以对 ADO 对象设置的属性中大多数都是 ADO 属性。这些属性由 Microsoft Jet 数据库引擎定义并且设置的方法与任何包含 Jet 数据库引擎的应用程序中设置方法相同。某些可以对 ADO 对象设置的属性由 Microsoft Access 定义,Jet 数据库引擎不会自动识别这些属性。如何设置 ADO 对象的属性取决于该属性是由 Jet 数据库引擎定义还是由 Microsoft Access 定义。
若要设置由 Jet 数据库引擎定义的属性,请引用 ADO 层次结构中的对象。实现这一点的最方便快捷的方法是创建代表需要处理的不同对象的对象变量,并在代码的后续步骤中引用该对象变量。例如,以下代码新建一个 TableDef 对象并设置其 Name 属性:
Dim tbl As New ADOX.Table
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection
tbl.Name = "Contacts"
当设置由 Microsoft Access 定义但应用于 ADO 对象的属性时,Jet 数据库引擎不会将该属性自动识别为有效的属性。首次设置该属性时,必须创建该属性并将其追加到应用该属性的对象的 Properties 集合中。当该属性位于 Properties 集合中后,就可以按照与任何 ADO 属性相同的方式设置它。
如果首次在用户界面中设置一个属性,该属性会自动添加到 Properties 集合中,可以按照正常的方式设置它。
当编写用于设置由 Microsoft Access 定义的属性的过程时,应该编写错误处理代码以验证正在设置的属性在 Properties 集合中是否已经存在。有关详细信息,请参阅有关 Add 方法或单个属性主题的“帮助”主题。
切记,创建一个属性时,在将其追加到 Properties 集合之前必须正确指定其 Type 属性。可以根据“帮助”主题“设置”中各个属性的信息来确定 Type 属性。下表提供了有关确定 Type 属性设置的一些指导。
如果属性设置是 |
那么 Type 属性应当是 |
字符串 |
adLongVarWChar 或 adVarWChar |
True/False |
adBoolean |
整数 |
adInteger |
下表列出了某些应用于 ADO 对象的、Microsoft Access 定义的属性。
ADO 对象 |
Microsoft Access 定义的属性 |
Connection |
AppTitle、AppIcon、StartupShowDBWindow、StartupShowStatusBar、AllowShortcutMenus、AllowFullMenus、AllowBuiltInToolbars、AllowToolbarChanges、AllowBreakIntoCode、AllowSpecialKeys、Replicable、ReplicationConflictFunction |
Table |
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 |