ADO记录集与二维数组互导-AngelHis
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


ADO记录集与二维数组互导

发表时间:2020/2/13 13:14:52 评论(1) 浏览(5537)  评论 | 加入收藏 | 复制
   
摘 要:ADO记录集与二维数组互导
正 文:
Option Compare Database
Option Explicit

Function RST_TO_ARR(RST As ADODB.Recordset) As Variant
'记录集转二维数组
    Dim I As Long, J As Long, R As Long, F As Long
    Dim ARR As Variant
    R = RST.RecordCount
    F = RST.Fields.Count
    If R = 0 Then Exit Function
    ReDim ARR(1 To R, 1 To F)
    Do While RST.EOF = False
        I = I + 1
        For J = 1 To F
            ARR(I, J) = RST.Fields(J - 1)    '  MsgBox arr(I, J), , I
        Next
        RST.MoveNext

    Loop

    RST.Close 

    RST_TO_ARR = ARR
End Function


Function ARR_TO_RST(ARR As Variant, RST As ADODB.Recordset)
'二维数组转记录集
    Dim I As Long, J As Long, L As Long
    For I = 1 To UBound(ARR)
        If RST.State = 0 Then RST.Open
        RST.AddNew
        For J = 0 To RST.Fields.Count - 1
            RST.Fields(J).Value = ARR(I, J + 1) & I
        Next
        RST.Update
    Next

End Function

'======================================================
Function TEST()
    Dim RST As New ADODB.Recordset, X As Variant, Y As Variant
    '记录集转二维数组
    RST.Open "Select  A,B,C  FROM TA", CurrentProject.Connection, adOpenStatic, adLockReadOnly
    If RST.State = 1 Then X = RST_TO_ARR(RST)
    RST.Close
    '二维数组转记录集
    RST.Open "Select A,B,C FROM TA", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
    If RST.State = 1 Then Y = ARR_TO_RST(X, RST)
    RST.Close
End Function


Access软件网交流QQ群(群号:198465573)
 
 相关文章
如何将 Microsoftaccess窗体绑定到ADO记录集  【UMVsoft整理  2008/4/28】
ADO记录集筛选  【赵文斌  2012/12/16】
【Access文章】ADO记录集说明  【漏蛧尐魚℡  2013/1/24】
【译文】如何用ADO代码实现窗体记录集的绑定  【周芳  2013/12/24】
用DAO记录集方法计算并修改表中多条记录多个字段值的示例  【牛魔王  2014/1/19】
VBA二维数组的基础介绍  【杨雪  2019/5/18】
导出至Excel系列方法七ADO/DAO循环记录集导出  【金宇  2019/10/22】
常见问答
技术分类
相关资源
文章搜索
关于作者

AngelHis

文章分类

文章存档

友情链接