2016-12-03 56 views
0

VBA版本的MS Access:报告的SetProperty在激活不起作用,对批量打印

报告On Activate事件

Option Compare Database 
Private Sub Report_Activate() 
    If (Me.SomeTextBox = "SomeText25") Then 
     Me.SomeLabel.Visible = False 
    End If 
End Sub 

版本

报告On Activate事件

If [SomeTextBox]=SomeText25 Then 
    SetPropery 
     Control Name SomeLabel 
      Property Visible 
       Value False 
End If 

根据需要将报表预览和打印从“打印预览”和“报表视图”作为单个报表打印,但不能在以相同查询数据以编程方式打印多个结果时打印。

Query Criteria: Between...

打印报表时多个记录,控制是对所有打印的报告可见,与On Activate事件被忽略。

它看起来像我可能必须通过记录集Loop,以获得预期的结果。

作为解决方法,我将Label转换为TextBox,并使用Conditional Formatting隐藏(白色)文本。

回答

0

将我的If/Then放入详细部分的On Print事件中,用Else重置它,正确打印所有报告。

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)` 
    If...Then 
     ...Visible = False 
    Else 
     ...Visible = True 
    End IF 
End Sub 
0

OnActivate不会触发正常打印,仅用于预览,所以您将不得不使用另一个事件。

+0

有什么建议吗? – tahwos