下面的代码可以实现没5行空一行,但是第6+5n行的数据就没有了,请教该如何处理
Set rs4 = cn.Execute("select * from bz") 
    Set rst = New ADODB.Recordset 
    With rst 
        .Fields.Append "shx", adVarChar, 20 
        .Fields.Append "dwcz", adVarChar, 20 
        .Fields.Append "gcyz", adVarChar, 20 
        .Fields.Append "chh", adVarChar, 20 
        .Fields.Append "zizh", adVarChar, 20 
        .Fields.Append "hch", adVarChar, 20 
        .Fields.Append "zzh", adVarChar, 20 
        .Fields.Append "dz", adVarChar, 20 
        .Fields.Append "hwmc", adVarChar, 20 
        .Fields.Append "fz", adVarChar, 20 
        .Fields.Append "pb", adVarChar, 20 
        .Fields.Append "shr", adVarChar, 200 
        .Fields.Append "clsx", adVarChar, 20 
        .Fields.Append "js", adVarChar, 20 
        .Open 
        While Not rs4.EOF 
            .AddNew 
            If n < 5 Then 
                .Fields("shx") = rs4.Fields(1) 
                .Fields("dwcz") = rs4.Fields(2) 
                .Fields("gcyz") = rs4.Fields(3) 
                .Fields("chh") = rs4.Fields(4) 
                .Fields("zizh") = rs4.Fields(5) 
                .Fields("hch") = rs4.Fields(6) 
                .Fields("zzh") = rs4.Fields(7) 
                .Fields("dz") = rs4.Fields(8) 
                .Fields("hwmc") = rs4.Fields(9) 
                .Fields("fz") = rs4.Fields(10) 
                .Fields("pb") = rs4.Fields(11) 
                .Fields("shr") = rs4.Fields(12) 
                .Fields("clsx") = rs4.Fields(13) 
                .Fields("js") = rs4.Fields(14) 
                
                n = n + 1 
            Else 
                .Fields("shx") = "" 
                .Fields("dwcz") = "" 
                .Fields("gcyz") = "" 
                .Fields("chh") = "" 
                .Fields("zizh") = "" 
                .Fields("hch") = "" 
                .Fields("zzh") = "" 
                .Fields("dz") = "" 
                .Fields("hwmc") = "" 
                .Fields("fz") = "" 
                .Fields("pb") = "" 
                .Fields("shr") = "" 
                .Fields("clsx") = "" 
                .Fields("js") = "" 
                n = 0 
            End If 
            .Update 
            rs4.MoveNext 
        Wend 
    End With 
    Set rs4 = Nothing 
    Set drt1.DataSource = rst

解决方案 »

  1.   

    While Not rs4.EOF  难道就不是一行一行读吗……
      

  2.   


            While Not rs4.EOF
                .AddNew
                If n < 5 Then
                    .Fields("shx") = rs4.Fields(1)
                    .Fields("dwcz") = rs4.Fields(2)
                    .Fields("gcyz") = rs4.Fields(3)
                    .Fields("chh") = rs4.Fields(4)
                    .Fields("zizh") = rs4.Fields(5)
                    .Fields("hch") = rs4.Fields(6)
                    .Fields("zzh") = rs4.Fields(7)
                    .Fields("dz") = rs4.Fields(8)
                    .Fields("hwmc") = rs4.Fields(9)
                    .Fields("fz") = rs4.Fields(10)
                    .Fields("pb") = rs4.Fields(11)
                    .Fields("shr") = rs4.Fields(12)
                    .Fields("clsx") = rs4.Fields(13)
                    .Fields("js") = rs4.Fields(14)
                   rs4.MoveNext
                    n = n + 1
                Else
                    .Fields("shx") = ""
                    .Fields("dwcz") = ""
                    .Fields("gcyz") = ""
                    .Fields("chh") = ""
                    .Fields("zizh") = ""
                    .Fields("hch") = ""
                    .Fields("zzh") = ""
                    .Fields("dz") = ""
                    .Fields("hwmc") = ""
                    .Fields("fz") = ""
                    .Fields("pb") = ""
                    .Fields("shr") = ""
                    .Fields("clsx") = ""
                    .Fields("js") = ""
                    n = 0
                End If
                .Update
                
            Wend
        End With
        Set rs4 = Nothing
        Set drt1.DataSource = rst试试看