请问这段代码是什么意思 ? 如何用自己做报表!!一旦说明白了 我马上结帖!!!Data1.Refresh
mnData1.Recordset.MoveLast
Dim m
m = Data1.Recordset.RecordCount
ReDim X1(m) As String, X2(m) As String, x3(m) As String
m = 0
Data1.Recordset.MoveFirst
Do While Not Data1.Recordset.EOF
m = m + 1
X1(m) = Text1: X2(m) = Text2: x3(m) = Text3
Data1.Recordset.MoveNext
Loop
Data1.Recordset.Close

解决方案 »

  1.   

    这是用printer 来自己画报表的!请多多指教
      

  2.   

    Data1.Refresh'刷新
    mnData1.Recordset.MoveLast'记录集指向最后一条记录
    Dim m'定义variant变量
    m = Data1.Recordset.RecordCount'记录集记录数
    ReDim X1(m) As String, X2(m) As String, x3(m) As String
    m = 0
    Data1.Recordset.MoveFirst'指向记录集第一条记录
    Do While Not Data1.Recordset.EOF'纪录即是否结束作为循环条件
    m = m + 1
    X1(m) = Text1: X2(m) = Text2: x3(m) = Text3
    Data1.Recordset.MoveNext'指向记录集下一条记录
    Loop
    Data1.Recordset.Close'关闭记录集
      

  3.   

    总的来说,就是利用数据库控件把数据库中的内容读到数组中,说明如下:
    Data1.Refresh    '刷新数据控件,以获得数据
    mnData1.Recordset.MoveLast  '将数据库的游标移动到最后,以便后面获得真正的数据集的个数。之所以这么作,是因为在有些打开方式下,数据库对象recordcount属性总是返回-1或者0,无法返回正确的记录数,这并不是bug,而是跟ADO、DAO等对象打开数据库的方式有关。
    Dim m
    m = Data1.Recordset.RecordCount  '获得数据库结果集的个数
    ReDim X1(m) As String, X2(m) As String, x3(m) As String
    m = 0
    Data1.Recordset.MoveFirst  '再次将数据库的游标移动到第一个记录,以便开始读书
    Do While Not Data1.Recordset.EOF  '如果没有到记录的尾部则循环
    m = m + 1 
    X1(m) = Text1: X2(m) = Text2: x3(m) = Text3  '因为text1、2、3已经与数据库控件作了绑定,所以text1、2、3中的值就是数据库游标所指的当前记录的值,具体是那些字段,就要看text1、2、3中的设置,这一句就是把记录的3个字段的值保存到数组当中。
    Data1.Recordset.MoveNext  '将数据库游标向后移动一个,即开始读下一条记录,这样text1、2、3的值也会跟着改变。
    Loop
    Data1.Recordset.Close  '关闭实际上,他的循环既然是用while而不是for来作,有很多是可以省略的,比如改成如下的程序:
    Data1.Refresh
    Dim m
    m = 0
    Do While Not Data1.Recordset.EOF
    ReDim preserve X1(m) As String, X2(m) As String, x3(m) As String
    m = m + 1
    X1(m) = Text1: X2(m) = Text2: x3(m) = Text3
    Data1.Recordset.MoveNext
    Loop
    Data1.Recordset.Close
      

  4.   

    DATA1刷新
    mnData1移动到最后一条记录
    定义m
    m等于Data1的数据记录的量
    定义X1(m) ,X2(m) ,X3(m) 是字符型
    设定m =1
    移动到第一条记录
    在记录没有在最后一条以后做以下的事:
    m = m + 1
    X1(m) = Text1: X2(m) = Text2: x3(m) = Text3
    (这些不用解释了吧)
    移动到下一条记录
    循环
    关闭
      

  5.   

    to: AresChen(AresChen) 
    如何用printer 把数组中元素打印出来
      

  6.   

    这段我都早就懂了 呵呵 ~~~如何用printer 把数组中元素打印出来???
      

  7.   

    for i=0  to ubound(X1)
        printer.print X1(i)
    next
    printer.newpagefor i=0  to ubound(X2)
        printer.print X2(i)
    next
    printer.newpagefor i=0  to ubound(X2)
        printer.print X2(i)
    nextprinter.EndDoc