对 DAO Recordset 中的字段执行读取和写入操作
时 间:2022-09-24 08:24:23
作 者:杨雪 ID:42182 城市:南京
摘 要:对 DAO Recordset 中的字段执行读取和写入操作
正 文:
读取或将数据写入字段时,实际上是读取或设置 Field对象的 DAO Value 属性。 DAO Value 属性是 Field 对象的默认属性。 因此,可以采用下面任一方法来设置 rstEmployees Recordset中 LastName 字段的 DAO Value 属性。
rstEmployees!LastName.Value = strName rstEmployees!LastName = strName rstEmployees![LastName] = strName
Recordset 对象的基础表可能不允许您修改数据,即使 Recordset 的类型为动态集或表(通常是可更新的)。 检查 Recordset 的 Updatable 属性以确定其数据是否可更改。 如果该属性为 True,则 Recordset 对象可更新。
可更新 Recordset 对象内的个别字段可能不可更新,尝试写入到这些字段会产生运行时错误。 若要确定给定字段是否可更新,请在 Recordset 的 Fields 集合中检查对应 Field 对象的 DataUpdatable 属性。 如果 strQuery 创建的动态集中的所有字段可更新,以下示例将返回 True,否则返回 False。
Function RecordsetUpdatable(strSQL As String) As Boolean Dim dbsNorthwind As DAO.Database Dim rstDynaset As DAO.Recordset Dim intPosition As Integer On Error GoTo ErrorHandler ' 将函数的返回值初始化为True. RecordsetUpdatable = True Set dbsNorthwind = CurrentDb Set rstDynaset = dbsNorthwind.OpenRecordset(strSQL, dbOpenDynaset) ' 如果整个动态集不可更新,则返回 False. If rstDynaset.Updatable = False Then RecordsetUpdatable = False Else ' 如果动态集是可更新的,请检查动态集是可更新的。 ' 如果其中一个字段不可更新,返回假。 For intPosition = 0 To rstDynaset.Fields.Count - 1 If rstDynaset.Fields(intPosition).DataUpdatable = False Then RecordsetUpdatable = False Exit For End If Next intPosition End If rstDynaset.Close dbsNorthwind.Close Set rstDynaset = Nothing Set dbsNorthwind = Nothing Exit Sub ErrorHandler: MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description End Function
添加或更新记录时,任何单一字段可能会对该字段中的数据施加一些条件。 这些条件由一些属性定义。 文本或备注字段上的 DAO AllowZeroLength 属性指明该字段是否将接受零长度字符串 ("")。 DAO Required 属性指明是否必须在字段中输入某个值,或者它是否可改为接受 Null 值。 对于 Recordset 上的 Field 对象,这些属性为只读;其状态由基础表确定。
验证是指确定字段的 DAO Value 属性中输入的数据是否在可接受范围内的过程。 Recordset 上的 Field 对象可能设置了 DAO ValidationRule 和 ValidationText 属性。 DAO ValidationRule 属性只是一个条件表达式,类似于 SQL Where 子句的条件,没有 Where 关键字。 DAO ValidationText 属性是一个字符串,如果您尝试在字段中输入超出 ValidationRule 属性限制的数据,Access 将在错误消息中显示该字符串。 如果在代码中使用 DAO,则可以为要向用户显示的消息使用 DAO ValidationText。
备注
[!注释] DAO ValidationRule 和 ValidationText 属性还存在于 Recordset 级。 这些属性是只读属性,反映在检索当前记录的表上建立的表级验证方案。
Recordset 上的 Field 对象还具有 ValidateOnSet 属性。 如果将 ValidateOnSet 属性设置为 True ,则只要设置字段的 DAO Value 属性,Access 就会检查有效性。 如果将该属性设置为 False (默认值),则仅当更新已完成的记录时,Access 才会检查有效性。
例如,如果要向包含一个大型"备注"或"OLE 对象"字段且设置了 DAO ValidationRule 属性的记录中添加数据,则应该在尝试写入数据之前确定新数据是否违反了有效性规则。 要执行此操作,请将 ValidateOnSet 属性设置为 True 。 如果在将整个记录写入磁盘之前需要等待检查有效性,则尝试向磁盘写入无效记录会浪费时间。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)