Ms access 操作变量和检索报表
我正试图解决一个问题,需要一些帮助。我有三种类型的用户(T8XXXXX、P9XXXXX和XXXXX),每种用户都有不同的元素,因此有不同的报告。前两个if语句有效,在打开报表时,一个报表为空,第三个报表一起失败。我真的不知道如何解决这个问题,我希望得到专业人士的帮助。非常感谢您的帮助Ms access 操作变量和检索报表,ms-access,vba,Ms Access,Vba,我正试图解决一个问题,需要一些帮助。我有三种类型的用户(T8XXXXX、P9XXXXX和XXXXX),每种用户都有不同的元素,因此有不同的报告。前两个if语句有效,在打开报表时,一个报表为空,第三个报表一起失败。我真的不知道如何解决这个问题,我希望得到专业人士的帮助。非常感谢您的帮助 Private Sub cmdPrintIndRep_Click() Dim strUser As String strUser = Forms.frmsupresults.subfrmUsrRes!UserNam
Private Sub cmdPrintIndRep_Click()
Dim strUser As String
strUser = Forms.frmsupresults.subfrmUsrRes!UserName
If Left(strUser, 2) Like "t8" Then
DoCmd.OpenReport "FedInvest - ISSR Recertification Report", acViewPreview
ElseIf Left(strUser, 2) Like "p9" Then
DoCmd.OpenReport "Courts - ISSR Recertification Report", acViewPreview
Else Left(strUser, 2) not Like "p9" and not like "t8"" Then
DoCmd.OpenReport "FedInvest - ISSR Internal Users Recertification Report", acViewPreview
End If
End Sub
免责声明:我不是专业人士,但希望我能帮上忙 通过引用找到的控件,我调整了
strUser
的定义
假设只有3种类型的用户,我只是删除了最后一条if
语句。如果不是第一种类型,也不是第二种类型,则必须是第三种类型的用户
最后,我们应该在if
语句的条件中使用=
而不是Like
Private Sub cmdPrintIndRep_Click()
Dim strUser As String
strUser = Forms!frmsupresults!subfrmUsrRes.Form!UserName
If Left(strUser, 2) = "t8" Or Left(strUser, 2) = "T8" Then
DoCmd.OpenReport "FedInvest - ISSR Recertification Report", acViewPreview
ElseIf Left(strUser, 2) = "p9" Or Left(strUser, 2) = "P9" Then
DoCmd.OpenReport "Courts - ISSR Recertification Report", acViewPreview
Else
DoCmd.OpenReport "FedInvest - ISSR Internal Users Recertification Report", _
acViewPreview
End If
End Sub
就您的报告为空而言,它们是什么?是否有任何错误消息?如果是这样,他们会怎么说?我注释掉了三条if语句,第三条有语法(不确定如何修复),但是如果我注释掉,每一条都会拉一个报告,只有一条没有数据,因为它没有通过if。我为记录源设置了单独的查询,未显示问题与查询中的过滤器集有关。你在这里做的代码解决了这个问题。谢谢你的帮助。