没有合适的资源?快使用搜索试试~ 我知道了~
实现recordset分组汇总
4星 · 超过85%的资源 需积分: 33 9 下载量 11 浏览量
2012-03-27
04:37:43
上传
评论
收藏 5KB TXT 举报
温馨提示
试读
4页
实现recordset分组汇总,性能不是很高,但能用,欢迎交流 QQ:675010888
资源推荐
资源详情
资源评论
想将从EXCEL表中读取后的recordset记录进行汇总,在网上查了N久都没有找到方法,又不想动不动就往数据库里创建个新表啥的,于是研究了一通宵,终于有点收获,现贴出来供大伙分享
汇总的性能不是很高,望有高手出来指点优化,QQ:675010888
Public Function rstGroup(ByVal rstSource As ADODB.Recordset, ByVal Groupby As String, ByVal sumFields As String, ByVal countFields As String) As ADODB.Recordset
Dim rst As New ADODB.Recordset
Dim rstTo As New ADODB.Recordset
Dim rstFields() As String
Dim rstFieldName As String
Dim cWhere As String = ""
Dim cFilter As String = ""
Dim i As Integer
'rst = rstSource.Clone()
'复制表中的所有数据
'rst.ActiveConnection = Nothing
'rst.Open(, , ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockBatchOptimistic)
For i = 0 To rstSource.Fields.Count - 1
'Debug.Print(rstSource.Fields(0).Name)
'rstTo.Fields.Append(rstSource., rst.Fields(rstFieldName).Type, rst.Fields(rstFieldName).DefinedSize)
rst.Fields.Append(rstSource.Fields(i).Name, rstSource.Fields(i).Type, rstSource.Fields(i).DefinedSize, ADODB.FieldAttributeEnum.adFldIsNullable)
Next
rst.Open(, , ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockBatchOptimistic)
If rstSource.RecordCount > 0 Then
rstSource.MoveFirst()
End If
Do Until rstSource.EOF
rst.AddNew()
Debug.Print(rstSource(0).Value)
For i = 0 To rstSource.Fields.Count - 1
rst.Fields(i).Value = rstSource(i).Value
Next
汇总的性能不是很高,望有高手出来指点优化,QQ:675010888
Public Function rstGroup(ByVal rstSource As ADODB.Recordset, ByVal Groupby As String, ByVal sumFields As String, ByVal countFields As String) As ADODB.Recordset
Dim rst As New ADODB.Recordset
Dim rstTo As New ADODB.Recordset
Dim rstFields() As String
Dim rstFieldName As String
Dim cWhere As String = ""
Dim cFilter As String = ""
Dim i As Integer
'rst = rstSource.Clone()
'复制表中的所有数据
'rst.ActiveConnection = Nothing
'rst.Open(, , ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockBatchOptimistic)
For i = 0 To rstSource.Fields.Count - 1
'Debug.Print(rstSource.Fields(0).Name)
'rstTo.Fields.Append(rstSource., rst.Fields(rstFieldName).Type, rst.Fields(rstFieldName).DefinedSize)
rst.Fields.Append(rstSource.Fields(i).Name, rstSource.Fields(i).Type, rstSource.Fields(i).DefinedSize, ADODB.FieldAttributeEnum.adFldIsNullable)
Next
rst.Open(, , ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockBatchOptimistic)
If rstSource.RecordCount > 0 Then
rstSource.MoveFirst()
End If
Do Until rstSource.EOF
rst.AddNew()
Debug.Print(rstSource(0).Value)
For i = 0 To rstSource.Fields.Count - 1
rst.Fields(i).Value = rstSource(i).Value
Next
资源评论
- vansoft2013-08-26不太实用。最后还是直接用SQL查询。
luleizheng
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功