从 DAO Recordset 的记录中提取数据

本文内容:

复制单个字段;

将整个记录复制到数组;

找到特定记录之后,您可能希望提取数据,以便在不修改基础源表的情况下在应用程序中使用。


复制单个字段

可以将单个字段的记录复制到适当数据类型的变量。 下面的示例从 Recordset 对象的第一条记录中提取三个字段。


将整个记录复制到数组

若要复制一条或多条记录,您可以创建一个二维数组,并一次复制一条记录。 您将为每个字段增加第一个下标,并为每个字段增加第二个下标。

快速执行此操作的方法是使用 GetRows 方法,该方法将返回一个二维数组。 第一个下标标识字段,第二个下标标识行号,如下所示。


下面的代码示例使用 SQL 语句从名为“Employees”的表中检索三个字段,放入 Recordset 对象中。 然后,它使用 GetRows 方法检索 Recordset 的前三条记录,并将所选的记录存储在一个二维数组中。 然后,它通过使用两个数组索引来选择特定字段和记录,从而输出每条记录(一次一个字段)。

为了显示数组索引的使用方式,以下示例使用一个单独的语句来标识和输出每条记录的每个字段。 在实践中,更加可靠的做法是:使用两个相互嵌套的循环,并为逐步执行数组的两个维度的索引提供整数变量。


如果有更多记录可用,请使用 对 GetRows 方法的 后续调用。 由于一旦调用 GetRows 方法,数组就会填满,因此您可以看到该方法为什么比一次复制一个字段要快得多。

另请注意,你不必将 Variant 声明为数组,因为当 GetRows 方法返回记录时,这会自动完成。 这样,您就可以在不知道将返回多少记录或字段的情况下使用固定长度数组维度,而不是使用占用更多内存的可变长度维度。

如果尝试使用多个 GetRows 调用检索所有行,请使用 EOF 属性,以确保位于 Recordset 的末尾。 GetRows 方法返回的行数可能比您请求的行数少。 举例来说,如果请求的行数超过 Recordset 中的剩余行数,则 GetRows 方法将只返回剩余的行。 同样,如果它无法检索所请求范围中的某行,则不会返回该行。

举例来说,如果无法检索您尝试检索的一组 10 条记录中的第五条记录,则 GetRows 方法将返回四条记录,并将当前记录位置保留在导致问题的记录上,且不会生成运行时错误。 如果另一个用户删除了动态集中的某个记录,则可能出现这种情况。 如果它返回的记录数比请求的数量少,并且您不在文件末尾,则需要阅读当前记录中的每个字段来确定 GetRows 方法遇到了什么错误。

由于 GetRows 方法始终返回 Recordset 对象中的所有字段,因此您可能想要创建一个仅返回所需字段的查询。 这对于“OLE 对象”和“备注”字段尤其重要。


从 DAO Recordset 的记录中提取数据【Access软件网】

展开阅读全文

页面更新:2024-03-07

标签:下标   维度   举例来说   末尾   数组   字段   示例   标识   索引   方法   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top