If I replace payees_W_cats::Wherepayees with text = to BankData::BankPayee the statement works. Somewhere I must not be looking at Payees_W_cats.
Second Question: How do I update the BankReportingData fields for records and not just one at a time?
It sounds like Payees_W_cats is the child table and that you have more than one child record which matches your parent table (BankData). Since you are in BankData table and you are looking to the Payees_W_cats table, you can only ever see the FIRST related record. This suggests that your first related record doesn't match so you get ooops. But if you replace the data in that first record, it then works.
Is there more than one related Payees_W_cats record for this parent BankData record?
UPDATE: You can update the BankReportingData field en masse by using Replace Field Contents w/calculated result used in your script (place cursor in field first) and be sure to back up before running it. If this solution is served, run it when nobody is in the system so you won't risk record locking issues.