MSFLEXGRID COM ADO E ACCESS
Estou usando a seguinte rotina para prencher um msflexgrid, e estou usando o ado, quando uso a mesma função usando o banco de dados firebird ela da certo quando uso com o access meda a seguinte mensagem de erro
run-time error '381':
subscript out of range
Private Sub CarregaGrid()
Dim I As String
'Set RsPesquisa = New ADODB.Recordset
SQL = "SELECT * FROM EMPRESA ORDER BY DESCRICAO_EMPRESA "
RsPesquisa.Open SQL, CnBanco
''''''''''''''''''limpa o grid e difine a linha como 2 '''''''''''''
MSFlex.Clear '
MSFlex.Rows = 1 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''quantidade de colunas''''''''''''''''''''
MSFlex.Cols = 2 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''tamanho da coluna'''''''''
MSFlex.ColWidth(0) = 1000
MSFlex.ColWidth(1) = 5200 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''' cabeçalho da coluna'''''''''''''
MSFlex.TextMatrix(0, 0) = "Codigo"
MSFlex.TextMatrix(0, 1) = "Empresa" '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
I = 1
Do While Not RsPesquisa.EOF
MSFlex.Rows = 2
' If RsPesquisa!CODIGO_EMPRESA <> "0001" Then
MSFlex.Rows = RsPesquisa.RecordCount + 1
MSFlex.TextMatrix(I, 0) = RsPesquisa!CODIGO_EMPRESA
MSFlex.TextMatrix(I, 1) = RsPesquisa!DESCRICAO_EMPRESA
I = I + 1
' End If
RsPesquisa.MoveNext
Loop
RsPesquisa.Close
End Sub
run-time error '381':
subscript out of range
Private Sub CarregaGrid()
Dim I As String
'Set RsPesquisa = New ADODB.Recordset
SQL = "SELECT * FROM EMPRESA ORDER BY DESCRICAO_EMPRESA "
RsPesquisa.Open SQL, CnBanco
''''''''''''''''''limpa o grid e difine a linha como 2 '''''''''''''
MSFlex.Clear '
MSFlex.Rows = 1 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''quantidade de colunas''''''''''''''''''''
MSFlex.Cols = 2 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''tamanho da coluna'''''''''
MSFlex.ColWidth(0) = 1000
MSFlex.ColWidth(1) = 5200 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''' cabeçalho da coluna'''''''''''''
MSFlex.TextMatrix(0, 0) = "Codigo"
MSFlex.TextMatrix(0, 1) = "Empresa" '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
I = 1
Do While Not RsPesquisa.EOF
MSFlex.Rows = 2
' If RsPesquisa!CODIGO_EMPRESA <> "0001" Then
MSFlex.Rows = RsPesquisa.RecordCount + 1
MSFlex.TextMatrix(I, 0) = RsPesquisa!CODIGO_EMPRESA
MSFlex.TextMatrix(I, 1) = RsPesquisa!DESCRICAO_EMPRESA
I = I + 1
' End If
RsPesquisa.MoveNext
Loop
RsPesquisa.Close
End Sub
Olá Osvaldo, aproveitando + ou - a sua lógica, tente controlar as linhas do flex assim:
'SELECT......
If Not rs.EOF = True Then
''''''''''''''''''limpa o grid e difine a linha como 2 '''''''''''''
MSFlex.Clear '
MSFlex.Rows = 1 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''quantidade de colunas''''''''''''''''''''
MSFlex.Cols = 2 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''tamanho da coluna'''''''''
MSFlex.ColWidth(0) = 1000
MSFlex.ColWidth(1) = 5200 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''' cabeçalho da coluna'''''''''''''
MSFlex.TextMatrix(0, 0) = "Codigo"
MSFlex.TextMatrix(0, 1) = "Empresa" '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Do While Not rs.EOF
MSFlex.Rows = MSFlex.Rows + 1
MSFlex.TextMatrix(MSFlex.Rows - 1, 0) = rs(0) 'Cod Empresa
MSFlex.TextMatrix(MSFlex.Rows - 1, 1) = rs(1) 'Nome Empresa
rs.MoveNext
Loop
rs.Close
End If
________________________________-
Espero ter ajudado.
Abraços,
Michel
'SELECT......
If Not rs.EOF = True Then
''''''''''''''''''limpa o grid e difine a linha como 2 '''''''''''''
MSFlex.Clear '
MSFlex.Rows = 1 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''quantidade de colunas''''''''''''''''''''
MSFlex.Cols = 2 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''tamanho da coluna'''''''''
MSFlex.ColWidth(0) = 1000
MSFlex.ColWidth(1) = 5200 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''' cabeçalho da coluna'''''''''''''
MSFlex.TextMatrix(0, 0) = "Codigo"
MSFlex.TextMatrix(0, 1) = "Empresa" '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Do While Not rs.EOF
MSFlex.Rows = MSFlex.Rows + 1
MSFlex.TextMatrix(MSFlex.Rows - 1, 0) = rs(0) 'Cod Empresa
MSFlex.TextMatrix(MSFlex.Rows - 1, 1) = rs(1) 'Nome Empresa
rs.MoveNext
Loop
rs.Close
End If
________________________________-
Espero ter ajudado.
Abraços,
Michel
Aqui vc vai encontrar um exemplo de como trabalhar com dados usando acces, ado e flexgrid
Tópico encerrado , respostas não são mais permitidas