¿Cómo activo todos los checkbox en un formulario?

Bueno os pongo en situación con un ejemplo simple.
Tengo una tabla "TABLA" con 10 campos. Uno de ellos es un checkbox que me dice si una línea (registro) está completado o no. (Lo uso para filtrar por él y que el form solo me muestre los no completados)
El caso es que he automatizado todo para acabar con todas las líneas en un solo proceso e ir checkbox a checkbox clicando es arduo. Pero no encuentro la manera de colocar un botón que me active todos los checkbox del formulario activo (y filtrado).
El checkbox se llama "Archivar" y mi idea es colocar un botón en el pié del formulario que al pulsarlo me active todos los checkbox mostrados en el formulario. (Un checkbox sólo por registro).
¿Alguna idea?

1 respuesta

Respuesta
1
No sé bien como lo tienes planteado, pero si tienes un proceso para acabar con todas las lineas ¿por que en ese proceso no pones también el campo sí/no = true
Si lo que quieres es hacerlo después de ver en el formulario que todas las filas están completas, puedes poner, en un botón, una consulta:
Docmd.RunSql "Update Nombredelatabla Set Archivar=true where..... la condición que pongas en el formulario"
Me cuentas.
Se me olvidaba: en la anterior pregunta, al intentar entrar en la otra pregunta que pones, me da error del servidor.
Te voy a poner una imagen, porque una imagen vale más que mil palabras y aparte el funcionamiento.

Utilizamos la bd en red para llevar un seguimiento del material que tenemos que pedir a fábrica. Entonces apuntamos ahí lo que hay que pedir, que se queda almacenado todo en la Tabla General.
El form que se vé en la imagen filtra la tabla General para que solo muestre los registros no pedidos. Cuando hacemos el pedido, pedimos todos los registros al mismo tiempo pero claro luego ir chequeándolos de uno en uno es un coñazo sobre todo los días que tenemos 100 líneas.
Entonces, tengo un botón en el pié del form, que no se vé en la imagen, que me guarda un informe en .rtf (por normativas de calidad ISO). Antes tenia puesto una sentencia que primero me guardaba la tabla general como "dd/mm/aa" y me borraba todos los registros. Que pasa, que se me hace demasiado engorroso tener 200 tablas una por cada día del año (de ahí lo de unir las tablas). Entonces decidí dejar todos los reg. en la tabla General y filtrar los que NO estaban pedidos y saqué lo del checkbox. Y esto será más productivo para luego realizar un análisis correcto.
Después de enrollarme tanto, (lo siento muchísimo de veras) te digo mi idea y si tienes alguna mejor, pues soy todo oídos.
- En el botón que me exporta a rtf añadir luego la sentencia que me active todos los checkbox y luego otra que me refresque el form para que desaparezcan los ya pedidos.
Creo que lo mejor sería tener un histórico, pero en vez de un histórico por día un histórico general con un campo fecha, que sería la fecha que antes utilizabas para crear la tabla.
Es decir, hago el pedido ---> paso los registros al histórico ---> actualizo el campo fecha de ese histórico con la fecha del día ---> borro los registros del pendiente.
Si no quieres tener un histórico, actualizas el campo sí/no a True:
Hago el pedido ---> actualizo el campo a True ---> refresco el formulario con Me. Refresh
Me cuentas.
Muchas gracias por tu interés.
El problema es que no hacemos el pedido a ultima hora del día (por lo que lo tendría muy fácil añadiéndole un filtro de fecha) sino que se hace a mitad del día con lo que hay registros del día -1 y registros del día actual. Pero claro, estos registros del día actual... Bueno ¿Se puede filtrar por horas? Porque si le pongo una fecha larga donde me muestre la hora, quizá si pueda filtrarlo ... aunque no, porque no hago el pedido siempre a la misma hora :(
La idea de hacer una tabla histórica la tenía pero como no logro pasar todos los registros de una tabla a otra sin que me la machaque, sino que siempre sobrescribiendo, pues por eso decidí hacerlo así.
La opción es la última que me pones. Una vez hecho el pedido, actualizar los campos a True. Pero es que no me sale. La sentencia Update no la reconoce el pc (Es un pc de empresa, usa access 2003 y no disponemos de permisos para añadirle complementos o lenguajes).
Hoy he hecho una cosa para proteger el form que es desactivar los checkbox y que únicamente se activen cuando pulso el botón. ¡Un momento! Ahora que lo pienso, si le he podido cambiar la propiedad de enabled a true... si le cambio la propiedad value a true?
Jur me estás enseñando mucho, gracias!
Si no reconoce la sql:
DoCmd.RunSql "Update NombreTabla Set Archivar=True..."
Lo podrías hacer mediante un recordset:
Defines el recordset, lo recorres y modificas:
Set rs=db.OpenRecordset("Select..........")
Do while not rs.eof
rs.edit
rs!Archivar=True
rs.Update
rs.MoveNext
Loop
Me cuentas.
Bueno, porque no hay 6 estrellas que si no...
Al final tus aclaraciones me abren la mente y lo hice así:
Archivar.enabled = True ' Me desbloquea el checkbox
DoCmd.GoToRecord , , acFirst ' Mueve al primer registro
While Recordset.EOF = False ' Esto no se que es pero me vale
Archivar.Value = 1 ' Cambio los valores para activar
Recordset.MoveNext ' Me mueve al siguiente
Wend ' Fin
¡Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas