Access: Resolver conflicto de escritura en tabla vinculada a SQL Server

Estándar

Trabajando con SQL Server es común programar una interfaz en Access dadas las posibilidades de hacer una aplicación en poco tiempo y con opciones suficientes para un amplio perfil de usuarios.

Al trabajar en Access sobre SQL Server siempre es interesante el hacerlo sobre tablas vinculadas y aunque no suelen dar problemas de vez en cuando surge el famoso conflicto de escritura, desde Damoin os ofrecemos dos posibles causas y opciones para resolver este problema.

Causa 1: Campos tipo bit no inicializados. En este caso el problema surge al introducir un campo bit en la tabla sql server y vincularlo en Access sin haberle puesto un valor predeterminado a 0 ó 1. En el caso de una tabla vacia el problema surgira el intertar meter cualquier registro y en el caso de una tabla ya usada anteriormente el error dara tanto en inserciones como en updates, tiene sentido ya que Access necesita mostrar un valor para ese campo y SQL no se lo puede dar (no lo tiene) con lo que intenta escribir los dos valores al mismo tiempo.

Solución: Asignarle un valor predeterminado al campo bit , hacer en SQL Server un UPDATE a toda la tabla con el valor que queramos(0/1) y por último volver a vincular la tabla o actualizar la vinculación desde Herramientas>>Administrador de tablas vinculadas.

Causa 2: Tablas con campos float ,real, decimal, etc con valores dependientes de formulas. Este es un error menos común que el anterior pero puede ocurrir.

El caso típico es el de una aplicación de gestión donde existe un campo calculado (cantidad*precio), al intentar escribir en otro campo del registro nos da el conflicto de escritura, en este caso dado que el campo calculado recoge el valor posteriormente al update si intentamos registrar cambios en otro campo access no sabe cual ha sido la primera modificacion.

Solución: Crear en la tabla afectada un campo de tipo TIMESTAMP, entendemos que este campo almacena información sobre el momento de la ultima actualización para evitar colisiones y detectar precisamente conflictos de escritura. Despues de crear el campo hay que actualizar la informacion de la tabla vinculada o volver a vincularla.

Dejad un comentario para saber si os ha servido de ayuda.