user3245694
user3245694

Reputation: 1

Multiple if statements in a for loop

Help please, below is my code in Visual Basic.

My for loop does not go to the second if condition. It just checks for the first one. What am I missing here?

Thanks!

If Not dsMarketingOrdIDs Is Nothing Then
    For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
        If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 Then
            If Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") Then
                blnKbAuthorXtremeSupport = True
            End If
            If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152 Then
                If Not objALUtil.CheckPermission("KBAUTHORXTREMEPORTAL") Then
                    blnKbAuthorXtremePortal = True

                End If
            End If
        End If
    Next
End If

Upvotes: 0

Views: 80

Answers (2)

chonerman
chonerman

Reputation: 135

Have you tried an else if?

If Not dsMarketingOrdIDs Is Nothing Then
    For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
        If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 Then
            If Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") Then
                blnKbAuthorXtremeSupport = True
            Else If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152 Then
                If Not objALUtil.CheckPermission("KBAUTHORXTREMEPORTAL") Then
                    blnKbAuthorXtremePortal = True
                End If
            End If
        End If
    Next
End If

Also, how can your MARKETING_ORG_ID be 5 and 152 at once??

dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5

dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152

Upvotes: 0

MarcinJuraszek
MarcinJuraszek

Reputation: 125630

Should be something like that:

If Not dsMarketingOrdIDs Is Nothing Then
    For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
        If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 Then
            If Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") Then
                blnKbAuthorXtremeSupport = True
            End If
        End If
        If dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152 Then
            If Not objALUtil.CheckPermission("KBAUTHORXTREMEPORTAL") Then
                blnKbAuthorXtremePortal = True
            End If
        End If
    Next
End If

Or even easier:

If Not dsMarketingOrdIDs Is Nothing Then
    For i = 0 To dsMarketingOrdIDs.Tables(0).Rows.Count - 1
        blnKbAuthorXtremePortal = Not objALUtil.CheckPermission("KBAUTHORXTREMESUPPORT") _
            AndAlso (dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 5 OrElse dtMarketingOrdIDs.Rows(i)("marketing_org_id") = 152)
    Next
End If

Upvotes: 1

Related Questions