Problema con actualizacion: update inner join

14/10/2010 - 15:10 por Javier Garcia | Informe spam
Buenas.

Tengo una consulta que debe actualizar varios campos de una tablaA a
una tablaB, es decir, actualiza los datos de TablaB con los contenidos
en TablaA. Uso access 2003 y la consulta es la siguiente:

strsql = "UPDATE " & var_path & ".información INNER
JOIN información2 ON información.cedula = "
strsql = strsql & "información2.cedula SET "
strsql = strsql & "información.[codunifun]información2.[codunifun], "
strsql = strsql & "información.[codcargo]=información2.
[codcargo], "
strsql = strsql & "información.[suelbas]=información2.
[suelbas], "
strsql = strsql & "información.[compen]=información2.
[compen], "
strsql = strsql & "información.[subsi]=información2.
[subsi], "
strsql = strsql & "información.[primas]=información2.
[primas] "
strsql = strsql & "WHERE (Información.año='" &
[st_año1] & "') AND "
strsql = strsql & "(Información.mes='" & [st_mes1] &
"') AND "
strsql = strsql & "(Información.codcate='" &
[st_categoria1] & "') AND "
strsql = strsql & "(Información.nomi='" &
[st_quincena1] & "');"
DoCmd.RunSQL strsql
El caso es que me hace la modificación de los campos con cambios, es
decir, si cambio el sueldo ella lo actualiza en la tabla información2.
Pero al realizarla varias veces, comienza a reemplazarme los datos con
valores erroneos, como cero (0) en el sueldo, compensacion u otros.

A que se puede atribuir esta falla?. He chequeado los valores y en el
origen son correctos. los valores de las variables del where las
obtiene del formulario.

Agradezco si alguien me puede orientar. Gracias
 

Leer las respuestas

#1 José Mª Fueyo
15/10/2010 - 09:41 | Informe spam
Hola
Sín tener a la vista ni la base de datos ni el procedimiento, poco te
puedo decir. Tiene la pinta de que es una actualización que ejecutas
dentro de un ciclo. Lo mejor que puedes hacer es comprobar que al
inicio de cada ciclo las variables que uses para pasar los datos,
estén inicializadas a cero o a "", o inclusive a nulo.
Ejecuta el proceso paso a paso, poniendo un punto de interrupción por
ejemplo justo después de componer la sentencia SQL, y comprueba como
es y los valores de las variables que usar en la asignación. de
valores.

Suerte
José Mª Fueyo
[MS MVP Access]

Preguntas similares