Hola!
Te explico una manera de hacerlo. Como no sé ni la estructura de tu tabla ni la estructura de tu código te lo voy a poner un poco en abstracto y sobre unos supuestos.
El primer supuesto es que existe un campo identificador de registro, para saber a qué registro corresponde el error. A ese campo lo llamaré Id
Te pondré un ejemplo sobre el error 94, que es el uso no válido de null. Eso implica que, en el ejemplo, el campo [Valor] de la tabla auxiliar (lo explico más adelante) no contendría valor para este ejemplo, pero te serviría para situar el valor del campo incorrecto para otro tipo de error.
Lo que tienes que hacer es lo siguiente:
- Te creas una tabla auxiliar, que yo llamaré TAux, con cuatro campos:
[Id] - Numérico
[Valor]->Texto
[NError]->Numérico
[DError]->Texto
Al inicio de tu código escribes un control de errores y una ejecución de SQL
...
On error goto sol_err
docmd.setwarnings false
docmd.runSql("DELETE FROM TAux")
docmd.setwarnings true
....
Eso te borra toda la información que pudiera haber en TAux.
A continuación te creas un recordset sobre TAux, así:
...
Dim rstAux as DAO.Recordset
Set rstAux=currentdb.openrecordset("TAux",dbOpenTable)
...
A partir de aquí vendría tu código.
En tu código, justo antes de la línea de código que mueve tu recordset al registro siguiente, le plantas la etiqueta Siguiente: Por ejemplo, si tu recorset se llama rst escribirías (importante ponerle los dos puntos al final de la etiqueta)
Siguiente:
rst.Movenext
Cuando acaba tu código le escribes un EXIT SUB
Debajo del EXIT SUB escribes (de nuevo, ojo con los dos puntos al final de la etiqueta):
Exit Sub
sol_err:
SELECT CASE err.number
CASE 94
rstAux.addnew
rstAux.fields(0).value=rst.Fields("IdentificadorDeTuTabla").value
rstAux.fields(1).value=rst.Fields("CampoConflictivo").value
rstAux.fields(2).value=err.number
rstAux.fields(3).value=err.description
rstAux.update
'Case otro número de error. Copias lo anterior (en negrita)
'Y todos los case como errores quieras gestionar
END SELECT
Goto Siguiente:
End Sub
Bueno... Te lo he escrito de cabeza y espero que no haya ningún error de sintaxis.
A ver si te funciona.
Un saludo,
http://neckkito.siliconproject.com.ar