Combining Select Case with an If or ElseIf statement

G

Guest

Can you combine a Select Case statement with an If and/or ElseIf statement?
I am trying to create a switchboard that gives you the option to select a
certain report. However, you can sort the report by 5 criteria and then
select another set of criteria you want the report to be off. Here is the
string:

Private Sub WRACmd_Click()

Dim stDocName As String
'Dim varhowsort As Variant
Dim varsortby As Variant
Dim vardate As Variant
Dim vardateto As Variant
Dim varFM As Variant
Dim varID As Variant
Dim varNH As Variant
Dim varTrade As Variant

'All reports for WRA Reports
stDocNameWRA1Date = "WRA1DateRpt"
stDocNameWRA1FM = "WRA1FMRpt"
stDocNameWRA1ID = "WRA1IDRpt"
stDocNameWRA1NH = "WRA1NHRpt"
stDocNameWRA1Trade = "WRA1TradeRpt"
stDocNameWRA2Date = "WRA2DateRpt"
stDocNameWRA2ID = "WRA2IDRpt"
stDocNameWRA2NH = "WRA2NHRpt"
stDocNameWRA2Trade = "WRA2TradeRpt"
stDocNameWRA3Date = "WRA3DateRpt"
stDocNameWRA3FM = "WRA3FMRpt"
stDocNameWRA3NH = "WRA3NHRpt"
stDocNameWRA3Trade = "WRA3TradeRpt"
stDocNameWRA4Date = "WRA4DateRpt"
stDocNameWRA4FM = "WRA4FMRpt"
stDocNameWRA4ID = "WRA4IDRpt"
stDocNameWRA4Trade = "WRA4TradeRpt"
stDocNameWRA5Date = "WRA5DateRpt"
stDocNameWRA5FM = "WRA5FMRpt"
stDocNameWRA5ID = "WRA4IDRpt"
stDocNameWRA5NH = "WRA5NHRpt"

varsortby = Me!FrameSortBy
vardate = Me!CboDateFrom
vardateto = Me!CboDateTo
varFM = Me!CboFM
varID = Me!CboID
varNH = Me!CboNH
varTrade = Me!CboTrade

'This is if all empty
Select Case varsortby
Case 1: stDocName = "WRAbyDate"
Case 2: stDocName = "WRAbyFM"
Case 3: stDocName = "WRAbyID"
Case 4: stDocName = "WRAbyNH"
Case 5: stDocName = "WRAbyTrade"
End Select

'These will run reports sorted by Date.
If varsortby = 1 And varFM = "" And varID = "" And varNH = "" And varTrade =
"" Then
DoCmd.OpenReport stDocNameWRA1Date, acViewNormal
'GoToSkipOver
End If

If varsortby = 1 And vardate = "" And vardateto = "" And varID = "" And
varNH = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA1FM, acViewNormal
'GoToSkipOver
End If

If varsortby = 1 And varedate = "" And vardateto = "" And varFM = "" And
varNH = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA1ID, acViewNormal
'GoToSkipOver
End If

If varsortby = 1 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocWRA1NH, acViewNormal
'GoToSkipOver
End If

If varsortby = 1 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varNH = "" Then
DoCmd.OpenReport stDocNameWRA1Trade, acViewNormal
'GoToSkipOver
End If

'These will run reports sorted by FM.
If varsortby = 2 And varFM = "" And varID = "" And varNH = "" And varTrade =
"" Then
DoCmd.OpenReport stDocNameWRA2Date, acViewNormal
'GoToSkipOver
End If


If varsortby = 2 And vardate = "" And vardateto = "" And varFM = "" And
varNH = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA2ID, acViewNormal
'GoToSkipOver
End If


If varsortby = 2 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA2NH, acViewNormal
'GoToSkipOver
End If


If varsortby = 2 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varNH = "" Then
DoCmd.OpenReport stDocNameWRA2Trade, acViewNormal
'GoToSkipOver
End If

'These will run reports sorted by ID.
If varsortby = 3 And varFM = "" And varID = "" And varNH = "" And varTrade =
"" Then
DoCmd.OpenReport stDocNameWRA3Date, acViewNormal
'GoToSkipOver
End If


If varsortby = 3 And vardate = "" And vardateto = "" And varNH = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA3FM, acViewNormal
'GoToSkipOver
End If


If varsortby = 3 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA3NH, acViewNormal
'GoToSkipOver
End If


If varsortby = 3 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varNH = "" Then
DoCmd.OpenReport stDocNameWRA3Trade, acViewNormal
'GoToSkipOver
End If

'These will run reports sorted by NH.
If varsortby = 4 And varFM = "" And varID = "" And varNH = "" And varTrade =
"" Then
DoCmd.OpenReport stDocNameWRA4Date, acViewNormal
'GoToSkipOver
End If


If varsortby = 4 And vardate = "" And vardateto = "" And varNH = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA4FM, acViewNormal
'GoToSkipOver
End If


If varsortby = 4 And vardate = "" And vardateto = "" And varFM = "" And
varNH = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA4ID, acViewNormal
'GoToSkipOver
End If


If varsortby = 4 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varNH = "" Then
DoCmd.OpenReport stDocNameWRA4Trade, acViewNormal
'GoToSkipOver
End If

'These will run reports sorted by Trade.
If varsortby = 5 And varFM = "" And varID = "" And varNH = "" And varTrade =
"" Then
DoCmd.OpenReport stDocNameWRA5Date, acViewNormal
'GoToSkipOver
End If


If varsortby = 5 And vardate = "" And vardateto = "" And varNH = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA5FM, acViewNormal
'GoToSkipOver
End If


If varsortby = 5 And vardate = "" And vardateto = "" And varFM = "" And
varNH = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA5ID, acViewNormal
'GoToSkipOver
End If


If varsortby = 5 And vardate = "" And vardateto = "" And varFM = "" And
varID = "" And varTrade = "" Then
DoCmd.OpenReport stDocNameWRA5NH, acViewNormal
'GoToSkipOver
End If

If Len(stDocName) > 0 Then
DoCmd.OpenReport stDocName, acViewPreview

Else
MsgBox "No Report Selected."
End If

DoCmd.OpenReport stDocName, acViewPreview

'Skipover: End

End Sub
 
G

Guest

"Can you combine a Select Case statement with an If and/or ElseIf statement? "

It depends on how you want to combine them, for instance the following are
valid:
IF ... Then
Select
end select
else ...
select
end select
end if

Select
Case
select ...
case ...
end select
Case
if ... then
else
end if
end select


-Dorian
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top