小问题 大家看看 谢谢!

01order 2003-12-18 08:59:27
请问这段代码是什么意思 ? 如何用自己做报表!!一旦说明白了 我马上结帖!!!



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
...全文
31 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
01order 2003-12-20
  • 打赏
  • 举报
回复
谢谢各位 我懂了 呵呵
SoHo_Andy 2003-12-19
  • 打赏
  • 举报
回复
for i=0 to ubound(X1)
printer.print X1(i)
next
printer.newpage

for i=0 to ubound(X2)
printer.print X2(i)
next
printer.newpage

for i=0 to ubound(X2)
printer.print X2(i)
next

printer.EndDoc
01order 2003-12-19
  • 打赏
  • 举报
回复
这段我都早就懂了 呵呵 ~~~

如何用printer 把数组中元素打印出来???
01order 2003-12-19
  • 打赏
  • 举报
回复
to: AresChen(AresChen)
如何用printer 把数组中元素打印出来
87721054 2003-12-18
  • 打赏
  • 举报
回复
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
(这些不用解释了吧)
移动到下一条记录
循环
关闭




liyan010 2003-12-18
  • 打赏
  • 举报
回复
看来看去,怎么没感觉到这个程序和数据报表的数据有什么关系啊 ?

最多就是就是把数据库里的数据条数N记录下来,然后重新定义3个N维数组进行附值!

奇怪~
AresChen 2003-12-18
  • 打赏
  • 举报
回复
总的来说,就是利用数据库控件把数据库中的内容读到数组中,说明如下:
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
busisoft 2003-12-18
  • 打赏
  • 举报
回复
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'关闭记录集
01order 2003-12-18
  • 打赏
  • 举报
回复
这是用printer 来自己画报表的!请多多指教

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