我使用了一个联合查询,然后用recordset.movefirst和recordset.movenext总是显示“缺少要刷新的键列信息”,怎么回事?

解决方案 »

  1.   

    set datagrid.datasource=adodc1
    daodc1.movenext
    即可
      

  2.   

    参考我以下代码,罗撕文库供应商表的:
            .ActiveConnection = adoconnection
            .CursorLocation = adUseClient
            .CursorType = adOpenStatic
            .LockType = adLockBatchOptimistic
            .source = Adodc1.RecordSource       
            .open
        
            Do While Not (.EOF)
                i = i + 1
                j = i + 1               '内层循环起始行=I+1
                .AbsolutePosition = i   '比较的源,外层循环
                str1 = .Fields("姓名")
                str2 = .Fields("单位")
                .AbsolutePosition = j   '内层循环初值
                While Not (.EOF)
        
                    str3 = .Fields("姓名")
                    str4 = .Fields("单位")
                    If (str1 = str3) And (str2 = str4) Then
                        .Delete         '删掉后,后边记录自动上前,故J不加1
                    Else
                        j = j + 1
                    End If
                    .AbsolutePosition = j
                Wend            .AbsolutePosition = i
                .MoveNext               '及以下判断是否到EOF前一行
                If Not (.EOF) Then
                    .MoveNext
                End If
            Loop
            
        
            .UpdateBatch                'problem
        
        End With
        Set DataGrid1.DataSource = adorecordset '显示SQL命令结果