Paso de matrices de estructuras a una funcion

elisa
15 de Diciembre del 2004
Si me declaro en el formulario principal una estructura, y posteriormente una matriz de dicha estructura, si deseo pasarle esta matriz a una funcion definida en un modulo estandar, como declaro el parametro que debe recoger esta matriz en el prototipo de la funcion? He probado ya a declararlo como una matriz de tipo Variant, pero no me deja. Y si la declaro como una matriz de la estructura definida en el formulario principal, no me deja.
Gracias

Tower
15 de Diciembre del 2004
Hola Raquel.
Si te defines una estructura en un formulario solo la puedes utilizar en ese formulario ya que solo la puedes declarar como privada, asi que luego en el módulo donde tienes la función no te lo reconoce.

Lo que tendrías que hacer es definirtela en el mismo módulo, así la puedes usar donde quieras. Mira este ejemplo a ver si te sirve:

FORMULARIO:

Function Aceptar_Click()
Dim Matriz(1) As Estructura
'Estructura esta definida en el Módulo

Matriz(0).nombre = "Dav"
Matriz(0).direccion = "Per"

mostrar Matriz 'Función definida en el módulo

end Function


MODULO:

Type Estructura
nombre As String
direccion As String
End Type

Function mostrar(Mat() As Estructura)

MsgBox Mat(0).nombre & ", " & Mat(0).direccion

End Function

Un saludo.

eth0
15 de Diciembre del 2004
¿La estructura es pública? ¿Está definida como "Public Type NombreEstructura"?