This is how I would structure the code:
Code:
Private Sub Command2_Click()
With DoCmd
If (Me.ID = "160" Or Me.ID = "161" Or Me.ID = "162") Then
If Me.Humidity = True Then
If Me.Temp = True Then
' I prefer to use the Execute Method
' CurrentDb.Execute "qrymakecaldata", dbFailOnError
' CurrentDb.Execute "qrymakecaldata2", dbFailOnError
' CurrentDb.Execute "qrymakecaldatatemp", dbFailOnError
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecaldata2"
.OpenQuery "qrymakecaldatatemp"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresultsmulti"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("TRUE TRUE ID")
Else
' Me.Temp = False
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecaldata2"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresultsmulti"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("TRUE FALSE ID")
End If 'Me.Temp
Else
' If Me.Humidity = False
If Me.Temp = True Then
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecaldatatemp"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresultsmulti"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("FALSE TRUE ID")
Else
' Me.Temp = False
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresultsmulti"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("FALSE FALSE ID")
End If 'Me.Temp
End If 'Me.Humidity
Else
' Not (Me.ID = "160" Or Me.ID = "161" Or Me.ID = "162")
If Me.Humidity = True Then
If Me.Temp = True Then
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecaldata2"
.OpenQuery "qrymakecaldatatemp"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresults2"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("TRUE TRUE NOT ID")
Else
' Me.Temp = False
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecaldata2"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresults2"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("TRUE FALSE NOT ID")
End If ' Me.Temp
Else
' Me.Humidity = False
If Me.Temp = True Then
.SetWarnings False
.OpenQuery "qrymakecaldata"
.OpenQuery "qrymakecaldatatemp"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresults2"
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("FALSE TRUE NOT ID")
Else
' Me.Temp = False
.SetWarnings False
.OpenQuery "qrymakecaldata"
'.OpenQuery "qrymakecalref"
.SetWarnings True
.OpenForm "frmcalresults" '<< shouldn't this be "frmcalresults2" ???
.SelectObject acForm, "frmmakecaldata"
.Minimize
MsgBox ("FALSE FALSE NOT ID")
End If 'Me.Temp
End If 'Me.Humidity
End If 'Me.ID
End With 'Docmd
End Sub
There is more that can be done to reduce duplication of commands. For example, these two lines are in every IF() block (8 places = 16 lines):
Code:
.SelectObject acForm, "frmmakecaldata"
.Minimize
They could all be deleted from the IF() blocks and moved to just above the "END SUB" line (1 place = 2 lines).
Just my $0.02