Я предполагаю, что ElseIf rs1![UserName] <> rs2![UseName]
- это опечатка во втором имени поля.
Это вызвано тем, как вы вложили свои циклы.
Что вы делаете для каждой записи в первом наборе записей, проходя через весь второй набор записей, делая правки на каждом шаге l oop на основе соответствия двух полей. Следовательно, последнее редактирование для каждой записи в первом наборе записей происходит при сравнении с последней записью во втором наборе записей.
Почти наверняка есть лучший способ сделать то, что вы пытаетесь здесь достичь, но недостаточно информации, чтобы оказать дополнительную помощь.
EDIT
Вместо того, чтобы зацикливать наборы записей, будет быстрее выполнить два оператора SQL:
Currentdb.Execute "UPDATE tblFunding SET Payment=0;"
Currentdb.Execute "UPDATE tblFunding AS F INNER JOIN tblUsers AS U ON F.UserName=U.UserName SET F.Payment=U.Payment;"
С уважением,