¿Cómo desactivar un campo (casilla de verificación) de una tabla en forma automática en access 2010?

Tengo un formulario que selecciona varios registros de una tabla a través de un campo(Imprimir) con una casilla de verificación y luego emite un reporte, lo que quiero es que después de ver el informe o reporte, se desactiven automáticamente ese campo(Imprimir) en todos esos registros seleccionados para evitar que ya estén marcados en la próxima selección.

2 respuestas

Respuesta
2

Vamos a suponer que tienes una tabla, formulario e informe Clientes

Vamos a suponer que en el formulario tienes un botón Abrir Informe y vamos a suponer quela instrucción que tienes puesta es

DoCmd.OpenReport "clientes", acPreview, , "imprimir=true"
DoCmd. Close acForm, "clientes"

Con lo cual se abrirá el informe con aquellos registros que tengan la casilla imprimir marcada.

Luego en el evento al cerrar el informe puedes poner, por ejemplo

DoCmd.SetWarnings False
DoCmd.RunSQL "update clientes set imprimir=0 where imprimir=-1"
DoCmd. OpenForm "clientes"

O sea, actualiza la tabla clientes poniendo el valor false en aquellas casilla en que tengan el valor True( que es lo mismo que -1)

Buenos Días Icu, Gracias por tu oportuna respuesta, todo bien, solo que al momento de cerrar el formulario me da error donde no reconoce el UPDATE, a continuación te indico los nombres asignados para:

Tabla = Tabla Principal

Formulario =seleccion de Materiales

Informe = Costos Materiales

Consulta = Consulta Costos Materiales

Agradezco puedas reescribir las instrucciones para completar tu valiosa ayuda.. Gracias

El problema de usar nombre separados( que nunca uso y además desaconsejo su uso) tanto para campos como para controles es que en el código de VB tienes que encerrar el nombre entre corchetes, por ejemplo

Docmd.runsql"update [tabla principal] ....

De todas formas, si quieres, repito, si quieres, mándame una copia con dos o tres registros inventados y le echo un ojo. Mi correo es [email protected] Si lo haces, en el asunto del mensaje pon tu alias José García, ya que si no sé quien me escribe ni los abro.

Respuesta
1

La respuesta que tan en es correcta pero veo que no necesitas cerrar el formulario desde el cual activas el reporte, en mi caso prefiero ocultarlo al activar el reporte y refrescarlo, algo como:

Supongamos que el reporte y el formulario se llaman clientes, en éste creamos el evento Al Abrir y el evento Al Cerrar adicionamos las siguientes líneas:

Sub Open(Cancel AS booleam)

Forms!clientes.visible=False

end sub

Y en el evento Al Cerrar el reporte vuelves a activar el formulario clientes y lo actualizas, algo como:

DoCmd.SetWarnings False
DoCmd.RunSQL "update clientes set imprimir=0 where imprimir=-1"

Forms!clientes.visible=True

Forms! Clientes. Requery

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas