Visual Basic - Ayuda con Datagrid

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda con Datagrid

Publicado por Cris (2 intervenciones) el 29/01/2005 18:55:31
Hola por favor si alguien me puede ayudar, tengo un error de subindice fuera de intervalo en un datagrid, tengo el siguente código para que tengan una idea:Private Sub imgper_Click()
Dim r As ADODB.Recordset
Set r = New ADODB.Recordset
Dim a As importacion.Class1
Set a = New importacion.Class1
sw = 2
frmseleccion.Show vbModal
txtperin = Trim(visit)
lblncom.Caption = Trim(lblvis)
If a.consulta6(Me.txtrucin, Me.txtperin, r) Then
Set Me.Dataim.DataSource = r
Frame2.Visible = False
Call Encabezado
End If
End Sub

Sub Encabezado()
Dataim.Columns(0).Width = 1000
Dataim.Columns(0).Caption = "CODIGO"
Dataim.Columns(1).Width = 2000
Dataim.Columns(1).Caption = "DESCRIPCION"
Dataim.Columns(2).Width = 1000
Dataim.Columns(2).Caption = "FECHA INICIO PERIODO"
Dataim.Columns(3).Width = 1000
Dataim.Columns(3).Caption = "FECHA FIN PERIODO"
Dataim.Columns(4).Width = 1000
Dataim.Columns(4).Caption = "SIT. CICLO"
Dataim.Columns(5).Width = 1000
Dataim.Columns(5).Caption = "FECHA FIN PERIODO"
Dataim.Columns(6).Width = 1000
Dataim.Columns(6).Caption = "SIT. CICLO"
End Sub

Al llegar a: Dataim.Columns(2).Caption = "FECHA INICIO PERIODO" se presenta el error

En espera de su ayuda..... gracias!!!... : )
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Datagrid

Publicado por Benjo (679 intervenciones) el 31/01/2005 02:34:04
Seguramente tenés el DataGrid sin columnas y las querés crear en tiempo de ejecución, pero objeto.Columns(indice) sólo te permite acceder a laspropiedades del objeto columns y no crearlas, para ello debés utilizar el método add del objeto collection Columns.
El Datagrid, por defecto ya se genera con dos columnas la index 0 y la index 1 por eso te aparece el erro a partir de la index 2, ya que esta no existe y estas referenciando un subindice fuera del intervalo.

Dataim.Columns.Add(2).Width = 1000
Dataim.Columns(2).Caption = "FECHA INICIO PERIODO"
Dataim.Columns.Add(3).Width = 1000
Dataim.Columns(3).Caption = "FECHA FIN PERIODO"
y así sucesivamente.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Datagrid

Publicado por Cris (2 intervenciones) el 31/01/2005 16:08:42
Gracias..... se resolvio mi problema : )
Puedo molestarte con otra duda, por favor ayudame... gracias..

No me sale error pero no me carga los datos
Private Sub Form_Load()
Dim r As ADODB.Recordset
Set r = New ADODB.Recordset
Dim a As importacion.Class1
Set a = New importacion.Class1
Call Encabezado
If a.consulta4(r) Then
Set Me.Dataemp.DataSource = r
End If
Call estado(StatusBar1)
Call inicio(cmdsave, cmdcancel, cmdcons, mnu_save, mnu_cancel)
End Sub

Como cargo los registros al data...?? al cargar con: Set Me.Dataemp.DataSource = r con una tabla pequeña de 2 campos si me carga pero al trabajar con una extensa me carga el numero de registros pero en blanco el data

Gracias x tu ayuda : )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Datagrid

Publicado por Benjo (679 intervenciones) el 31/01/2005 20:02:32
Cristina, estás queriendo asignar un objeto recordset a una Propiedad String

Lo que debés hacer es transferir un Recordset a otro Recordset

Set Me.Dataemp.Recordset = r
el único problema es que a partir de que lo instancies, cada vez que
el ecursor se mueva en r, también se moverá en Dataemp.Recordset

Obviamente estamos tratando con un control ADODC es decir Dataemp es
un ADODC y no un Data Control, ya que de no ser así tendrías problemas
con algunas bases de datos.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Datagrid

Publicado por Benjo (679 intervenciones) el 01/02/2005 00:43:29
"Como cargo los registros al data...?? al cargar con: Set Me.Dataemp.DataSource = r con una tabla pequeña de 2 campos si me carga pero al trabajar con una extensa me carga el numero de registros pero en blanco el data "

Cuando leí esto, creí que te referías al Data por un Datacontrol o un ADO Data Control y no a una DataGrid, en ese caso, no podés asignar un Recordset creado por código a una Fatagrid, sino es a través de la implementación de una clase DataSourceBehavior. En el foro Visual Basic o en Visual Avanzado coloqué un ejemplo base.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar