Bom o meu sistema está gerando um erro que não estou conseguindo solucionar. Na hora que dou o click no msflexgrid, ele aparece a seguinte mensagem de erro: subscript out of range (run-time error '381')... quando eu debugo a seta amarela aparece na linha abaixo:
Flexgrid.TextMatrix(0, i) = CabecFlex(i)
Taí o código inteiro da função preencheflexgrid:
Public Function PreencheFlexGrid(rs As Recordset, Flexgrid As MSFlexGrid)
Dim lCol As Long
Dim lrow As Long
Dim lcols As Long
Dim lrows As Long
'On Error GoTo checa
Flexgrid.Clear
rs.Requery
'On Error GoTo ErrorHandler
'Testa se a variável é FlexGrid
If Not TypeOf Flexgrid Is MSFlexGrid Then Exit Function
'Testa se a variável é RecordSet
If Not TypeOf rs Is ADODB.Recordset Then Exit Function
'frmflexfunc.Show
Dim i As Integer
Dim c As Integer
'MsgBox "cabeçalho", vbOKOnly + vbInformation, "Atenção"
For i = 0 To IIf(UBound(CabecFlex) = 0, 0, UBound(CabecFlex)) - 1
Flexgrid.TextMatrix(0, i) = CabecFlex(i)
Flexgrid.ColWidth(i) = ColWidthFlex(i)
Next
Flexgrid.FixedRows = 1
'Flexgrid.FixedCols = 0
If Not rs.EOF Then
Flexgrid.Rows = rs.RecordCount + 1
Flexgrid.Cols = rs.Fields.Count
i = 1
'MsgBox "preenchendo o grid", vbOKOnly + vbInformation, "Atenção"
c = 0
'MsgBox "Campo - " & rs.Fields(c).UnderlyingValue, vbInformation, "Atenção"
Do While Not rs.EOF
For c = 0 To rs.Fields.Count - 1
'MsgBox "Campo - " & rs.Fields(c).Value, vbInformation, "Atenção"
If Not IsNull(rs.Fields(c).Value) Then
Flexgrid.TextMatrix(i, c) = rs.Fields(c).Value
End If
Next
i = i + 1
rs.MoveNext
Loop
End If
If coN = 1 Then
Dim posicao As String
Dim titulo As String
With Flexgrid
.Cols = .Cols + 1
posicao = Flexgrid.Cols - 1
titulo = "Nota"
.ColPosition(.Cols - 1) = posicao
.Row = 0
.COL = posicao
.Text = titulo
End With
End If
PreencheFlexGrid = True
Exit Function
'checa:
'If Err.Number <> 0 Then
' MsgBox "Erro " & rs.Fields("re") & " - " & rs.Fields(c).Value & Err.Description, vbCritical, "SGSI"
'End If
End Function
Pergunta
Julie sistemas
Bom o meu sistema está gerando um erro que não estou conseguindo solucionar. Na hora que dou o click no msflexgrid, ele aparece a seguinte mensagem de erro: subscript out of range (run-time error '381')... quando eu debugo a seta amarela aparece na linha abaixo:
Flexgrid.TextMatrix(0, i) = CabecFlex(i)
Taí o código inteiro da função preencheflexgrid:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.