ADO Data 控件

ADO Data 控件与内部 Data 控件以及 Remote Data控件 (RDC) 相似。ADO Data 控件使您能使用 Microsoft ActiveX Data Objects (ADO) 快速地创建一个到数据库的连接。

说明

在设计时，您可以通过首先将 ConnectionString 属性设置为一个有效的连接字符串，然后将 RecordSource 属性设置为一个适合于数据库管理者的语句来创建一个连接。您也可以将 ConnectionString 属性设置为定义连接的文件名。该文件是由“数据链接”对话框产生的，当您单击“属性”窗口中的 ConnectionString，然后单击“生成”或“选择”时，该对话框出现。

您可以通过将 DataSource 属性设置为 ADO Data 控件，把 ADO Data 控件连接到一个数据绑定的控件，例如 DataGrid、DataCombo、或 DataList 控件。

在运行时，您可以动态地设置 ConnectionString 和 RecordSource 属性来更改数据库。或者，您可以将 Recordset 属性直接设置为一个原先已经打开的记录集。


Topic Not Found

未找到该主题

未找到相匹配的主题。可能的原因和解决方法如下：

  • 包含目标主题的文件 (.chm) 没有位于指定的位置。

    解决方法：重新运行 MSDN Library的安装。

  • 包含当前主题或目标主题的文件 (.chm) 已经过时，并且链接不再有效。

    解决方法：安装最新版本的 MSDN Library。

  • MSDN Library CD 不在 CD-ROM 中。

    解决方法：将 MSDN Library CD 装入 CD-ROM 中。


ADO Data 控件的常数

Appearance 常数

常数 | 值 | 描述
AdFlatBevel | 0 | 水平斜面
ad3Dbevel | 1 | 3D 斜面

BOFAction 常数

常数 | 值 | 描述
AdDoMoveFirst | 0 | 移动到第一条记录
AdStayBOF | 1 | 保持在开始位置

CommandType 常数

常数 | 值 | 描述
AdCmdText | 1 | 文本
AdCmdTable | 2 | 表
AdCmdStoredProc | 4 | 存储过程
AdCmdUnknown | 8 | 未知

Mode 常数

常数 | 值 | 描述
AdModeUnknown | 0 | 未知
AdModeRead | 1 | 读
AdModeWrite | 2 | 写
AdModeReadWrite | 3 | 读/写
AdModeShareDenyRead | 4 | 拒绝读
AdModeShareDenyWrite | 8 | 拒绝写
AdModeShareExclusive | 12 | 独占
AdModeShareDenyNone | 16 | 全部接受

ConnectionString 常数

常数 | 值 | 描述
AdConnectStringTypeUnknown | 0 | 未知
AdOLEDB | 1 | OLEDB 连接字符串。
AdOLEDBFile | 2 | 使用 OLEDB 文件。
AdODBC | 3 | 使用 ODBC。

CursorLocation 常数

常数 | 值 | 描述
AdUseServer | 2 | 使用服务器游标
AdUseClient | 3 | 使用客户批处理游标

CursorType 常数

常数 | 值 | 描述
AdOpenKeyset | 1 | 键集光标
AdOpenDynamic | 2 | 动态光标
AdOpenStatic | 3 | 静态光标

注意 ForwardOnly 光标在 ADO Data 控件中是不可用的。

EOFAction 常数

常数 | 值 | 描述
AdDoMoveLast | 0 | 移动到最后一条记录
AdStayEOF | 1 | 保持在文件的结尾位置
AdDoAddNew | 2 | 添加一条新记录

EventReason 常数

常数 | 值 | 描述
AdRsnAddNew | 1 | 要添加的新记录。
AdRsnDelete | 2 | 被删除的记录。
AdRsnUpdate | 3 | 要被更新的记录。
AdRsnUndoUpdate | 4 | 撤消更新。
AdRsnUndoAddNew | 5 | 撤消添加新记录。
AdRsnUndoDelete | 6 | 撤消删除。
AdRsnRequery | 7 | 重新查询。
AdRsnResynch | 8 | 重新同步。
AdRsnClose | 9 | 关闭
AdRsnMove | 10 | 移动

EventStatus 常数

常数 | 值 | 描述
AdStatusOK | 1 | 确定
AdStatusErrorsOccurred | 2 | 发生错误。
AdStatusCantDeny | 3 |
AdStatusCancel | 4 | 取消
AdStatusUnwantedEvent | 5 |

LockType 常数

常数 | 值 | 描述
AdLockUnspecified | -1 | 未指定的锁定类型
AdLockReadOnly | 1 | 只读的锁定类型
AdLockPessimistic | 2 | 保守式锁定类型
AdLockOptimistic | 3 | 开放式锁定类型
AdLockBatchOptimistic | 4 | 批处理开放式锁定类型

Orientation 常数

常数 | 值 | 描述
AdHorizontal | 0 | 水平方向
AdVertical | 1 | 垂直方向


