Conseguir desclicar un campo si/no

HOla tengo un problemilla tengo un formulario basado en una consulta con un campo si/no en concreto el campo se llama pendiente y lo que necesito es desde el formulario al hacer clic conseguir que el campo se ponga en "no" porque de entrada ese campo esta de modo predeterminado en la opción "si".
Al tratar de hacer clic me pone que no se puede editar el recordset abajo a la izda
1

1 Respuesta

165.775 pts. Más de 35 años en la informática y más de 20 trabajando...
El problema que estás encontrando se debe a que la consulta en la que se basa el formulario no es una consulta actualizable.
Esto suele ocurrir porque juntas dos tablas con opciones como el "Left" o "Right" JOIN, porque la consulta tiene campos calculados o que las relaciones entre tablas no están definidas a través de índices.
Sea lo que sea todo tiene solución.
En principio te diría que la solución más rápida sería definir las claves e índices sobre las tablas que entran en la consulta para ver si así la consulta permite las modificaciones.
En caso de no permitirlas tendremos que poner un poquito código.
Para hacer lo que quieres vía código necesitamos que los campos clave de la tabla que contiene el campo si/no estén en la consulta y el formulario (en este último podrían estar ocultos).
Aquí empiezo a inventarme las tablas y campos porque tu no has contado cuales son. Supongamos que tienes 2 tablas (artículos y precios). La primera tiene 3 campos: codigoArticulo, nombreArticulo y snDisponible siendo este último el del tipo si/no. En la segunda tabla tendremos los campos: codigoArticulo y precioArticulo.
Tu consulta sería algo así:
select articulos.codigoArticulo,articulos.nombreArticulo,articulos.snDisponible,precios.precioArticulo from articulos inner join precios on articulos.codigoArticulo=precios.codigoArticulo
(Espero no haberme equivocado al escribir porque no es fácil sin probarlo).
Bien, en tu formulario tendrás el campo codigoArticulo y snDisponible, entre otros.
Lo que tienes que hacer es que cuando cambie de valor 'snDisponible' se actualice la tabla por fuera. Para ello, en las propiedades puedes poner que en el evento 'al Cambiar' te ejecute el siguiente código:
docmd.setwarnings false
if me.snDisponible then
    docmd.runsql "update articulos set snDisponible=true"
  else
    docmd.runsql "update articulos set snDisponible=false
end if
docmd.setwarnings true

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas