注册 登录
编程论坛 VB6论坛

VB6+Datareport+Access 如何实现只打印其中的一条记录?

VB丶小宇 发布于 2014-07-31 14:30, 4316 次点击
RT,
VB6+Datareport+Acces如何实现只打印其中的一条记录?
只是用Datareport简单的设置了下,打印是打印Access中的全部记录,怎么写代码能单独打印某一条记录?
度娘了好多,找不到解决办法啊,求指导!
通俗点说,想要实现的功能就是,向Access数据库中添加一条记录,那么就打印出刚刚添加的记录。求指导!
--------------------------------------------------------------------------------------------
这样把,上传下源文件:
只有本站会员才能查看附件,请 登录

想要实现的功能,就是每添加一条记录,就弹出一个询问是否打印的窗口,如果是的话,就打印刚才添加的那条记录,没思路啊。。求指导!

[ 本帖最后由 VB丶小宇 于 2014-8-1 22:12 编辑 ]
14 回复
#2
VB丶小宇2014-08-01 16:55
问题很难解决么。。这么长时间了,没人遇到过吗?
#3
风吹过b2014-08-01 23:17
1、DataReport ,什么叫报表,就是把整个表都打印出来的。
2、使用这个作为数据源,我还没找到如何让这个数据源 使用 SQL 命令。它是打开整张表的。无语。
3、DataReport 无法使用 ADOBC 作为数据源。更无语。

解决办法:
1、使用自定义打印的方式打印吧。
#4
风吹过b2014-08-02 11:21
还有一种解决办法就是 生成临时表。
临时表里,就这么一条记录。然后打印。
打印完了,清空临时表来。
#5
VB丶小宇2014-08-02 12:50
回复 3 楼 风吹过 b
自定义的方式打印是什么?个人还没有接触过,劳烦您能指教下,我在百度上看到了一个锐浪报表,用这个可以单独打印指定的某条记录吗?
#6
VB丶小宇2014-08-02 12:50
回复 4 楼 风吹过 b
嗯,我也有这样的思路。可是还是感觉无从下手啊,劳烦您说个切入点!
#7
风吹过b2014-08-02 18:48
让 DataEnvironment1 使用SQL 查询的方法:

1、Command1的属性里修改:
默认是数据库对象,对象名字是一个表。
修改为:
SQL 语句 模式。
然后下面的框内,必须不能为空。如输入:
select * from BRYJtable
----
DataEnvironment1要求必须能读到一个表,以便显示字段名。
确定后。继续第二步。

2、打印代码:

Private Sub Command2_Click()
'修改 SQL 命令,查询刚输入了 票据号
("Command1").CommandText = " select * from BRYJtable where 票据号 = " & Text1.Text & ";"

然后再打开。
DataReport1.Show
End Sub


=================
总算找到了让 DataEnvironment 执行SQL 的方法。
#8
VB丶小宇2014-08-02 21:50
回复 7 楼 风吹过 b
按您这样设计的话,仍旧有缺陷。
如图:操作示例
只有本站会员才能查看附件,请 登录

向Datagrid控件成功的添加了一条记录,然后单击打印按钮。
只有本站会员才能查看附件,请 登录

可以看到,成功的实现了打印一条记录的要求!
但是,继续添加。
只有本站会员才能查看附件,请 登录

添加成功,此时再次单击打印按钮。
只有本站会员才能查看附件,请 登录

解决方案:必须添加一条记录后,退出程序,从新运行,才能继续!
故本人认为不完美,正在改进。。
#9
风吹过b2014-08-02 22:50
刚测试了,真是你说的这种的,只能用一次。

那好吧。
使用自定义打印。

自定义打印,使用对象
Printer
这个对象代表默认打印机。
先定位,然后再打印。

操作方式,像操作PictureBox 一样。你写程序时。
可以在窗体上放一个 Picture1 ,设置如 A4纸的大小,
然后到这个 Picture1 上进行定位,打印内容,还可以画线。

祝你好运吧。
报表系统本来就不适合用来打印一条记录的。
-
如果你还是想用 报表系统来打印一条记录,那还有一个办法。
就是做成二个应用。
第二个应用需要带参数启动,不带参数时,打印所有的东西。
带参数启动时,就打印参数的内容。

====
ADOBC的操作,添加记录什么,都尽量使用 SQL 命令进行添加删除。
SQL命令速度更快,更容易发现错误出在哪里。
代码更短小。

只有本站会员才能查看附件,请 登录
#10
VB丶小宇2014-08-02 23:30
回复 9 楼 风吹过 b
其实是还有办法,我朋友这样改了程序,就能打印了,还是不改变原有程序的情况下。我贴上来,有些代码不懂,还劳烦您给添加个注释。
只有本站会员才能查看附件,请 登录

程序代码:
If i = vbOK Then
Dim strsql As String
strsql = "select * from BRYJtable where 票据号= " + Text1.Text
(1).CommandText = strsql
If DataEnvironment2.rsCommand1.State <> adstateclose Then
DataEnvironment2.rsCommand1.Close
   End If
Set DataReport1.DataSource = DataEnvironment2
DataReport1.Show
Else

 End If
End Sub
#11
风吹过b2014-08-02 23:47
好吧,我开头也想过这种办法,但没去用过 DE ,所以卡在命令上。

前面是一样的,给SQL命令。
然后判断数据连接是不是关闭的,如果不是,那么关闭掉。
绑定数据源,再显示。

-----
我想过刷新数据源,找不到命令,想关闭数据源,重新连接,也不知道命令
#12
VB丶小宇2014-08-03 20:19
回复 9 楼 风吹过 b
您好,您说的那个利用PictureBox控件打印,我非常有兴趣,能不能详细的讲解下代码?谢谢!
#13
风吹过b2014-08-03 21:39
只有本站会员才能查看附件,请 登录


02年写的,你慢慢看吧。
#14
VB丶小宇2014-08-04 08:41
回复 13 楼 风吹过 b
先谢谢您了,收下看看。
#15
dsasada2018-04-17 16:05
谢谢分享!!
1