Parámetros entre Formularios

Hola Lorenzo:
Recibí tu respuesta a otra pregunta, gracias. Necesito nuevamente de tu ayuda.
Tengo la siguiente situación:
Desde el formulario frmBUS necesito modificar la propiedad de un control de otros formularios, esto podría hacerlo:
frmBUS.nombrecontrol.propiedad = valor
Pero yo necesito de un modo general modificar la propiedad del control de dos formularios:
frmLL1.controlADO1.propiedad = valor
y
frmLL2.controlADO2.propiedad = valor
Mi pregunta es ¿cómo hago para hacer referencia indistintamente tanto a frmLL1 y frmLL2 desde la misma línea de código en frmBUS, en forma general, pasándole a frmBUS como parámetro el formulario desde el cual lo llamo (frmLL1 y frmLL2)?
Desde ya muchas gracias.
Ritab.

1 Respuesta

Respuesta
1
Déjame ver si entendí:
FrmLL1 y frmll2, pueden llamar al formulario frmBus, y es desde frmBUS donde quieres cambiar el valor de alguno control ubicado en el formulario que lo llamó. Bueno si es así, la respuesta es esta:
* Dentro del formulario frmBUS
Dim frmPropietario As Form
//Asignación de Formulario Propietario
Public Property Let Propietario(frm As Form)
Set frmPropietario = frm
End Property
Private Sub Command1_Click()
frmPropietario.ControlAdo.Propiedad=valor
End Sub
* Y en el formulario frmLL2 y frmLL1
Private Sub Command1_Click()
frmBUS.Propietario = Me
End Sub
Nota: Deberás asegurarte de que se ejecute la instrucción "frmBus.Propietario=Me" antes de que muestres el formulario "frmBUS.Show", y de que el control que modificaras desde frmBUS (creo que es "controlAdo1" y "controAdo2" ) tengan el mismo nombre ("ControlAdo"), en caso de que esto no sea posible, entonces deberás establecer otra propiedad en frmBUS de tipo "Control" y enviarle dicho control, como se le hizo con el formulario. si tienes duda, házmelo saber y te envío un ejemplo. Suerte.
Lorenzo:
Te agradezco mucho la respuesta. Con el mismo nombre de control me funciona perfecto. Pero si intento definir la propiedad de tipo Control (también probé con Adodc), al hacer referencia, me dice que la propiedad no es válida para el objeto. Lo que hago es:
Dim frmPropietario As Form
Dim dcPropietario As Control
'Asignación de Formulario Propietario
Public Property Let FPropietario(frm As Form)
Set frmPropietario = frm
End Property
'Asignación del Control de Datos
Public Property Let DPropietario(dc As Control)
Set dcPropietario = dc
End Property
Al hacer:
pos = frmPropietario.dcPropietario.recordset.bookmark
Es cuando da el error.
De todas maneras, sí puedo cambiar el nombre de los controles.
Muchísimas gracias, y preparate para el 10.
Ritab.
Entonces no te entendí bien que es lo quieres pasar como parámetro aparte del formulario, por lo que vi, creo que quieres pasar una tabla (RecordSet), si es así puedes probar también con el tipo RecordSet. Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas