** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Actualizar Campo SI/NO
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Actualizar Campo SI/NO

 Responder Responder
Autor
Mensaje
principiante_access Ver desplegable
Nuevo
Nuevo


Unido: 20/Junio/2018
Localización: madrid
Estado: Sin conexión
Puntos: 8
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita principiante_access Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Actualizar Campo SI/NO
    Enviado: 11/Mayo/2022 a las 18:41
Hola, tengo dos tablas en una tengo un campo SI/NO.  Lo que quiero conseguir es que en función a otra tabla recorra una columna y si encuentra algún valor distinto de nulo me la deje a NO Y si esta a 0 me la ponga a SI. Gracias de antemano
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliove Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Mayo/2022 a las 21:33
De seguro hay varias formas de hacerlo, pero creo que te falta información.

Saludos.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Mayo/2022 a las 21:57
Hola!

Con una consulta de actualización y el criterio que quieras (<> 0 ó = 0) haces una cosa o otra.
Un Saludo.
Arriba
principiante_access Ver desplegable
Nuevo
Nuevo


Unido: 20/Junio/2018
Localización: madrid
Estado: Sin conexión
Puntos: 8
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita principiante_access Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Mayo/2022 a las 22:25
Con una consulta de actualización no puedo hacerlo, porque si en la primera tabla la consulta me sale en vacio, ya que cumple que la diferencia en 0, no puedo enlazarlo y por lo tanto actualizar el check de validado a SI. No se me ocurre la forma de hacerlo...
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Mayo/2022 a las 10:00
Hola!

No es complicado, deja el boton Sí/No como prederminado en Sí (No hay registro), en formulario con una función que calcula el registro en la tabla, si es cero sales y sí es <>0 ejecutas la consulta de actualización.
Un Saludo.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Mayo/2022 a las 11:47
Estoy con Emilio: un poco más de información (algun dato de ejemplo) ayudaría a ajustar la respuesta. 

Yo te podría dar dos o tres ideas pero dependerá de los datos y sus tipos.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
principiante_access Ver desplegable
Nuevo
Nuevo


Unido: 20/Junio/2018
Localización: madrid
Estado: Sin conexión
Puntos: 8
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita principiante_access Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Mayo/2022 a las 09:53
  tabla1
a 100 80 20
b 40 30 10
c 10 10 0
caso1
  tabla de validación
tabla1  campo si/No no  
  tabla1
a 100 100 0
b 40 40 0
c 10 10 0
caso2
  tabla de validación  
tabla2 campo si/No si  

Lo que quiero es hacer una consulta que recorra la tabla1 desde la tabla de validaciones. En caso de que la diferencia sea = a 0 me actualice el campo SI/NO a SI. En caso de que la tabla1 tengo una diferencia <> 0 me actualice el campo SI/NO a NO. No se como hacerlo a traves de un formulario. Tampoco que función hay que usar para recorrer la tabla. Si necesitas algun codigo en VBA. Estoy un poco perdido... 
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Mayo/2022 a las 23:05
No se si lo acabo de pillar pero ahí va.

Suponiendo que tienes un campo en la tabla dónde se almacena la diferencia puedes realizar una suma de ese campo y evaluar el resultado. Si es igual a 0, marcas el registro

Puedes actualizar mediante recordset (no te escribo to do lo previo):
TablaValidacion!CampoValidacion = (DSum("CampoDiferencia", "Tabla1") = 0)

O mediante consulta de actualización:
CurrentDb.Execute "UPDATE Tabla1 SET CampoValidacion = " & (DSum("CampoDiferencia", "Tabla1") = 0)

En caso de no tener ese campo de diferencia podrias abrir un recordset sobre la tabla1 y recorrer la tabla. En cada registro evaluas la diferencia. Al primer registro que sea <> 0 ya puedes marcar el registro de validación como False y salir del proceso. Si finalizas todos los registros sin encontrar una diferencia <> 0  es cuando puedes marcar como True.
Esta técnica te vale tanto si tienes el campo de diferencias como si no lo tienes.

En cualquiera de los 2 casos se puede añadir condiciones si hay que acotar la cantidad de registros a evaluar.

Un saludo




Editado por xavi - 17/Mayo/2022 a las 23:06
Xavi, un minyó de Terrassa

Mi web
Arriba
principiante_access Ver desplegable
Nuevo
Nuevo


Unido: 20/Junio/2018
Localización: madrid
Estado: Sin conexión
Puntos: 8
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita principiante_access Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 24/Mayo/2022 a las 12:39
Estoy un poco pez en esto. Estoy intentando crear un recordset pero no se muy bien como funciona la sintaxis. La lógica es dejar campo CUMPLE(SI(/NO) TRUE por defecto en la TABLA MAESTRO DE VALIDACIONES y después crear el siguiente código:

Option Compare Database
Option Explicit



Sub conecta_actual()

Dim miconexion As New Connection

Set miconexion = CurrentProject.Connection

Dim instruccion As String
Dim instruccion2 As String
instruccion = "SELECT * FROM CUADRE_IMPORTES_GENERALES_CDM"
instruccion2 = "SELECT * FROM MAESTRO_VALIDACIONES"
Dim mirecordset As New Recordset
mirecordset.Open instruccion, instruccion2, miconexion

Do Until mirecordset.EOF

If mirecordset.dif = 0 Then

mirecordset.MoveNext ELSE
 
Update INSTRUCCION2 SET cumple(si/no) = FALSE where indice=12

Loop

mirecordset.Close
Set mirecordset = Nothing
miconexion.Close
Set miconexion = Nothing

End Sub

Lo que paso no tengo mucha idea de como se implementar el código en VBA. Si alguien me puede ayudar. Muchas gracias de antemano.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable