代码>[发票类型]在('type1','type2','type3')--这可能是不礼貌的,我向您道歉,但也许您现在不应该使用多选列表框,而应该专注于学习有关Access、SQL和VBA的更多信息。 Private Sub Detail_Click()

代码>[发票类型]在('type1','type2','type3')--这可能是不礼貌的,我向您道歉,但也许您现在不应该使用多选列表框,而应该专注于学习有关Access、SQL和VBA的更多信息。 Private Sub Detail_Click() ,vba,ms-access,Vba,Ms Access,代码>[发票类型]在('type1','type2','type3')--这可能是不礼貌的,我向您道歉,但也许您现在不应该使用多选列表框,而应该专注于学习有关Access、SQL和VBA的更多信息。 Private Sub Detail_Click() End Sub Private Sub BTNRunReport_Click() On Error GoTo BTNRunReport_Click_Err DoCmd.OpenReport "CompleteTransRPT", a

代码>[发票类型]在('type1','type2','type3')--这可能是不礼貌的,我向您道歉,但也许您现在不应该使用多选列表框,而应该专注于学习有关Access、SQL和VBA的更多信息。
Private Sub Detail_Click()

End Sub

Private Sub BTNRunReport_Click()
On Error GoTo BTNRunReport_Click_Err

    DoCmd.OpenReport "CompleteTransRPT", acViewReport, "", "", acNormal


BTNRunReport_Click_Exit:
    Exit Sub

BTNRunReport_Click_Err:
    MsgBox Error$
    Resume BTNRunReport_Click_Exit

End Sub

Private Sub BTNPaidInvoices_Click()
On Error GoTo BTNPaidInvoices_Click_Err 

    DoCmd.OpenReport "PaidRPT", acViewReport, "", "", acNormal


BTNRunReport_Click_Exit:
    Exit Sub

BTNRunReport_Click_Err:
    MsgBox Error$
    Resume BTNPaidInvoices_Click_Exit

End Sub

Private Sub DeSelectAllTeams_Click()

    Dim varItm As Variant

    With TeamName

        For Each varItm In .ItemsSelected
            .Selected(varItm) = False
        Next varItm

    End With
End Sub

Private Sub SelectAllTeams_Click()

Dim i As Integer

For i = 0 To Forms!InvoiceReporting!TeamName.ListCount - 1
Forms!InvoiceReporting!TeamName.Selected(i) = True
Next i

End Sub 

Private Sub SelectAllInvoices_Click()

Dim i As Integer

For i = 0 To Forms!InvoiceReporting!InvoiceType.ListCount - 1
Forms!InvoiceReporting!InvoiceType.Selected(i) = True
Next i

End Sub

Private Sub DeSelectAllInvoices_Click()

    Dim varItm As Variant

    With InvoiceType

        For Each varItm In .ItemsSelected
            .Selected(varItm) = False
        Next varItm

    End With
End Sub
Option Compare Database

Private Sub Detail_Click()

End Sub



Private Sub BTNRunReport_Click()
On Error GoTo BTNRunReport_Click_Err
    'DoCmd.OpenReport "CompleteTransRPT", acViewReport, , strFilter
    Dim strFilter As String
    Dim lSelCnt As Long
    strFilter = ""

    strWhere = GetValues(Me.TeamName, "Team Name", lSelCnt)
    If lSelCnt >= 1 Then strFilter = strFilter & "(" & strWhere & ")"

    lSelCnt = 0
    strWhere = GetValues(Me.InvoiceType, "Invoice Type", lSelCnt)
    If lSelCnt >= 1 Then
        If Len(strFilter) > 0 Then
            strFilter = strFilter & " AND (" & strWhere & ")"
        Else
            strFilter = strFilter & " (" & strWhere & ")"
        End If
    End If


    Debug.Print strFilter

    DoCmd.OpenReport "CompleteTransRPT", acViewReport, , strFilter

BTNRunReport_Click_Exit:
    Exit Sub

BTNRunReport_Click_Err:
    MsgBox Error$
    Resume BTNRunReport_Click_Exit

End Sub

Private Sub BTNPaidInvoices_Click()
On Error GoTo BTNPaidInvoices_Click_Err
 'DoCmd.OpenReport "PaidRPT", acViewReport, , strFilter
    Dim strFilter As String
    Dim lSelCnt As Long
    strFilter = ""

    strWhere = GetValues(Me.TeamName, "Team Name", lSelCnt)
    If lSelCnt >= 1 Then strFilter = strFilter & "(" & strWhere & ")"

    lSelCnt = 0
    strWhere = GetValues(Me.InvoiceType, "Invoice Type", lSelCnt)
    If lSelCnt >= 1 Then
        If Len(strFilter) > 0 Then
            strFilter = strFilter & " AND (" & strWhere & ")"
        Else
            strFilter = strFilter & " (" & strWhere & ")"
        End If
    End If


    Debug.Print strFilter

    DoCmd.OpenReport "PaidRPT", acViewReport, , strFilter

BTNPaidInvoices_Click_Exit:
    Exit Sub

BTNPaidInvoices_Click_Err:
    MsgBox Error$
    Resume BTNPaidInvoices_Click_Exit


End Sub

Private Sub BTNUnPaidInvoices_Click()
On Error GoTo BTNUnPaidInvoices_Click_Err

    'DoCmd.OpenReport "CompleteTransRPT", acViewReport, , strFilter
    Dim strFilter As String
    Dim lSelCnt As Long
    strFilter = ""

    strWhere = GetValues(Me.TeamName, "Team Name", lSelCnt)
    If lSelCnt >= 1 Then strFilter = strFilter & "(" & strWhere & ")"

    lSelCnt = 0
    strWhere = GetValues(Me.InvoiceType, "Invoice Type", lSelCnt)
    If lSelCnt >= 1 Then
        If Len(strFilter) > 0 Then
            strFilter = strFilter & " AND (" & strWhere & ")"
        Else
            strFilter = strFilter & " (" & strWhere & ")"
        End If
    End If


    Debug.Print strFilter

    DoCmd.OpenReport "NoPaymentRPT", acViewReport, , strFilter

    'DoCmd.OpenReport "NoPaymentRPT", acViewReport, "", "", acNormal


BTNUnPaidInvoices_Click_Exit:
    Exit Sub

BTNUnPaidInvoices_Click_Err:
    MsgBox Error$
    Resume BTNUnPaidInvoices_Click_Exit

End Sub

Private Sub DeSelectAllTeams_Click()

    Dim varItm As Variant

    With TeamName

        For Each varItm In .ItemsSelected
            .Selected(varItm) = False
        Next varItm

    End With
End Sub

Private Sub SelectAllTeams_Click()

Dim i As Integer

For i = 0 To Forms!INVOICEREPORTING!TeamName.ListCount - 1
Forms!INVOICEREPORTING!TeamName.Selected(i) = True
Next i

End Sub

Private Sub SelectAllInvoices_Click()

Dim i As Integer

For i = 0 To Forms!INVOICEREPORTING!InvoiceType.ListCount - 1
Forms!INVOICEREPORTING!InvoiceType.Selected(i) = True
Next i

End Sub

Private Sub DeSelectAllInvoices_Click()

    Dim varItm As Variant

    With InvoiceType

        For Each varItm In .ItemsSelected
            .Selected(varItm) = False
        Next varItm

    End With
End Sub


Function GetValues(lstbox As ListBox, lstField As String, lSelectedCnt As Long) As String

    Dim varItem As Variant      'Selected items
    Dim strWhere As String      'String to use as WhereCondition
    Dim strDescrip As String    'Description of WhereCondition
    Dim lngLen As Long          'Length of string
    Dim strDelim As String      'Delimiter for this field type.

    'strDelim = """"

    'Loop through the ItemsSelected in the list box.
    With lstbox
        For Each varItem In .ItemsSelected
            If Not IsNull(varItem) Then
                'Build up the filter from the bound column (hidden).
                strWhere = strWhere & "'" & strDelim & .ItemData(varItem) & strDelim & "',"
                lSelectedCnt = lSelectedCnt + 1
            End If
        Next
    End With

    'Remove trailing comma. Add field name, IN operator, and brackets.
    lngLen = Len(strWhere) - 1
    If lngLen > 0 Then
        GetValues = "[" & lstField & "] IN (" & Left$(strWhere, lngLen) & ")"
    End If

End Function
' if Invoice Types are ID numbers:
strFilter = "[Invoice Type] IN (4, 15, 77)"
' or if Invoice Types are text:
strFilter = "[Invoice Type] IN ('xx', 'yy', 'zz')"

DoCmd.OpenReport "CompleteTransRPT", acViewReport, "", strFilter, acNormal