Pasar objeto en un parametro de una funcion

miguel867
29 de Noviembre del 2007
Buenas tengo definida esta funcion en una clase de VB6:

Public Sub insertarSocio(ByRef soc As cSocio) // funcion que tengo en una clase BDatos

Me.consulta = "INSERT INTO socio ... "
Me.bdatos.Execute (Me.consulta)

End Sub

Al invocar esta funcion de la siguiente manera:

Set miSocio = New cSocio
dbCon.insertarSocio (miSocio)

Da el siguiente error: "Error 438. El objeto no admite esta propiedad o método.
Creo que la causa es el objeto miSocio al pasarlo como parámetro. Al ser un objeto este parámetro igual no lo hago bien. He probado a definir esta parámetro como ByVal y ByRef pero no funciona.

¿Alguien me puede ayudar? No sé que puede ser.

Saludos y Gracias!!!

mvallejos
29 de Noviembre del 2007
Para mi el problema está en

Me.Consulta
Me.bdatos

A no ser que sean variables publicas de un formulario, es decir, declaradas como Public en la seccion general del form

Saludos

Saludos

miguel867
29 de Noviembre del 2007
Te explico:

El primer procedimiento está en una clase de BD y algunos de los atributos que tiene son "Consulta" y "bdatos". Por eso los referencio como "Me" dentro de ese procedimiento.

El problema es que el argumento de este procedimiento es una instancia de la clase "Socio", en lugar de haber pasado todos los atributos de esta clase en el procedimiento (ya que son muchisimos).

¿Sabes si se pueden pasar como argumento una instancia de una clase?

saludos y Gracias.