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

[SOLUCIONADO] Ayuda con esta clase en Visual Basic 6.0 (solucionado)

Estas en el tema de Ayuda con esta clase en Visual Basic 6.0 (solucionado) en el foro de Visual Basic clásico en Foros del Web. Hola, me baje esta clase (http://anonym.to/?http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/268-ado-paginar-listview.htm) para integrarla en mi programa, pero incluso cuando pongo en el formulario lo que el autor pone, me da ...
  #1 (permalink)  
Antiguo 28/02/2010, 15:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Ayuda con esta clase en Visual Basic 6.0 (solucionado)

Hola, me baje esta clase (http://anonym.to/?http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/268-ado-paginar-listview.htm) para integrarla en mi programa, pero incluso cuando pongo en el formulario lo que el autor pone, me da error 91 "Variable de tipo object o la variable de bloque with no esta establecida" en esta parte del codigo:
Código vb:
Ver original
  1. '
  2. Para la Conexión ADO
  3. Public Property Get Connection() As ADODB.Connection
  4. Connection = m_Connection
  5. End Property
  6.  
  7. 'Establece
  8. Public Property Set Connection(Conexion_ADODB As ADODB.Connection)
  9. Set m_Connection = Conexion_ADODB
  10. End Property

Les pongo parte del codigo del formulario donde intento conectar y utilizar la clase:
Código vb:
Ver original
  1. '
  2. Propiedades de la conexión ADO
  3.     cnn.CursorLocation = adUseClient
  4.    
  5.     cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & frmInicio.RUTA_BD
  6.  
  7. 'Configuro el objeto obj para crear la listview
  8. With obj
  9.     'Le doy la conexión
  10.    .Connection = cnn
  11.     'Ejecuto la sentencia:
  12.    .sql = "SELECT * FROM ARTICULOS"
  13.     'Le paso la listviw
  14.    .ListView = lvRegistros
  15.     .Registros_Por_Pagina = frmInicio.NUM_REG
  16.     .AutoSizeColumnHeader = AJUSTAR_POR_COLUMNA
  17.     'Voy a la primera pagina y cargo los datos en la listview
  18.    .GoToPage (1)
  19. End With

Gracias por adelantado :)

PD: Si no se pueden poner enlaces decidmelo y lo modifico y subo la clase a un txt

Última edición por Tik3r; 01/03/2010 a las 08:34 Razón: El link estaba mal escrito
  #2 (permalink)  
Antiguo 28/02/2010, 16:09
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Ayuda con esta clase en Visual Basic 6.0

Debe ser que no has creado una variable obj o no es accesible desde esa sub.
Pon al comienzo del código:

Option Explicit
Dim WithEvents obj As Class1


Después en el load pones lo que dice el autor:
Set obj = New Class1

Y quizá se arregle tu problema.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 28/02/2010 a las 17:40
  #3 (permalink)  
Antiguo 28/02/2010, 17:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ayuda con esta clase en Visual Basic 6.0

Pues probe eso... y nada de nada... grax igualmente pero ske nose porque no funciona si lo hice todo igual que como el autor lo tiene puesto... alguien puede probar si le funciona? tengo instalado los parches para el vb6 asi ke sta actualizado... si alguien me puede ayudar se lo agradeceria muchisimo ya que me es urgente

Por cierto, esto no me pasa solo en sta clase, si no en todas, al tratar de pasarle objetos (recordset, etc.) siempre me da el mismo problema... a lo mejor tengo que añadir algo mas aparte del activex o nose...

Gracias de nuevo!

Última edición por Tik3r; 28/02/2010 a las 17:34 Razón: Añadi información
  #4 (permalink)  
Antiguo 01/03/2010, 08:33
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ayuda con esta clase en Visual Basic 6.0

Weno ya encontre el error, staba en las propiedades de la clase. Quedarian así:
Código vb:
Ver original
  1. '********************************************
  2. 'Propiedades
  3. '********************************************
  4.  
  5. ' Para la Conexión ADO
  6. Public Property Get Connection() As ADODB.Connection
  7. Connection = m_Connection
  8. End Property
  9.  
  10. 'Establece
  11. Public Property Set Connection(Conexion_ADODB As ADODB.Connection)
  12. Set m_Connection = Conexion_ADODB
  13. End Property
  14.  
  15. Public Property Let Connection(Conexion_ADODB As ADODB.Connection)
  16. Set m_Connection = Conexion_ADODB
  17. End Property
  18.  
  19. ' Propiedad para el ListView
  20. Public Property Get ListView() As ListView
  21.     Set ListView = m_ListView
  22. End Property
  23.  
  24. Public Property Set ListView(v_ListView As ListView)
  25.     Set m_ListView = v_ListView
  26. End Property
  27.  
  28. Public Property Let ListView(v_ListView As ListView)
  29.     Set m_ListView = v_ListView
  30. End Property

Lo pongo x si a alguien le pasa lo mismo :D
  #5 (permalink)  
Antiguo 01/03/2010, 15:58
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Desacuerdo Respuesta: Ayuda con esta clase en Visual Basic 6.0 (solucionado)

Buenas,
pues no esta alli donde dices el error.
El error esta en usar Set en la clase y no asignar la propiedad con Set:

.Connection = cnn

deberia ser

Set .Connection = cnn

si quieres usarlo sin Set, la declaracion en la clase para la asignacion de valor entonces debe ser Let aunque para pasar objetos se debiera usar Set.

Usar Set y Let a la vez en la declaracion de asignacion es a mi modo de ver; sin animo de ofender; que no tienes no pajolera del tema y te has limitado a copiar y pegar un codigo que no entiendes.

Saludos.

Etiquetas: basic, clase, solucionado, visual
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 08:43.