VB6中动态设置报表结果

2016-02-19 12:29 17 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的VB6中动态设置报表结果教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

在VB6的报表使用过程中,我们会发现这样的一个问题,那就是报表中的数据只能读一次,不管你的库中字段增加也好,删除也好,以及让它显示新的查询结果等,它都不会记变。经过查资料才搞清楚,原来是DataEnvironment的问题.原来,只要Command对象中含有数据记录集合,它就不会重新执行SQL语句,就算是把新的查询语句给DataEnvironment后它也不会执行,解决的方法为:先把数据记录集合关闭,然后执行SQL语句,如下例:
  PrivateSubCommand11_Click()
  OnErrorResumeNext
  DimsqlAsString
  sql="select*fromsaledate"
  IfDataEnvironment1.rsCommand1.StateadStateClosedThen
  DataEnvironment1.rsCommand1.Close
  EndIf
  IfRight$(Trim$(App.Path),1)=""Then
  DataEnvironment1.Connection1.OpenApp.Path&"jxck.mdb"
  Else
  DataEnvironment1.Connection1.OpenApp.Path&"jxck.mdb"
  EndIf
  DataEnvironment1.rsCommand1.Opensql
  SetDataReport1.DataSource=DataEnvironment1
  DataReport1.DataMember="command4"
  'DataReport1.Title="出库明细总表"
  DataReport1.Show
  EndSub
  这样的话报表中显示的内容就可以是查询结果了。
  对于分组报表,也可以这样:
  如:
  PrivateSubCommand11_Click()
  OnErrorResumeNext
  'DimsqlAsString
  'sql="select*fromsaledategroupby分组字段名"
  IfDataEnvironment1.command4_分组.StateadStateClosedThen
  DataEnvironment1.rsCommand4_分组.Close
  EndIf
  IfRight$(Trim$(App.Path),1)=""Then
  DataEnvironment1.Connection1.OpenApp.Path&"jxck.mdb"
  Else
  DataEnvironment1.Connection1.OpenApp.Path&"jxck.mdb"
  EndIf
  DataEnvironment1.rsCommand4.Opensql
  SetDataReport4.DataSource=DataEnvironment1
  DataReport4.DataMember="command4_分组"
  'DataReport1.Title="出库明细总表"
  DataReport4.Show
  EndSub
  注意要在SQL语句中含有分组关建字"groupby"就可以了。
  以上代码对于要改变DataEnvironment中的记录集同样适用.
  
  以上代码在VB6.0,Win98上调试通过.
  如有问题请与我联系.
  
  张振兴(星云)
  邮箱:xingyun0615@sina.com
  Oicq:4487877->

来源:https://www.tulaoshi.com/n/20160219/1601032.html

延伸阅读
小弟用VB6.0编制了一个小程序,使用win32的关于internet 的API来下载文件。程序用户界面如下 本程序包括两个文件 frmDownLoad.frm (主窗体)和clsCount.cls(计算下载速度的类模块) 大家建立一个简单的VB应用程序项目,将两个文件加入项目即可 我觉得clsCount.cls有问题,望有心人查查 '##################################################...
窗体的Initialize事件------窗体的Load事件------窗体的Activate事件------窗体的QueryUnload事件------窗体的Unload事件 可以新建一个VB窗体,在窗体中写下面代码测试: Private Sub Form_Activate() MsgBox "窗体的Activate事件" End Sub Private Sub Form_Initialize() MsgBox "窗体的Initialize事件" End Sub Private Sub Form_Load() ...
嘿嘿,看到这个题目,想必吓了一大跳吧,或者是摆出一副不相信的表情?不用着急,请听我慢慢道来。 话说这个VB6,很是无耻,居然内置了支持Unicode的功能,也就是说,当你读入一个字符串时,它根据本地缺省语言的对应关系将之转换为Unicode,输出时,再从Unicode转换为本地编码。一方面,它当然方便啦,随便出个什么语言的版本都好方便的,...
我们在玩《仙剑奇侠传》时,要是不能保存数据,那么非得挑灯夜战三昼夜才能玩完,可见数据存储之重 要性。爱好编程的CFAN是不会放过数据文件的,下面跟着我驰骋吧!我们先吃一个哈密瓜,开门即来编一传统的比较有代表性的程序,不可不看的哟! 程序分为一个表单cfanvb.frm,一个模块cfanvb.bas。一个表单程序。程序的表单中有五个命令按...
首先,建立一个新的带有窗体的VisualBasic6工程,然后在窗体中添加一个TreeView控件,并添加一个引用到微软XML解析器。 接着,在Form_Load事件中添加如下的代码: PrivateSubForm_Load() DimobjDOMAsDOMDocument SetobjDOM=NewDOMDocument CallobjDOM.loadXML(_ "") CallAddNode(objDOM.documentElement,Nothing) SetobjDOM=Not...

经验教程

918

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部