Error 事件（ADO Data 控件）

只有在没有执行任何 Visual Basic 代码而发生了一个数据访问错误的情况下，才会发生这个事件。

语法

object_Error([Index As Integer,] ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)

Error 事件的语法包括下面这些部分：

部分 | 描述
Object | 一个对象表达式，其值为“应用于”列表中的一个对象。
Index | 如果控件在一个控件数组中，此值可以标识该控件。
ErrorNumber | 本地错误号码。
Description | 对错误的描述。
Scode | 服务器返回的错误代码。
Source | 错误的来源。
HelpFile | 包含该错误详细信息的帮助文件的路径。
HelpContext | 帮助主题的上下文号码。
fCancelDisplay | 一个布尔值，可以设置这个值来取消对错误消息的显示。如“设置值”中所描述的。

设置值

fCancelDisplay 的设置值为：

常数 | 值 | 描述
False | 0 | 继续。
True | -1 | （缺省）显示错误消息。

说明

无论何时，只要某个不是由 Visual Basic 引起的错误中止了一个操作，就会发生 Error 事件。错误可以分为两类：由 ADO 产生的错误和一般性错误（例如，内存不足错误）。如果错误的原因是 ADO，则 ADO Data 控件就会在描述字符串中添加与上下文相关的文本。


UpdateControls 方法（ADO Data 控件）

从控件的 ADO Recordset 对象中获取当前行，并在绑定到此控件的控件中显示相应的数据。

语法

object.UpdateControls

object 所在处表示一个对象表达式，其值为“应用于”列表中的一个对象。

说明

使用这个方法将绑定控件的内容恢复为其初始值，如同用户更改了数据，然后又决定取消了这些更改。

除了不会导致任何事件的发生之外，这个方法产生的效果与使当前行再次成为当前行一样。由于此方法不会调用任何事件，您可以使用这个方法来简化一个更新操作，因为它不会触发任何多余的验证和更改事件过程。


Password 属性（ADO Data 控件）

设置 ADO Recordset 对象创建过程中所使用的口令。

语法

object.Password [= string]

部分 | 描述
object | 一个对象表达式，其值为“应用于”列表中的一个对象。
string | 为在 UserName 属性中命名的用户设置口令。

说明

该属性设置值是只写的，它只能在代码中提供，而不能从 Password 属性中读出。


Recordset 属性（ADO Data 控件）

返回或设置对下一级 ADO Recordset 对象的引用。

语法

object.Recordset [= recordset]

Recordset 属性的语法包括下面这些部分：

部分 | 描述
object | 一个对象表达式，其值为“应用于”列表中的一个对象。
recordset | 一个记录集对象。

说明

利用 Recordset 属性，可以使用 ADO 的 ADODB.Recordset 对象 的方法、属性、和事件。

您必须在 Set 语句中使用 Recordset 属性，如下例所示：

Dim rsNwind As New ADODB.Recordset
' 此处没有显示用于打开此 ADO Recordset 对象的代码。
Set ADODC1.Recordset = rsNwind

如果要对 Recordset 对象的事件进行编程，请使用 WithEvents 关键字声明一个对象变量，如下例所示。

Option Explicit
Dim WithEvents rsNames As ADODB.Recordset

Private Sub Form_Load()
   Set rsNames = New ADODB.Recordset
   ' 此处没有显示用于创建此记录集的代码。
   rsNames.MoveFirst ' 移动到记录集的开始位置。

   Set ADODC1.Recordset = rsNames

   With Text1
      Set .DataSource = ADODC1
      .DataField = "Name"
   End With
End Sub

Private Sub rsNames_FieldChangeComplete(ByVal cFields As Long, _
ByVal Fields As Variant, ByVal pError As ADODB.Error, adStatus As _
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
   Debug.Print "New Name", pRecordset!Name
End Sub


RecordSource 属性（ADO Data 控件）

返回或设置语句或返回一个记录集的查询。

语法

object.RecordSource [= value ]

RecordSource 属性的语法包括下述部分：

部分 | 描述
Object | 一个对象表达式，其值为“应用于”列表中的一个对象。
Value | 一个字符串表达式，它指定了一个记录源，如“设置值”中所描述的。

设置值

value 的设置值为：

设置值 | 描述
表名称 | 一个数据库表的名称。
SQL 查询 | 一个有效的 SQL 字符串，该字符串使用了适合于数据源的语法。


UserName 属性（ADO Data 控件）

返回或设置一个值，该值代表了 ADO Recordset 对象的一个用户。

语法

object.UserName [= value]

UserName 属性的语法包括下面这些部分：

部分 | 描述
object | 一个对象表达式，其值为“应用于”列表中的一个对象。
value | 一个字符串表达式，其中包含了一个用户名，如“设置值”中所描述的。

设置值

用户名的语法取决于数据源。

说明

如果 UserName 和 Password 都已提供，则控件会使用这些值来创建一个连接字符串（ConnectionString 属性）。