Puede haber varias razones por las cuales el recordset no está actualizando los cambios en la tabla. Algunas posibles soluciones que puedes intentar son:
1. Verificar que los campos de la tabla y los campos del recordset sean idénticos en nombre, tipo de datos y orden. Si hay alguna discrepancia, puede que el recordset no esté actualizando correctamente los datos.
2. Verificar que los campos clave no estén nulos en la tabla y en el recordset. Si un campo clave está nulo, Access puede interpretar que se está tratando de agregar un registro nuevo en lugar de actualizar uno existente.
3. Verificar que el cursor del recordset esté en modo de actualización. Para ello, puedes verificar la propiedad RecordsetType del recordset y asegurarte de que esté establecida en dbOpenDynaset.
4. Verificar que el recordset tenga la propiedad AllowAddNew establecida en True y que la propiedad UpdateBatchSize esté establecida en un valor mayor que cero.
5. Verificar que la conexión a la base de datos esté abierta y que tenga los permisos necesarios para agregar y actualizar registros en la tabla.
Si ninguna de estas soluciones funciona, es posible que el problema esté relacionado con la versión de Access que estás utilizando. En ese caso, puedes intentar actualizar a una versión más reciente o buscar información específica sobre problemas de compatibilidad entre la versión de Access y el controlador ODBC que estás utilizando.