Pasar valor de una variable de un formulario a otro

20/12/2005 - 00:33 por javi | Informe spam
Hola a todos

Quiero hacer que si una variable no tiene valor en un formulario me
aparezca otro que me pida el precio.

Hasta aqui ningún problema, el formulario me aparece bien, me pide que
introduzca el precio nuevo y le doy a aceptar, pero en cuanto salgo del
segundo formulario la variable pierde su valor y no se la puedo asignar
a la variable del primer formulario.

Copio el código del botón aceptar

Private Sub CommandButton1_Click()
If IsNumeric(NuevoPrecio) = False Then
MsgBox ("No ha introducido un valor correcto para el precio, se
le asignará valor 0.")
precio = 0
Else
precio = NuevoPrecio.Value
End If
FormPrecio.Hide
End Sub

en el primer formulario tengo definida la variable precio como public, y
el código que carga el segundo formulario (y que alfinal lo descarga de
memoria) es este:

FormPrecio.Show
precio = precio
Unload FormPrecio

¿qué estoy haciendo mal?

Muchas gracias

Javi
 

Leer las respuestas

#1 Héctor Miguel
20/12/2005 - 09:14 | Informe spam
hola, javi !

... hacer que si una variable no tiene valor en un formulario me aparezca otro que me pida el precio.
... pero en cuanto salgo del segundo formulario la variable pierde su valor y no se la puedo asignar a la variable del primer formulario.
Private Sub CommandButton1_Click()
If IsNumeric(NuevoPrecio) = False Then
MsgBox ("No ha introducido un valor correcto para el precio, se le asignará valor 0.")
precio = 0
Else
precio = NuevoPrecio.Value
End If
FormPrecio.Hide
End Sub [...]



si necesitas que una variable este disponible para otros codigos...
-> es necesario que la variable la declares 'a nivel de modulo' [en el 'area de las declaraciones']
NO 'a nivel de procedimiento' [dentro de las lineas del procedimiento que la 'llena'] :)

si necesitas que una variable este disponible para otros modulos...
-> es necesario que la variable la declares como 'Public' en el area de declaraciones de un modulo [de preferencia 'normal']
p.e. Public precio As ???

saludos,
hector.

Preguntas similares