Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pasar objeto en un parámetro de una función

Estas en el tema de Pasar objeto en un parámetro de una función en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/11/2007, 04:58
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 1
Pasar objeto en un parámetro de una función

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!!!
  #2 (permalink)  
Antiguo 29/11/2007, 07:56
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 2 meses
Puntos: 17
Re: Pasar objeto en un parámetro de una función

lo ke se me ocurre es que los procedimientos son codigos que se ejecutan cuando los invocan, NO SON PROPIEDADES propiedades de un ojbjeto, entonces para poder utilizar tu procedimiento solo debes llamarlo ejemplo: insertarSocio (miSocio)


dbcon es un objeto ke lo mas probable es ke lo tengas definido como base de datos o como una conexin a base de datos, entonces este tipo de objeto no tiene como propiedad tu procedimiento insertarsocio, entonces se cae cuando lo colocas como propiedad de dbcon (dbcon.insertarsocio), revisa tu odigo y lo ke kieres hacer
  #3 (permalink)  
Antiguo 30/11/2007, 01:03
 
Fecha de Ingreso: abril-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Pasar objeto en un parámetro de una función

Te explico:

El primer procedimiento (insertarSocio) está en una clase llamada cBD 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 la clase "Socio" en el procedimiento de insertar (ya que son muchisimos).

¿Sabes si se pueden pasar como argumento una instancia de una clase?¿Y cómo?

saludos y Gracias.
  #4 (permalink)  
Antiguo 03/12/2007, 06:32
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Re: Pasar objeto en un parámetro de una función

Hermano, no se entiendo nada de lo que pedis... Explicalo todo de nuevo con detalles.

Algunas correcciones pelotudas que hago... Public Sub es una SUB ACCION, una funcion devuelve un valor osea Public Function.

Segun lo poco que entendi, es que con esta subaccion vos queres es utilizar el objeto cSocio seria algo asi mira...

Public Sub insertarSocio(TuObjeto as Object)

Ahi recien podes manejar un objeto, pero con Me no vas a hacer nada, tenes que usar el nombre del objeto es decir

TuObjeto.consulta = blablabla

Explica todo devuelta
  #5 (permalink)  
Antiguo 05/12/2007, 11:57
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Re: Pasar objeto en un parámetro de una función

Cita:
Iniciado por miguel867 Ver Mensaje
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!!!
que hace tu funcion, coloca el codigo y creo que deberia ser asi


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

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:01.