小问题 大家看看 谢谢!

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
...全文
8 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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 来自己画报表的!请多多指教
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告