Duda al definir una variable

Lo primero de todo, quiero aclarar que soy novato, y posiblemente la solución sea sencilla.

Tengo un formulario principal para crear albaranes. Una vez elegido un cliente, y fecha asigna automáticamente un número de albarán.

Además tengo un subformulario donde elijo los diferentes artículos con sus precios de venta, en función del precio asignado en la tabla “artículos”.

El problema es que hay clientes que tienen asignado un precio especial y ahí está mi problema:

Al seleccionar el cliente en el formulario principal quiero asignar a una variable el precio especial del cliente.

Al seleccionar un artículo en el subformulario, quiero que si la variable que contiene el precio especial es “” asigne el precio del producto, pero si es distinto de “” (es decir el cliente tiene precio especial asignado), aplique al producto ese precio especial.

Mi problema es que el valor de la variable “Precio especial”, lo toma en un módulo del “Formulario Principal” y el artículo lo selecciono en el “Subformulario” y no me mantiene el valor de la variable.

Sé que es solucionable, pero no sé cómo hacerlo.

2 Respuestas

Respuesta
2

Jon: Si quieres que una variable sea accesible desde cualquier lugar de la Aplicación, la declaras a Nivel de Modulo Estardard de VBA comu>>

Public LaVariableUno As String

Public LaVariableDos As Integer

Etcétera

Le puedes dar valor desde cualquier sitio

LaVariableUno= "Castellar"

LaVariableDos = 2016

Mis saludos >> Jacinto

¿Qué quieres decir con declararla a nivel de modulo estándar? Se define en cualquier modulo, ¿es decir la defino en el módulo del formulario principal? ¿O hay que definirla en algún sitio especial?

Jon: Puedes declararla en la Cabecera del Código asociado al Formulario Principal, como Public.

Lo que yo siempre sugiero por cuestiones de orden es que se declaren "Todas" las Variables Publicas en Módulo de Código Estándar.

Solo por localizarlas todas juntas. Mis saludos >> Jacinto

Respuesta
2

Imagino que la tendrás declarada con Dim en el encabezado del módulo del formulario. Si es así, cambia Dim por Public y ya te mantendrá el valor entre los formularios.

O también la puedes con Public en un módulo independiente. Pero es importante que lo hagas con Public en casos.

Tengo la variable definida como Public, pero no me conserva el valor al cambiar de formulario, una vez que paso al módulo del subformulario vuelve a estar vacía.

Gracias a ambos.

Ya lo he resuelto, he creado la variable como Public en un módulo, en vez de definirla en el código del formulario.

Pues lo que yo te decía: "O también la puedes con Public en un módulo independiente."

XD

Lo importante es que lo hayas resuelto.

Un saludo


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas