Actualizar tabla Access mediante Update

Tengo una tabla Control con los campos N (numérico) y DNI (texto). Otra tabla Usuarios con los mismos campos N (numérico) y DNI (texto). Valores de ejemplo:

Control:                                      Usuarios:

N        DNI                                   N        DNI 

1          1x                                    0         1x

1          1x                                    0         2x          

1          1x                                    0         3x                                     

2          2x

Es decir, en la tabla Control, los valores de N y DNI pueden repetirse, pero en la tabla Usuarios el DNI no se repite y N por defecto vale 0.

Pregunta: deseo actualizar los valores de N en Usuarios, conforme a los valores de N en la tabla Control, es decir, obtener:

Usuarios:

N       DNI

1        1x

2        2x

0        3x

Lo he intentado a través de una consulta SQL para aplicar en un DoCmd. RunSQL, pero me falla:

Update Usuarios SET Usuarios.N=(Select C.N from Control as C inner join Usuarios ON C.DNI=Usuarios.DNI group by C.N)

La consulta falla porque el Select devuelve un conjunto de valores en vez de uno solo, en el caso del ejemplo devuelve:

Control:

N

1

2

Agradecería toda ayuda (esta u otras formas para conseguir el objetivo).

1 respuesta

Respuesta
1

La sql sería:

UPDATE Usuarios INNER JOIN Control ON Usuarios.DNI = Control.DNI SET Usuarios.N = [control].[n]

Genial, muchas gracias. ¿Hay alguna diferencia en =[control].[n] que en =control.n? 

Un saludo.

Generalmente funcionan igual, pero hay veces que si pones en actualizar un campo sin [] lo toma como un texto y te actualiza "contro.n", para evitarlo se ponen los [] que es como se le dice que es el nombre de un campo o de una tabla, a veces no hace falta... pero nunca sobra.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas