Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 操作变量和检索报表_Ms Access_Vba - Fatal编程技术网

Ms access 操作变量和检索报表

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

我正试图解决一个问题,需要一些帮助。我有三种类型的用户(T8XXXXX、P9XXXXX和XXXXX),每种用户都有不同的元素,因此有不同的报告。前两个if语句有效,在打开报表时,一个报表为空,第三个报表一起失败。我真的不知道如何解决这个问题,我希望得到专业人士的帮助。非常感谢您的帮助

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。我为记录源设置了单独的查询,未显示问题与查询中的过滤器集有关。你在这里做的代码解决了这个问题。谢谢你的帮助。