| |||
¿Cómo guardo el valor de una variable para otro formulario? Tengo dos formularios, y en uno se calcula una variable en base a dos campos de una tabla. Lo que quiero es que cuando se abre el otro formulario se recuerde el valor de la variable que se calculó en el primero. Sé que tiene que ver con la forma en que defino esa variable, pero no sé como ni donde hacerlo para que funcione. |
| ||||
![]() Cita: En realidad las variables públicas no funcionan con relación a formularios, en realidad debes agregar un módulo y allí sí en la parte de declaraciones colocar:
Iniciado por lucasiramos Hola Juan. Para hacer eso, necesitas variables publicas. En el primer formulario se define en la parte superior, en la sección Declaraciones, de la siguiente manera:
Código:
Siendo UnValor, la variable que almacena el valor calculado. Luego en el segundo formulario, para hacer referencia a esa variable es:Public UnValor
Código:
Bueno, eso es todo. Espero que te sirva.frmPrimerForm.UnValor Saludos. Lucas
Código:
Nos vemos... Public Numero As Double ![]() ![]() ![]()
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Mi primer formulario es un subformulario que se llama ALUMNOS_2EV, y el segundo se llama ALUMNOS_3EV. En el _2EV he definido Public ER1 as double y se calcula ER1 con valores de los campos de una tabla, y en el segundo quiero mostrar ER1 y hago MsgBox frmALUMNOS_2EV.ER1, pero me da el error "se requiere un objeto". ¿Se te ocurre algo? |
| ||||
Cita: Sí. Sí funcionan. Lo tengo codificado, anda y todo, jeje. La manera que citas es otra forma de hacerlo, que para mi gusto es mas compleja, ya que hay que incluir un módulo (bueno, no es taaan compleja). Pero ahora ya estan mencionadas las dos posibles opciones.
Iniciado por David el Grande En realidad las variables públicas no funcionan con relación a formularios, en realidad debes agregar un módulo y allí sí en la parte de declaraciones colocar:
Código:
Nos vemos... Public Numero As Double ![]() ![]() ![]() Saludos ![]() |
| ||||
Cita: Si el primero se llama "ALUMNOS_2EV" no podes llamarlo "frmALUMNOS_2EV" en el segundo. Te esta sobrando el frm. Creo que sería eso.
Iniciado por Juan Fco. Mi primer formulario es un subformulario que se llama ALUMNOS_2EV, y el segundo se llama ALUMNOS_3EV. En el _2EV he definido Public ER1 as double y se calcula ER1 con valores de los campos de una tabla, y en el segundo quiero mostrar ER1 y hago MsgBox frmALUMNOS_2EV.ER1, pero me da el error "se requiere un objeto". ¿Se te ocurre algo? |
| ||||
![]() Cita: Yo lo probé con dos formularios y no me funcionó.... declarando en el primero ...
Iniciado por lucasiramos Sí. Sí funcionan. Lo tengo codificado, anda y todo, jeje. La manera que citas es otra forma de hacerlo, que para mi gusto es mas compleja, ya que hay que incluir un módulo (bueno, no es taaan compleja). Pero ahora ya estan mencionadas las dos posibles opciones. Saludos ![]()
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
Quitando frm sigue dandome el error "se requiere un objeto". Si en un modulo la defino Global ER1 as double, tengo el problema de que cuando cierro access, y lo vuelvo a abrir, no se ha quedado grabado el valor de la variable, sino que tengo que volver a entrar en el primer subformulario para que cargue su valor, y entonces ya si. Debería recordar ese valor aunque saliera de la aplicación y no entrara despues en el primer Sub. ¿Se os ocurre algo?. Gracias |
| ||||
¡¿NO?! ![]() ![]() Saludos. Lucas |
| ||||
Mmm anda algo mal por ahi pq yo tambien lo tengo comprobado que las variables funcionan a la perfeccion en un modulo, lo mas probable que te suceda es que esa o esas variables las tengas declaradas doble vez osea en los formularios y en modulo, lo que tienes que hacer es asegurarte que no esten declaradas en los forms y SOLO en el modulo para que no choquen y veras que funciona :D Saludos!
__________________ :adios: |