ton*_*mke 4 vb6 ms-access vba ado access-vba
我正在尝试创建一个函数,该函数接受ADODB Recordset并将其数据复制到新的记录集中.
为此,我使用do循环遍历源记录集的每一行.在do循环中,我需要使用每个循环来遍历每一行的Fields集合,以捕获其数据.
但是,VB6似乎在为每个循环阻塞- 它突出显示for循环迭代器的名称(下例中的"fld")并抛出一个未定义的变量错误.
奇怪的是,当没有放在do循环中时,每个循环完全相同.
测试用例1 (无法定义"For Each fld"):
'targetTableName As String:要创建的新表的名称'sourceRecordSet As ADODB.Recordset:包含要发布到新targetTableName的结果的open recordset
Public Sub createTableFromRecordset(targetTableName As String, sourceRecordSet As ADODB.recordSet)
        '(irrelevant code omitted)
        'create MDB RS object
        Dim targetRecordSet As ADODB.recordSet
        Set targetRecordSet = mdbQuery("select * from targetTableName;")
        'write data to recordset
        sourceRecordSet.MoveFirst ' to be safe
        targetRecordSet.MoveFirst ' to be safe
        While Not sourceRecordSet.EOF
            targetRecordSet.AddNew
            For Each fld In sourceRecordSet.Fields 'fails here, hilighting fld
                'do work
            Next fld
            sourceRecordSet.MoveNext
        Loop
        '(irrelevant code omitted)            
End Sub
测试用例2 (能够定义"For Each fld"就好了):
Private Sub testCase2()
    'Create a source dataset
    Dim sourceRs As ADODB.Recordset
    Set sourceRs = functionThatGetsRecordset("(a query)")
    'Create target db conn
    Dim mdbConn As ADODB.Connection
    Set mdbConn = functionThatGetsConn()
   'iterate through source's fields
    For Each fld In sourceRs.Fields 'works fine
        'do work 
    Next fld
End Sub
尝试两件事:
Dim fldField As Field
| 归档时间: | 
 | 
| 查看次数: | 22681 次 | 
| 最近记录: |