Office中国论坛/Access中国论坛

标题: 如何为动态集 adodb.recordset创建索引 [打印本页]

作者: 魔天天自在    时间: 2016-3-28 10:06
标题: 如何为动态集 adodb.recordset创建索引

想为动态集adodb.recordset创建索引,请问该如何操作?

代码如下:

Sub alarm_find()
Dim rs_z As New ADODB.Recordset

Dim sql_z As String

Dim idx_z As New Index
         
sql_z = " select c.厂家标识,c.地市,c.告警标题  as 主要告警,c.告警对象名称_S,c.告警发生时间  as 主要告警时间  from  告警详表 as c"

Set rs_z = New ADODB.Recordset

Set rs_z = CurrentDb.OpenRecordset("sql_z")

With rs_z
.Index = "idx_z"

End With


End Sub



作者: tmtony    时间: 2016-3-28 10:13
动态创建索引要用到ADOX
可参考这里的代码
http://www.office-cn.net/t/ado/i ... creationexample.htm
作者: 魔天天自在    时间: 2016-3-28 11:07
tmtony 发表于 2016-3-28 10:13
动态创建索引要用到ADOX
可参考这里的代码
http://www.office-cn.net/t/ado/index.html?htm_admscindexcr ...

如何将索引添加到recordset中?recordset没有append方法
作者: 魔天天自在    时间: 2016-3-28 11:11
tmtony 发表于 2016-3-28 10:13
动态创建索引要用到ADOX
可参考这里的代码
http://www.office-cn.net/t/ado/index.html?htm_admscindexcr ...

而且 recordset的属性 fields不是字段啊,如何将索引创建在recordset的某个列上?
作者: 魔天天自在    时间: 2016-3-28 11:25
tmtony 发表于 2016-3-28 10:13
动态创建索引要用到ADOX
可参考这里的代码
http://www.office-cn.net/t/ado/index.html?htm_admscindexcr ...

是要将 recordset的内容赋值给某张表再进行操作吗
作者: roych    时间: 2016-3-28 11:36
本帖最后由 roych 于 2016-3-28 11:52 编辑
魔天天自在 发表于 2016-3-28 11:25
是要将 recordset的内容赋值给某张表再进行操作吗

可以用DAO创建索引。
http://www.office-cn.net/thread-97757-1-1.html
如果需要一步到位的话,建议用SQL语句:
  1. create table Test (ID autoincrement not null primary key,C_Name text(255))
复制代码



作者: tmtony    时间: 2016-3-28 11:56
1.上面给你的链接中有ADOX  添加索引的方法 ,与ADO不同,不是ADO
2.用roych给你的DAO的方法,DAO一是SQL语句,也可用recordset中的field 有索引等属性
作者: tmtony    时间: 2016-3-28 11:57
这个贴子是DAO创建索引的代码,在贴子最后面
DAO与ADO创建索引时一些属性的区别及对应关系
http://www.office-cn.net/thread-1205-1-1.html
作者: 魔天天自在    时间: 2016-3-28 12:11
两位老师,recordset的索引是否是实表(在数据库中已经创建好的表)的一种操作,而非是对经过运行sql读到内存中的数据的操作?
作者: 魔天天自在    时间: 2016-3-28 12:14
我一直以为在ADO或者DAO中index是可以对读到内存中的数据进行处理的




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