Access 2007 y visual basic

Tengo un problema con una base de datos que estoy haciendo.
Tengo un casilla de verificación el cual cuando se pulsa, hace que un campo de un subformulario lo multiplique por 2.
El problema es que si esta pulsado y hago nuevos registros en el subformulario no se actualiza si no vuelvo a pulsar la casilla de verificación.
¿Alguno sabría cual es la expresión del evento al actualizar que tendría que poner en el campo del subformulario desde visual basic?
Respuesta
1
Seguramente es por que lo tienes codificado en el evento click o simipar del check .
La alternativa es validar por código el check justo antes de salvar el registro con lo cual siempre te va a quedar el valor correcto.
Gracias por contestar. Antes de nada quiero que sepas que soy un novato en este área.
Eso es... lo tengo codificado en el evento click.
pero no se que tengo que escribir en visual basic. habia pensado en
if "nombre de la casilla de verificacion".value = true then
 "campo que quiero cambiar" = "campo definido" * 2
end if
if "nombre de la casilla de verificacion".value = false then
"campo que quiero cambiar" = " campo definido
end if
¿Estaría bien?... Intento hacerlo pero no me sale y seguro es porque la expresión que estoy utilizando no esta bien
ademas no quiero que me lo multiplique dos veces porque ya puse que si la casilla de verificación se activa haciendo click me multiplicara el campo definido por dos y el resultado se pusiera en el campo que quiero cambiar.
Gracias
En el evento 'click' no te sirve por que solo funcionará cuando pulses y no cuando salves que es lo que quieres.
Busca el evento o el procedimiento donde salvas en el data o en el código según lo estés haciendo.
Y hay escribe la primera versión ( si acaso prueba a poner un 1 o un 0 en vez de true o false por que tienen tres estados) y prueba.
Con eso debería funcionarte.
if "nombre de la casilla de verificacion".value = true then
 "campo que quiero cambiar" = "campo definido" * 2
else "campo que quiero cambiar" = " campo definido
end if
lo estoy poniendo no en el evento de la casilla de verificacion, sino en el evento del campo definido....
Creo que es esta la expresión pero no se porque cuando escribo el nombre de la casilla de verificación, al poner ".value" no se despliega la barra de acción...
Creo que es porque el campo "nombre de la casilla de verificación" no se encuentra en esa tabla sino en otra y no se como llamarla para que me la coja.
He probado con:
if [nombre tabla de la casilla de verificacion]![nombre casilla verificacion] = true then......
Hasta poniendo al final ".value"... pero soy incapaz
gracias
Pégame aquí el código de todo el formulario para que le de una vuelta si no vamos a tardar mucho :-)

1 respuesta más de otro experto

Respuesta
1
Hay varias formas
Una es que cada nuevo registro (evento before insert, antes de insertar), ¿pusieras la casilla a false
casila=false
pero también esta el caso de que si ya le has dado y le das otra vez que haría?
Lo multiplica por dos otra vez,
si es (no), cuando te muevas por los registros como sabrías a cual le diste X2 y a cual no
si es (si), entonces mejor usa un botón ya que regresa a su posición (afuera, no presionado) solo
si aun quieres con marca de chequeo, tendrías que poner en el evento afterupdate del chequeo x2, algo que lo regresara a (falso),
dependiendo de lo anterior, y si deseas conservar a cual le diste, solo crea el chekmark (casilla de verificación) en la tabla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas