MSFLEXGRID COM ADO E ACCESS

USUARIO.EXCLUIDOS 22/03/2005 11:21:25
#74241
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
USUARIO.EXCLUIDOS 22/03/2005 12:43:54
#74262
Resposta escolhida
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
PAULOHSV 22/03/2005 12:51:50
#74268
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