New line on IF Statement

Oreynolds

Member
Local time
Today, 18:35
Joined
Apr 11, 2020
Messages
166
Hi, I am trying to split this long IF statment up across two lines so its not on one huge long line but it won't let me, what am I doing wrong?!

Thanks

Code:
If Me.Chk2Discipline = True And Me.Chk3Discipline = True And Me.Chk4Discipline = True And Me.Chk5Discipline = True And Me.Chk6Discipline = True And Me.Chk7Discipline = True & _
   And Me.Chk8Discipline = True And Me.Chk9Discipline = True And Me.Chk10Discipline = True And Me.Chk11Discipline = True And Me.Chk12Discipline = True And Me.Chk13Discipline = True Then
   Me.Chk1Discipline = True
   Me.txtCriteria1Discipline = 1
   End If
 
Don't think you need the & symbol.
 
As already mentioned in #2 without &, as no string is to be linked
Code:
If Me.Chk2Discipline = True And Me.Chk3Discipline = True And Me.Chk4Discipline = True _
            And Me.Chk5Discipline = True And Me.Chk6Discipline = True And Me.Chk7Discipline = True _
            And Me.Chk8Discipline = True And Me.Chk9Discipline = True And Me.Chk10Discipline = True _
            And Me.Chk11Discipline = True And Me.Chk12Discipline = True And Me.Chk13Discipline = True Then
      Me.Chk1Discipline = True
      Me.txtCriteria1Discipline = 1
   End If


Or:
Code:
   Dim ChkDis1 As Boolean
   Dim i As Long
 
   For i = 2 To 13
      ChkDis1 = Me.Controls("Chk" & i & "Discipline")
      If Not ChkDis1 Then
         Exit For
      End If
   Next
 
   Me.Chk1Discipline = ChkDis1
   If ChkDis1 Then
      Me.txtCriteria1Discipline = 1
   End If
;)
 
Multiple similar name fields/controls for same kind of data indicates a non-normalized structure. If you want to provide db for analysis, follow instructions at bottom of my post.
 
Last edited:
You also don't have to compare a boolean to True or False in order to determine if it is True or False, since, as a boolean, it is already True or False. As a result you can do....
Code:
Me.Chk1Discipline = Me.Chk2Discipline And Me.Chk3Discipline And Me.Chk4Discipline ...
 
Also, appears you are saving this calculated value to field. That is not necessary as this can be calculated when needed. It is often bad idea to save calculated value.

Why is Chk1Discipline dependent on other 12 Discipline fields? And why do you then populate another field to a number value?
Code:
With Me
If .Chk2Discipline And .Chk3Discipline And.Chk4Discipline And .Chk5Discipline And .Chk6Discipline _
            And .Chk7Discipline And .Chk8Discipline And .Chk9Discipline And .Chk10Discipline _
            And .Chk11Discipline And .Chk12Discipline And .Chk13Discipline Then
      .Chk1Discipline = True
      .txtCriteria1Discipline = 1
End If
End With
 
Last edited:
perhaps even simpler

Code:
With Me

    .Chk1Discipline= .Chk2Discipline And .Chk3Discipline And.Chk4Discipline And .Chk5Discipline And .Chk6Discipline _
            And .Chk7Discipline And .Chk8Discipline And .Chk9Discipline And .Chk10Discipline _
            And .Chk11Discipline And .Chk12Discipline And .Chk13Discipline
    
     if  .Chk1Discipline then  .txtCriteria1Discipline = 1

End With
 
Maybe no If Then at all:
Code:
With Me
    .Chk1Discipline = .Chk2Discipline And .Chk3Discipline And.Chk4Discipline And .Chk5Discipline And .Chk6Discipline _
            And .Chk7Discipline And .Chk8Discipline And .Chk9Discipline And .Chk10Discipline _
            And .Chk11Discipline And .Chk12Discipline And .Chk13Discipline
    .txtCriteria1Discipline = Abs(.Chk1Discipline)
End With
These fields are redundant.
 
another alternative
Code:
If (Me.Chk2Discipline + Me.Chk3Discipline + Me.Chk4Discipline + Me.Chk5Discipline + Me.Chk6Discipline + Me.Chk7Discipline + _
   Me.Chk8Discipline + Me.Chk9Discipline + Me.Chk10Discipline + Me.Chk11Discipline + Me.Chk12Discipline + Me.Chk13Discipline) = -12 Then
  
   Me.Chk1Discipline = True
   Me.txtCriteria1Discipline = 1
 

Users who are viewing this thread

Back
Top Bottom