Check and see if you selected "number" as your result type instead of "text". In a field of type number, you can enter either T or True and it evaluates as the number 1. In like manner, F or False evaluates as zero. Y, Yes, N, No evaluate similarly.
Seems like all the fields are TEXT, as well as the result of the calculation. Thanks for the heads up on the special letters of T, F, Y, N; it might bring us a little closer to unraveling this!
Your calculation has very tiny print so it's hard to read. I just took a closer look and an error in your calculation jumps out at me:
You are using this expression:
Last Name B xor First Name B = ""
This is incorrect syntax. It should be:
( Last Name B = "" ) xor (First Name B = "" )
While a I don't have time to explain, this does explain the odd results you were getting.
On a design note, what you show as a set of fields down the left hand side of your layout is most often better set up as a portal to a related table where each row of data is a different record in the related table.
Hello Mr. PhilModJunk:
I am truly grateful for your time. Unfortunately, your pointing out of my poor syntax has opened up a whole can of worms. Just fixing the XOR statements did not solve the "T, Y" problem. I will go with a fine-toothed comb over all the conditional statements, starting from scratch, if need be.
It did finally dawn on me that T and Y are Boolean for sort of the same thing — which might be a clue. Is it possible the conditionals "is not empty" or "is empty" are being evaluated as "T" or "Y", as in If(Last Name B ≠ "" ... )? I have no explicit conditionals seeking a Y or T. THANKS again!
If the field's value is null (no data of any kind) IsEmpty will return True--which is also the numeric value of 1. I have not at this time tried to examine your entire expression for additional issues so there could be any number of other problems. (Calc is very long and hard to read in your original post...)