El subíndice está fuera del intervalo. Datagrid.

Cómo les va. Tengo el siguiente inconveniente. Estoy queriendo poner unos campos en el datagrid y me tira ese error.

Quizá el problema esté en el armado de la cadena por los INNER JOIN...

Les paso la cadena y lo que quiero insertar en el datagrid.

With RstPagos
If .State = 1 Then .Close
Set RstPagos = New ADODB.Recordset

.Open "SELECT A.Num_Afiliado,A.ApeyNomAfiliado,J.Fecha_Jubilacion,P.Fecha_Pago,P.Mes_Pago,J.Observaciones FROM AFILIADOS AS A,JUBILADOS AS J,PAGOS AS P where A.Num_Afiliado = J.Num_Afiliado = P.Num_Afiliado", Base, adOpenStatic, adLockOptimistic
Set frmListadoJubilados.DtaJubilados.DataSource = RstPagos
DtaJubilados.Refresh
DtaJubilados.Height = 7500
frmListadoJubilados.Width = DtaJubilados.Width
frmListadoJubilados.Height = DtaJubilados.Height - 1500
DtaJubilados.AllowUpdate = False
DtaJubilados.Height = frmListadoJubilados.Height - 5000
DtaJubilados.Scroll 0, -1
If DtaJubilados.Row > 0 Then
DtaJubilados.Row = DtaJubilados.Row - 1
End If
DtaJubilados.Scroll 0, -1
DtaJubilados.Columns.Item(0).Caption = "Nº Afiliado"
DtaJubilados.Columns.Item(0).Width = 600
DtaJubilados.Columns.Item(1).Caption = "Apellido y Nombre"
DtaJubilados.Columns.Item(1).Width = 1600
DtaJubilados.Columns.Item(2).Caption = "F. Jubilación" EL ERROR ME LO TIRA ACÁ.
DtaJubilados.Columns.Item(2).Width = 1000
'DtaJubilados.Columns.Item(3).Caption = "F. Pago"
'DtaJubilados.Columns.Item(3).Width = 1000
'DtaJubilados.Columns.Item(4).Caption = "Mes Pago"
'DtaJubilados.Columns.Item(4).Width = 1000
'DtaJubilados.Columns.Item(5).Caption = "Observaciones"
'DtaJubilados.Columns.Item(5).Width = 1500
DtaJubilados.Width = 7500
frmListadoJubilados.Width = DtaJubilados.Width + 1000
End With
End Sub

1 respuesta

Respuesta
1

LO PUDE RESOLVER... Como primera medida... Añadí un registro en una de las tablas... JUBILADOS... que es la que tiene el campo F_Jubilacion... Agregué el registro y solucionado el problema... Más allá de que hice una modificación en la cadena de consulta... La pego para que les sirva...

Private Sub Form_Load()

Dim strJubilados As String
strJubilados = "SELECT A.Num_Afiliado,A.ApeyNomAfiliado,J.Fecha_Jubilacion,P.Fecha_Pago,P.Mes_Pago,J.Observaciones FROM AFILIADOS AS A,JUBILADOS AS J, PAGOS AS P WHERE A.Num_Afiliado = P.Num_Afiliado AND A.Num_Afiliado = J.Num_Afiliado"

With RstPagos
If .State = 1 Then .Close
Set RstPagos = New ADODB.Recordset
RstPagos.Open strJubilados, Base, adOpenStatic, adLockOptimistic
Set frmListadoJubilados.DtaJubilados.DataSource = RstPagos
DtaJubilados.Refresh
DtaJubilados.Height = 7500
frmListadoJubilados.Width = DtaJubilados.Width
frmListadoJubilados.Height = DtaJubilados.Height - 1500
DtaJubilados.AllowUpdate = False
DtaJubilados.Height = frmListadoJubilados.Height - 5000
DtaJubilados.Scroll 0, -1
If DtaJubilados.Row > 0 Then
DtaJubilados.Row = DtaJubilados.Row - 1
End If
DtaJubilados.Scroll 0, -1
DtaJubilados.Columns.Item(0).Caption = "Nº Afiliado"
DtaJubilados.Columns.Item(0).Width = 600
DtaJubilados.Columns.Item(1).Caption = "Apellido y Nombre"
DtaJubilados.Columns.Item(1).Width = 1600
DtaJubilados.Columns.Item(2).Caption = "F. Jubilación"
DtaJubilados.Columns.Item(2).Width = 1000
DtaJubilados.Columns.Item(3).Caption = "F. Pago"
DtaJubilados.Columns.Item(3).Width = 1000
DtaJubilados.Columns.Item(4).Caption = "Mes Pago"
DtaJubilados.Columns.Item(4).Width = 1000
DtaJubilados.Columns.Item(5).Caption = "Observaciones"
DtaJubilados.Columns.Item(5).Width = 1500
DtaJubilados.Width = 7500
frmListadoJubilados.Width = DtaJubilados.Width + 1000
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas