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

psaje de recodset en VB6

Estas en el tema de psaje de recodset en VB6 en el foro de Visual Basic clásico en Foros del Web. Hola , Tengo un problema con el pasaje de recordset entre una clase y un form. La idea es que tengo una clase articulo, y ...
  #1 (permalink)  
Antiguo 21/02/2006, 06:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 3
Antigüedad: 18 años, 7 meses
Puntos: 0
psaje de recodset en VB6

Hola ,
Tengo un problema con el pasaje de recordset entre una clase y un form.
La idea es que tengo una clase articulo, y desde el formulario le puedo pedir dameElArt (id as integer) o dameElArt(codigoBarras as double) y asi.

pero cuando la clase tiene que devolver el recordset me tira un error:

"Invalid use of property" y no se que hacer!


Esta es la funcion de la clase:

Public Function dameEsteID(ByVal id As Integer) As ADODB.Recordset
Dim sql_id As String
sql_id = "Select * from articulos where id = " & id
Rs_Articulo.Open sql_id, Con.Conexion, adOpenDynamic, adLockOptimistic
dameEsteID = Rs_Articulo.Clone ' devuelvo el recordset
Rs_Articulo.Close
End Function

Y desde este procedimiento llamo a esta funcion de la clase:

Private Sub cmdId_Click()
On Error GoTo errBusq
id = CInt(txtId.Text)
'Set regis =
completarCampos art.dameEsteID(id)
'llenarcampos CInt(txtid.Text), "", 0, ""

Exit Sub
errBusq:
MsgBox "Ingrese un id válido"
End Sub

Obviamente el objeto articulo ya lo cree en el form_load:

Set art = New Articulo

y lo declare al inicio :

Private art As Articulo

Cualquier ayuda será bienvenida!!!
  #2 (permalink)  
Antiguo 21/02/2006, 08:09
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Hola,

Prueba con esto:

Código:
SET dameEsteID = Rs_Articulo
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 21/02/2006, 19:49
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
Cita:
Iniciado por PabloP1
Public Function dameEsteID(ByVal id As Integer) As ADODB.Recordset
Dim sql_id As String
sql_id = "Select * from articulos where id = " & id
Rs_Articulo.Open sql_id, Con.Conexion, adOpenDynamic, adLockOptimistic
dameEsteID = Rs_Articulo.Clone ' devuelvo el recordset
Rs_Articulo.Close
End Function
Tamien podes probar sin el SET, asi:
Código:
dameEsteID = Rs_Articulo
Saludos
  #4 (permalink)  
Antiguo 22/02/2006, 08:22
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
jc_monty,

Los Recodset son objetos y no se pueden asignar a variables como valores.

Lo que haces es referenciar a los objetos por lo tanto siempre debes usar la instrucción SET para poder referenciarlos.

Saludes.
__________________
Leer es Saber, REEL.
Mi Blog
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 15:41.