Imprimir página | Cerrar ventana

Borrar contenido campo tabla

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84843
Fecha de impresión: 27/Marzo/2026 a las 02:09


Tema: Borrar contenido campo tabla
Publicado por: Nomada
Asunto: Borrar contenido campo tabla
Fecha de publicación: 20/Noviembre/2019 a las 18:14
Buenas.
Tengo un formulario continuo basado en la consulta de dos tablas, cuya relación es de uno a varios (T_Tabla1, T_Tabla2). Al insertar datos en la consulta en el campo Nombre de la T_Tabla2, hay un campo de la tabla T_Tabla1 AAA el cual toma el dato de un calculo. Este dato se repite en todos los registros relacionados, de ambas tablas, con el campo NumRegistro de la consulta. Hasta aquí todo normal.

Ejemplo:

T_Tabla1             T_Tabla1    T_Tabla2
NumRegistro        AAA           Nombre
0001                   48.8          Arsenio
0001                   48.8          Luis
0001                   48.8          Adolfo
0002                   35.0          Ernesto
0002                   35.0          Fabian

Ahora al borrar en la consulta, por ejemplo, todos los registros relacionados del número 0002, borra bien todos los registros en la consulta, quedando la consulta vacía. Es decir, borra todos los registros de la tabla T_Tabla2. Ahora si abro la tabla T_Tabla1, aparece un registro con NumRegistro 0002 donde sigue el valor 35.0 en el campo AAA. Este único registro 0002 de la tabla T_Tabla1 está correcto, pero cómo borraría el valor 35.0 del campo AAA desde el formulario en el que estoy?

Perdonar pero no se cómo explicarlo de otra forma.

Gracias y un saludo.



Respuestas:
Publicado por: mounir
Fecha de publicación: 20/Noviembre/2019 a las 23:25
Hola!

Una consulta de actualización te podría valer:-

UPDATE T_Tabla1 SET T_Tabla1.AAA = ""
WHERE (((T_Tabla1.NumRegistro)=0002));


Y si no hay mas que un registro no hace falta poner: WHERE (((T_Tabla1.NumRegistro)=0002))

-------------
Un Saludo.


Publicado por: Nomada
Fecha de publicación: 21/Noviembre/2019 a las 11:13
Gracias.
Mi problema es la sintaxis.
Escribiendo tal cual me dices, o todo en la misma línea me da error de sintaxis. Si separo el SET y el WHERE, uno en cada línea, me dice que no se ha definido Sub o Function.
Alguna sugerencia?

Aclarar que el campo AAA de la tabla T_Tabla1 es Numérico, Simple, 2 decimales.


Publicado por: xavi
Fecha de publicación: 21/Noviembre/2019 a las 11:30
¿Error de sintaxis?
¿Lo estás escribiendo tal cual en el código? 

Si es así (es lo que parece) no vamos bien. Debes meterlo todo en una cadena de texto u lanzar la consulta con DoCmd.RunSQL laconsulta o con CurrentDb.Execute laconsulta

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Nomada
Fecha de publicación: 21/Noviembre/2019 a las 13:41
Gracias xavi.
El problema lo daba el campo AAA, pues como dije es Numérico.
Ahora, con el código:
DoCmd.RunSQL "UPDATE T_Tabla1 SET T_Tabla1.AAA = Null WHERE T_Tabla1.NumRegistro = vNum"
funciona perfectamente, pero con el código:
CurrentDb.Execute "UPDATE T_Tabla1 SET T_Tabla1.AAA = Null WHERE T_Tabla1.NumRegistro= vNum"
me dice: "Pocos parámetros. Se esperaba 1
Ha que se refiere?




Publicado por: mounir
Fecha de publicación: 21/Noviembre/2019 a las 14:05
Hola!

Lo mas importante aquí es el campo NumRegistro que tiene toda la pinta de ser de tipo Texto por eso te falta comillas simples:-

CurrentDb.Execute "UPDATE T_Tabla1 SET T_Tabla1.AAA = Null WHERE T_Tabla1.NumRegistro= '" & vNum & "' "

-------------
Un Saludo.


Publicado por: Nomada
Fecha de publicación: 21/Noviembre/2019 a las 14:25
Ahora sí. Perfecto.
Gracias Mounir por tu tiempo.
Este hilo se puede cerrar satisfactoriamente.

Saludos a todos.




Imprimir página | Cerrar ventana