Error al pasar un objeto de mi Clase en una función

Seguramente te resulta fácil, pero, yo
Estoy un poco confundido y segado.
Estoy haciendo una aplicación en VB6 y estoy trabajando con clases, a pesar
de que VB6 no es un lenguaje POO.
Tengo una clase Pago, otra de Negocio y otra ConexionBD...
La Clase Pago tiene sus propiedades como fecha, monto, etc.
Y se llama DTO_Pago
La Clase Negocio "NEG_Pago" tiene un método llamado "GrabarRegistro" y
debería recibir un objeto de la clase "Pago" para luego recorrerlo e
insertarlo en la BD, en el fondo la ocupo para formar la sentencia SQL que
me insertará el registro
algo así:
Sub GrabarRegistro(pAuxPago() As DTO_Pago)
...
Set pAuxPago = New DTO_Pago
...
End sub
en el botón "Ingresar" de un formulario tengo:
Private Sub Ingresar_Click()
Dim auxNegPago As NEG_Pago
Dim auxPago As DTO_Pago
Set auxNegPago = New NEG_Pago
Set auxPago = New DTO_Pago
En auxPago ingreso los datos recuperados del formulario...
Luego..
AuxNegPago. GrabarRegistro (auxPago)
Y me arroja el siguiente error:
"Error 438. El objeto no admite esta propiedad o método."
Bueno, eso es... Espero haber sido claro, de lo contrario me comentas para
poder entregarte más datos..

1 respuesta

Respuesta
1
Yo pienso que el error esta dentro GrabarRegistro, no en el código que estas colocando. De acuerdo al mensaje de error es como si te hubieras equivocado al llamar una propiedad del objeto.
Hola!... espero me puedas ayudar, seguramente te resulta fácil, pero, yo
estoy un poco confundido y segado.
Estoy haciendo una aplicación en VB6 y estoy trabajando con clases, a pesar
de que VB6 no es un lenguaje POO.
Tengo una clase Pago, otra de Negocio y otra ConexionBD...
La Clase Pago tiene sus propiedades como fecha, monto, etc.
Y se llama DTO_Pago
La Clase Negocio "NEG_Pago" tiene un método llamado "GrabarRegistro" y
debería recibir un objeto de la clase "Pago" para luego recorrerlo e
insertarlo en la BD, en el fondo la ocupo para formar la sentencia SQL que
me insertará el registro
algo así:
Sub GrabarRegistro(pAuxPago() As DTO_Pago)
...
Set pAuxPago = New DTO_Pago
...
End sub
en el botón "Ingresar" de un formulario tengo:
Private Sub Ingresar_Click()
Dim auxNegPago As NEG_Pago
Dim auxPago As DTO_Pago
Set auxNegPago = New NEG_Pago
Set auxPago = New DTO_Pago
En auxPago ingreso los datos recuperados del formulario...
luego..
auxNegPago.GrabarRegistro (auxPago)
Y me arroja el siguiente error:
"Error 438. El objeto no admite esta propiedad o método."
Bueno, eso es... espero haber sido claro, de lo contrario me comentas para
poder entregarte más datos.. desde ya te lo agradezco enormemente..
Saludos!
Carlos
Hola!, esto es lo que tengo en GrabarRegistro
Sub GrabarRegistro(pAuxPago() As DTO_Pago)
Set pAuxPago = New DTO_Pago
Dim query As String
query = "INSERT INTO PAIS VALUES(" & pAuxPago.Comentario & ")"
conex.Usuario = "xxx"
conex.Pass = "xx"
conex.query = query
conex.EsSelect = False
Conex. Conectar
Conex.CerrarConexion
End Sub
Como ves, lo que intento hacer, es tomar este objeto, recorrerlo y crear la query, luego ingreso el registro a través de una instancia de mi clase conexión llamada "conex"
Saludos y gracias!
¿La tabla tiene 1 solo campo? ¿O tiene dos campos un código o id que es autonumérico y otro campo que es el que estas intentando llenar con la propiedad Comentario del objeto?
Si ta tabla tiene campos que no acepten nulo ademas del que estas enviando para la inserción, ese es tu error.
Busca en google la sintaxis de INSERT que estas utilizando si no sabes o no estas seguro de como funciona.
Con respecto a la consulta esta bien hecha, ya que la he probado en otro procedimiento, la base de datos es otra, pero, esta la tengo para probar solamente. Y esta tabla tiene sólo un campo, pero, no es un error de sentencia SQL.
Yo pienso que el problema esta en este método que tengo al pasarle como parámetro una instancia de mi clase Pago... está correcto esto ...
Sub GrabarRegistro(pAuxPago As DTO_Pago)
es necesario asignar así posteriormente dentro del método?:
pAuxPago = new DTO_Pago
Porque lo probé y tampoco funciona... PERO, por ejemplo, si modifico el método y en vez de pasar un objeto y paso un string... funciona sin problemas.
Sub GrabarRegistri(miTexto As String)
Eso... espero te sirvan estos antecedentes adicionales.
Saludos
Te falta :
Set pAuxPago = DTO_Pago

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas