Simple OR logic wont work (1 Viewer)

johnkrytus

Registered User.
Local time
Today, 18:14
Joined
Mar 7, 2013
Messages
91
Why won't this work?
It works with without the 'or' but with it, it just gets ignored.

Code:
If rs!TermsID <> (4 Or 3) Then
 

Alansidman

AWF VIP
Local time
Today, 17:14
Joined
Jul 31, 2008
Messages
1,493
Try this:
Code:
If rs!TermsID <> 4 Or rs!Terms <> 3 Then
 

johnkrytus

Registered User.
Local time
Today, 18:14
Joined
Mar 7, 2013
Messages
91
Tried that first.....no go.
Here's the whole thing:

Code:
Private Sub b_PrintWorkOrder_Click()
    Me.Requery
    Dim CreditCheckQry As String
    Dim TermsDatedQry As String
    Dim strCompany_id As Integer
    Dim stlinkCriteria As String

    strCompany_id = [Forms]![People_Enter]![People_Enter_Assignments].Form!company_id
    CreditCheckQry = "SELECT TermsID FROM companies WHERE company_id = " & strCompany_id
    TermsDatedQry = "SELECT TermsDate FROM companies WHERE company_id = " & strCompany_id
    
    Dim dbCreditCheck As dao.Database
    Dim rsCreditCheck As dao.Recordset
    Set dbCreditCheck = CurrentDb()
    Set rsCreditCheck = dbCreditCheck.OpenRecordset(CreditCheckQry, dbOpenDynaset)
    
    Dim dbTermsDated As dao.Database
    Dim rsTermsDated As dao.Recordset
    Set dbTermsDated = CurrentDb()
    Set rsTermsDated = dbTermsDated.OpenRecordset(TermsDatedQry, dbOpenDynaset)
    
    If rsTermsDated!TermsDate <> "" Then
        If rsCreditCheck!TermsID <> 3 Or rsCreditCheck!TermsID <> 4 Then
            stlinkCriteria = "[EntryId]=" & [Forms]![People_Enter]![People_Enter_Assignments].Form!EntryId
            DoCmd.OpenReport "WorkOrder", acPreview, , stlinkCriteria
            DoCmd.Close acForm, "People_Enter"
        Else
          MsgBox "This account appears to have terms, however it is not open"
        End If
    Else
      MsgBox "It appears that there are no terms on file"
    End If
    
    rsCreditCheck.Close
    rsTermsDated.Close
    Set rsTermsDated = Nothing
    Set dbTermsDated = Nothing
    Set rsCreditCheck = Nothing
    Set dbCreditCheck = Nothing
End Sub
 

johnkrytus

Registered User.
Local time
Today, 18:14
Joined
Mar 7, 2013
Messages
91
I tried it ..because you suggested it. But no, an AND does not work. How could it? It would be impossible to ever have that condition.
 

plog

Banishment Pending
Local time
Today, 17:14
Joined
May 11, 2011
Messages
11,653
It would be impossible to ever have that condition.

Incorrect. It would be impossible to not meet your criteria:

If X <> 3 Or X <> 4

Run these 3 values for X:

X=2-> True because X<>3
X=3-> True because X<>4
X=4-> True because X<>3

Your statement will always evaluate to true. Now test Alan's:

If X <> 3 AND X <> 4
X=2-> True because X<>3 is true AND X<>4 is true
X=3-> False because X<>3 is False
X=4-> False because X<>4 is False

AND means all conditions are met, OR means just one.
 

johnkrytus

Registered User.
Local time
Today, 18:14
Joined
Mar 7, 2013
Messages
91
It hurts my pride (just a little) to be wrong on something such as this––but of course you are right....and nonetheless it feels good to have solved it.

I switched it around

Code:
    If rsTermsDated!TermsDate <> "" Then
        If rsCreditCheck!TermsID = 4 Or rsCreditCheck!TermsID = 3 Or rsCreditCheck!TermsID = 14 Then
            MsgBox "This account appears to have terms, however it is not an open account"
        Else
            stlinkCriteria = "[EntryId]=" & [Forms]![People_Enter]![People_Enter_Assignments].Form!EntryId
            DoCmd.OpenReport "WorkOrder", acPreview, , stlinkCriteria
            DoCmd.Close acForm, "People_Enter"
        End If
    Else
      MsgBox "It appears that there are no terms on file"
    End If

Thank you for your help :D
 

Users who are viewing this thread

Top Bottom