Office中国论坛/Access中国论坛

标题: OpenRecordset打开查询的问题 [打印本页]

作者: Access先森    时间: 2015-7-13 23:48
标题: OpenRecordset打开查询的问题
Dim rst As DAO.Recordset
Dim db As DAO.Database
Set db = CurrentDb()

Set rst = db.OpenRecordset("学生信息", dbOpenTable)
以上代码可以得到一个“学生信息”表的记录集,请问,如果将db.OpenRecordset("学生信息", dbOpenTable)中的“学生信息”换成一个查询的名字,后面的dbOpenTable应该改为哪个参数?


作者: friendship    时间: 2015-7-14 05:37
试试不带参数,
即Set rst = db.OpenRecordset("qry学生信息")
或者 Set rst = db.OpenRecordset(sql语句)

下面是我看到的关于RST对象参数的说明,供参考:
有四种类型的 Recordset 对象:
¨        Table 型 Recordset——代表编码的基本表,可用于添加、改变或删除单一数据库的记录 (只限于 Microsoft Jet 工作区)。
¨        Dynaset 型 Recordset——包含可更新记录的查询结果。Dynaset 型 Recordset 对象是记录的动态集合,可用于添加、改变或删除底层数据库或表格的记录。Dynaset 型 Recordset 对象的字段可来自数据库的一个或多个表。该类型与 ODBC 键集游标相对应。
¨        Snapshot 型 Recordset——记录集的静态副本,可用于查找或产生报表。Snapshot 型  Recordset 对象的字段可来自数据库的一个或多个表,但不能更新。该类型与 ODBC 静态游标相对应。

¨        Forward-only 型 Recordset——等同于快照型,只是不提供游标。它只能沿记录方向滚动。对于只需要简单遍历记录集的情况,该类型可加速运行。该类型与 ODBC 只向前游标相对应。
¨        Dynamic 型 Recordset——来自一个或多个基本表的查询结果集,可在其中添加、改变或删除行转 row-returning 查询的记录。另外,其他用户在基本表中添加、删除或编辑的记录也出现在 Recordset。该类型与 ODBC 动态游标相对应(只限于 ODBCDirect 工作区)。

使用 OpenRecordset 方法的 type 参数可选择要创建的 Recordset 对象的类型。
在 Microsoft  Jet 工作区,如果不指定 type,DAO 将创建功能最全的 Recordset ,从表开始。如果该类型无效,DAO 将尝试动态集型,然后是快照型,最后是只向前型 Recordset 对象。


作者: roych    时间: 2015-7-14 09:01
1、那个参数是可以忽略的。
2、那个参数不是说打开表是一种,打开查询又是另一种,而是一种游标类型。类似于ADO的游标类型:
名称
说明
dbOpenDynamic
16
打开动态集类型的记录集
dbOpenDynaset
2
打开动态集类型的记录集
dbOpenForwardOnly
8
打开仅向前类型的记录集
dbOpenSnapshot
4
打开快照类型的记录集
dbOpenTable
1
打开表类型的记录集






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3