Office中国论坛/Access中国论坛

标题: 已解决:打印报表时,如何进行对字段的条件判断,不满足的,将提示原因 [打印本页]

作者: luodream    时间: 2007-12-14 14:05
标题: 已解决:打印报表时,如何进行对字段的条件判断,不满足的,将提示原因
在“窗体1”中,点击“打印”按钮,
1、直接打印当前记录,而不是要录入“编号2”
2、能够显示预览界面,而不直接指印
3、打印前进行判断,符合条件的正常打印,否则提示错误原因:
(1)、条件1:当“条件”=“条件1”或“条件2”时,不进行判断,直接打印
(2)、条件2:当“条件”#“条件1”或“条件2”时,再进行以下判断
     A、当“是否”=“是”时,“是否日期3”不能为空,否则提示错误原因“A”
     B、当“是否”=“否”时,“是否日期3”不能有值,否则提示错误原因“B”
     C、“日期1”、“日期2”、“文本”不能为空,“数值”不能<=0,否则,分别提示错误原因.
万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分万分谢谢了。

[ 本帖最后由 luodream 于 2007-12-16 15:53 编辑 ]
作者: wwwwa    时间: 2007-12-14 14:29
1、SELECT [表1].[编号], [表1].[条件], [表1].[日期1], [表1].[日期2], [表1].[是否], [表1].[是否日期3], [表1].[文本], [表1].[数值], [表1].[编号2]
FROM 表1
WHERE 编号2=[forms]![窗体1]![编号];
2、  DoCmd.OpenReport "报表1", acViewPreview
作者: luodream    时间: 2007-12-14 15:36
第三点如何实现呢?再求助中
作者: luodream    时间: 2007-12-16 09:55
有高手出现吗?等待中。
作者: tmtony    时间: 2007-12-16 11:00
不错不错!
作者: luodream    时间: 2007-12-16 11:23
学习中......,谢谢了。
作者: luodream    时间: 2007-12-16 11:45
果然是高手啊,但有两个问题:
1、还没实现:当“条件”=“条件1”或“条件2”时,不进行判断,直接进行“打印提示,这点是不是要嵌套一个IF语句,具体要怎么写呢?
2、“数值”为空时,没有控制住,这点,我已依葫芦画瓢,解决了。加了:
     If IsNull(Me.数值) Then
        MsgBox "数值不能为空"
        Me.数值.SetFocus
        Exit Sub
    End If

[ 本帖最后由 luodream 于 2007-12-16 12:51 编辑 ]
作者: luodream    时间: 2007-12-16 12:50
我现在加了,
If Me.条件 = 1 Or 2 Then
......
End If
怎么没有效啊,我的原意是:当条件 = “条件1” Or“ 条件2”才判断值是否有空,当条件 # (“条件1” Or“ 条件2”),直接进行打印提示,但加了上述语句后,当条件=条件3、条件4时还是进行了判断,有什么问题是吗?
作者: Victor_Duane    时间: 2007-12-16 13:26
If Me.条件 = 1 Or 2 Then
这一句有问题,
If Me.条件 = 1 Or me.条件=2 Then
作者: Victor_Duane    时间: 2007-12-16 13:27
或者你用
If Me.条件 like "[1 ,2 ]" Then
作者: luodream    时间: 2007-12-16 15:50
问题解决,感谢cuxun、Victor_Duane。谢谢了。
作者: 小宜    时间: 2007-12-16 16:00
学习中......,谢谢了。
作者: feigao186    时间: 2007-12-16 17:20
kkkkkkkkkkkkkk
作者: feigao186    时间: 2007-12-16 17:24
hhhhhhhhhhhhh
作者: luodream    时间: 2007-12-18 13:48
Dim TempMsgbox As VbMsgBoxStyle
    TempMsgbox = MsgBox("确认要打印该条记录吗?按是则打印,否则浏览记录。", vbQuestion + vbYesNoCancel, "打印提示")
    If TempMsgbox = vbYes Then
        DoCmd.OpenReport "报表1", acViewNormal, , "编号=" & Me.编号, , acWindowNormal
    ElseIf TempMsgbox = vbNo Then
        DoCmd.OpenReport "报表1", acViewPreview, , "编号=" & Me.编号, , acWindowNormal

上述语句中: "编号=" & Me.编号,怎么理解

我照此写了这么一句:
    Dim TempMsgbox As VbMsgBoxStyle
    TempMsgbox = MsgBox("确认要打印该条记录吗?按是则打印,否则浏览记录。", vbQuestion + vbYesNoCancel, "打印提示")
    If TempMsgbox = vbYes Then
        DoCmd.OpenReport "意见-归档B", acViewNormal, , "编号=" & Me.编号, , acWindowNormal
    ElseIf TempMsgbox = vbNo Then
        DoCmd.OpenReport "意见-归档B", acViewPreview, , "编号=" & Me.编号, , acWindowNormal
    End If

怎么会出现附件中的提示呢?还要输入编号。
作者: REORX    时间: 2007-12-19 10:01
学习中ING.......
作者: luodream    时间: 2007-12-19 12:59
原帖由 cuxun 于 2007-12-18 14:19 发表
报表:意见-归档B的数据来源应该是查询吧,看看那个查询


不是的,数据源取是个表。我直接打开报表“意见-归档B”,显示的是所有记录。
是怎么回事呢?
作者: luodream    时间: 2007-12-19 13:52
经查,数据源、报表均有“编号”这个字段。
作者: luodream    时间: 2007-12-22 14:55
原帖由 cuxun 于 2007-12-22 10:49 发表
已加你了,要验证....

重新加我,不用验证了。
作者: wangwang    时间: 2008-6-15 18:30
值得学习。
作者: liaug    时间: 2008-6-15 21:43
[:34] [:26] [:30] [:31] [:26]
作者: linag516    时间: 2009-2-27 11:03

作者: citizzj    时间: 2009-3-9 00:24
学习
作者: kensoy    时间: 2009-3-10 00:02
解决了啊,学习了
作者: 蓝天8390    时间: 2009-3-10 08:53
版主的这个例子对我有用,可没有解压密码打不开啊




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3