Pasar parametros a modulos bas o cls

Tengo procedimientos y funciones que se repiten en el código por lo que me han recomendado que los lleve a un modulo vas o a un modulo cls (si va a ser parte de un objeto), pero esos procedimientos tienen como parámetros los valores de controles existentes en un formulario (ejm: Tengo en el Form1 los controles Txt1, Txt2 y tengo un Form 2 que también tiene controles Txt1 y Txt2) y también hay procedimientos donde tengo que pasarle no solo los controles del formulario sino también los campos recordset a los que les voy a asignar ese valor (! Id, !Nombre, etc...)
Mi duda es como debo pasar esis parámetros, no se como hacerlo...

1 Respuesta

Respuesta
1
A un modulo vas
Tienes que declarar las variables que quieres que sean parámetros como publicas...
Ejemplo modulo1. Bas
Bla bla
public rs as recordset
end sub
despues en el formulario que lo necesites podes asignarla asi
modulo1.rs = elrecordset
Pero creo que lo que te dijeron es que pongas los procedimientos en el modulo vas
así podes llamarlo de todos los formularios que necesites
por ejemplo
public conectarBaseDeDatos ( miSQL as String)
aca hiria todo el codigo para abrir la base y conectarla usando la consulta miSQL
end sub
lo único que tienes que hacer después desde un formulario cualquiera es
conectarbaseDeDatos ("SELECT * FROM tabla")
Hola, gracias por tu respuesta
De lo que me explicas es más la segunda opción, colocar todos los procedimientos en un modulo vas para llamarlo de todos los formularios que lo necesiten. Pero mi problema exactamente es que tengo dos formularios que tienen prácticamente los mismos campos (salvo uno que es diferente) y el procedimiento necesita saber de cual de los dos formularios se le está llamando para asignar los datos en uno o en otro, eso lo he resuelto llamando desde el formulario y pasándole por parámetro el nombre del formulario pero el problema es que los controles (campos de texto) no son exactamente iguales, es decir en uno tengo 5 campos de texto y en otro uno, como puedo hacer para que el procedimiento sea el mismo pero dependiendo de la cantidad y nombre de los controles que tenga el formulario.
No se si me he hecho explicar bien lo que necesito hacer. Si no lograste entender, por favor me dices y trato de explicártelo lo más claro que me sea posible.
Gracias por tu valiosa ayuda
Me parece que lo mejor es pasar parte de los procedimientos...
Por ejemplo yo hago las conexiones a las bases y para asignar las consultas en el principal...
Así me deja la libertad para poder optimizar cada formulario por separado...
Si en los 2 formularios conectas con la misma base por código, haces un procedimiento que te conecte con la base...
Y después creas otro procedimiento que te permite asignarle la consulta a la base...
Estos procedimientos públicos y en el modulo. Vas
Así puedes optimizar cada formulario por separado sin tener en cuenta la conexión a la base.
Lo que quieres hacer de pasarle directamente los controles ya es un poco más difícil pero puedo darte un empujón para que puedas ir pensándolo..
Los formularios tienen una propiedad controls que devuelve la colección con todos los controles del formulario,
por ejemplo un método para poner en blanco los textbox al inicializar.
Haría que recorra la colección de los controles del formulario y guardaría en una nueva colección los que son textbox.
Luego se lo mandas a un procedimiento en el modulo
Que haga esto.
Para cada control de la colección
controlCOlecccion.text = ""
Esto es una idea general
No recuerdo exactamente como se preguntan los tipos de controles pero creo que era algo así como istextbox
Property Controls As object
Sólo lectura
Miembro de VB. MDIForm
Una colección en la que los elementos representan cada control de un formulario, incluyendo los elementos de las matrices de controles.
Lamentablemente no tengo la ayuda de visual y no puedo fijarme exactamente como se hace... pero si lo investigas un poco lo lograras...
De todas maneras estoy aquí para ayudarte en lo que sea, aunque en este caso no haya sido mucho =(
De todas maneras, gracias por la ayuda voy a investigar sobre lo de los controles y voy a considerar lo que me dices de optimizar los formularios.
Si llegas a encontrar más información me avisas por favor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas