I'm trying to set the value of the field p_person as 1 when the bbp.ind=Y
.
SqlStmt = "UPDATE person " & _
" SET p_person = 1 " & _
" FROM Person p INNER JOIN " & PersonTableName &
" bbp ON p.personID = bbp.personID " & _
" WHERE bbp.ind = 'Y' " & BBPersonsManual_Filter_and
SqlConn.Execute SqlStmt, RecordsAffected
LogRecords "Update p_person", Str(RecordsAffected)
Instead of 1, the value is being defined as -1 when the value of the bbp.ind=Y
.
How can I solve this?
CodePudding user response:
If this is a Boolean column, then 0 will be interpreted as False
and any value unequal 0 will be treated as True
. The standard value for True
is -1
in an Access table.
So, this behavior is expected. When you test the value of a Boolean column (a Yes/No column) don't test p_person = 1
or p_person <> 1
. Instead test p_person <> 0
or p_person = 0
. Like this it does not matter whether there is 1
or -1
in the column.