
I have found the cause of our issue. The ID column of our table is declared as an INT in SQL Server by the Access Migration Assistant tool. So, in the Access VBA code, the ADO Recordset is matching SQL Server with an Integer data type, which is VBA is limited to is limited to -32768 to +32767.
But, the values that have been migrated from Access to SQL Sever for this column are currently t 57566 which is too big for VBA Integer.
Solution: changed the SQL Server Identity column to be a BIGINT which meant the ADO recordset column became a LONG and now the code is working.