** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Borrar contenido campo tabla
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoBorrar contenido campo tabla

 Responder Responder
Autor
Mensaje
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1759
Enlace directo a este mensaje Tema: Borrar contenido campo tabla
    Enviado: 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.


Editado por Nomada - 20/Noviembre/2019 a las 18:55
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6521
Enlace directo a este mensaje Enviado: 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))

Editado por mounir - 20/Noviembre/2019 a las 23:27
Un Saludo.
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1759
Enlace directo a este mensaje Enviado: 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.


Editado por Nomada - 21/Noviembre/2019 a las 11:15
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 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

Mi web
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1759
Enlace directo a este mensaje Enviado: 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?


Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6521
Enlace directo a este mensaje Enviado: 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.
Arriba
Nomada Ver desplegable
Colaborador
Colaborador


Unido: 03/Julio/2011
Localización: España
Estado: Sin conexión
Puntos: 1759
Enlace directo a este mensaje Enviado: 21/Noviembre/2019 a las 14:25
Ahora sí. Perfecto.
Gracias Mounir por tu tiempo.
Este hilo se puede cerrar satisfactoriamente.

Saludos a todos.

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable