So you can better understand what CJ_London was posting about,
ANY time you pass a value inside quotes or any time you tell something to be returned in quotes, ACCESS treats it as a text value, not numeric.
As such, when you have
ACCESS us looking for the literal text "Yes" inside your [Successful] field and returning either the character "1" or the Character "0". To get ACCESS to check the field [Successful] for the value of Yes (value -1) and return a number you would need to change it to be
Yes: IIF([Successful] = True, 1, 0)
This is one piece that I think was giving you some issues.