步骤 4:操作数据(ADO 教程)

您所在的步骤...

?连接数据源。

 

?可选择创建表示 SQL 查询命令的对象。

 

?可选择在 SQL 命令中将值指定为变量参数。

 

?执行命令。如果命令以行返回,将行存储在存储对象中。

 

?可选择对数据进行定位、检查、操作和编辑。

 

?适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务处理中嵌入更新数据。

 

?在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。

讨论

大量 Recordset 对象方法和属性可用于对 Recordset 数据行进行检查、定位以及操作。

Recordset 可看作行数组,在任意给定时间可进行测试和操作的行为“当前行”,在 Recordset 中的位置为“当前行位置”。每次移动到另一行时,该行将成为新的当前行。

有多种方法可在 Recordset 中显式移动或“定位”(Move 方法)。一些方法(Find 方法)在其操作的附加效果中也能够做到。此外,设置某个属性(Bookmark 属性)同样可以更改行的位置。

Filter 属性用于控制可访问的行(即这些行是“可见的”)。Sort 属性用于控制所定位的 Recordset 行中的顺序。

Recordset 有一个 Fields 集合,它是在行中代表每个字段或列的 Field 集,可从 Field 对象的 Value 属性中为字段赋值或检索数据。作为选项,可访问大量字段数据(GetRows Update 方法)。

在本教程中,您将要:

?假定将区号为“415”局号并以“5”开头的电话号码更改为虚构的区号“777”。

 

?au_lname Field 对象的 Properties 集合中设置 Optimize 属性以提高存储和筛选性能。

 

?按作者的姓对 Recordset 使用 Sort(排序)操作。

 

?Filter(筛选)Recordset,使作者电话区号为“415”、局号为“5”的行成为仅可访问(即可见的)行。

使用 Move 方法从头至尾对经过排序和筛选的 Recordset 定位。当 Recordset EOF 属性表明已经到达最后一行时停止。在 Recordset 中移动时,显示作者的姓和名以及原始电话号码,然后将 phone 字段中的区号改为“777”。(phone 字段中的电话号码格式为“aaa xxx-yyyy”,其中 aaa 为区号,xxx 为局号。)

rs("au_lname").Properties("Optimize") = TRUE

rs.Sort = "au_lname ASC"

rs.Filter = "phone LIKE '415 5*'"

rs.MoveFirst

Do While Not rs.EOF

   Debug.Print "Name: " & rs("au_fname") & " " rs("au_lname") & _

      "Phone: " rs("phone") & vbCr

   rs("phone") = "777" & Mid(rs("phone"), 5, 11)

   rs.MoveNext

Loop

下一页   步骤 5