PREENCHER FLEXGRID
Boa tarde povo...beleza?
Estou precisando preencher um FlexGrid, com a função abaixo que sempre funcionou e agora, não dá nem a pau:
Public Function PreencheFlexGrid1(FlexGrid As Object, RS As Object) As Boolean
On Error GoTo ErrorHandler
If Not TypeOf FlexGrid Is MSFlexGrid Then Exit Function
If Not TypeOf RS Is ADODB.Recordset Then Exit Function
Dim i As Integer
Dim J As Integer
FlexGrid.FixedRows = 1
FlexGrid.FixedCols = 0
If Not RS.EOF Then
FlexGrid.Rows = RS.RecordCount + 1
FlexGrid.Cols = RS.Fields.Count
For i = 0 To RS.Fields.Count - 1
FlexGrid.TextMatrix(0, i) = RS.Fields(i).Name [ô] define o cabeçalho do grid
Next
i = 1
Do While Not RS.EOF
For J = 0 To RS.Fields.Count - 1
If Not IsNull(RS.Fields(J).Value) Then
FlexGrid.TextMatrix(i, J) = RS.Fields(J).Value
End If
Next
i = i + 1
RS.MoveNext
Loop
End If
PreencheFlexGrid1 = True
ErrorHandler:
Exit Function
End Function
*****************************************************************************************
Em um botão, faço o seguinte codigo para preencher:
MSFlexGrid1.Clear
BD1.CursorLocation = adUseClient
If RS_DUP.State = adStateOpen Then RS_DUP.Close
RS_DUP.Open [Ô]SELECT CLIENT_REL,END_REL,BAIRRO_REL,CIDADE_REL FROM RELACOB WHERE CLIENT_REL LIKE [ô]%[Ô] & TXT_Nome.Text & [Ô]%[ô][Ô], BD1, adOpenDynamic, adLockBatchOptimistic
PreencheFlexGrid1 MSFlexGrid1, RS_DUP
MSFlexGrid1.TextMatrix(0, 0) = [Ô]Nome do Cliente[Ô]
MSFlexGrid1.TextMatrix(0, 1) = [Ô]Endereço[Ô]
MSFlexGrid1.TextMatrix(0, 2) = [Ô]Bairro[Ô]
MSFlexGrid1.TextMatrix(0, 3) = [Ô]Cidade[Ô]
******************************************************************************
Não trás nada, e quando eu faço um teste para colocar o resultado da pesquisa em um textbox, mudando como está abaixo, aà dá certo:
BD1.CursorLocation = adUseClient
If RS_DUP.State = adStateOpen Then RS_DUP.Close
RS_DUP.Open [Ô]SELECT CLIENT_REL,END_REL,BAIRRO_REL,CIDADE_REL FROM RELACOB WHERE CLIENT_REL LIKE [ô]%[Ô] & TXT_Nome.Text & [Ô]%[ô][Ô], BD1, adOpenDynamic, adLockBatchOptimistic
Text1.Text = RS_DUP([Ô]CLIENT_REL[Ô])
O que pode está acontecendo???
Grato pela ajuda
Estou precisando preencher um FlexGrid, com a função abaixo que sempre funcionou e agora, não dá nem a pau:
Public Function PreencheFlexGrid1(FlexGrid As Object, RS As Object) As Boolean
On Error GoTo ErrorHandler
If Not TypeOf FlexGrid Is MSFlexGrid Then Exit Function
If Not TypeOf RS Is ADODB.Recordset Then Exit Function
Dim i As Integer
Dim J As Integer
FlexGrid.FixedRows = 1
FlexGrid.FixedCols = 0
If Not RS.EOF Then
FlexGrid.Rows = RS.RecordCount + 1
FlexGrid.Cols = RS.Fields.Count
For i = 0 To RS.Fields.Count - 1
FlexGrid.TextMatrix(0, i) = RS.Fields(i).Name [ô] define o cabeçalho do grid
Next
i = 1
Do While Not RS.EOF
For J = 0 To RS.Fields.Count - 1
If Not IsNull(RS.Fields(J).Value) Then
FlexGrid.TextMatrix(i, J) = RS.Fields(J).Value
End If
Next
i = i + 1
RS.MoveNext
Loop
End If
PreencheFlexGrid1 = True
ErrorHandler:
Exit Function
End Function
*****************************************************************************************
Em um botão, faço o seguinte codigo para preencher:
MSFlexGrid1.Clear
BD1.CursorLocation = adUseClient
If RS_DUP.State = adStateOpen Then RS_DUP.Close
RS_DUP.Open [Ô]SELECT CLIENT_REL,END_REL,BAIRRO_REL,CIDADE_REL FROM RELACOB WHERE CLIENT_REL LIKE [ô]%[Ô] & TXT_Nome.Text & [Ô]%[ô][Ô], BD1, adOpenDynamic, adLockBatchOptimistic
PreencheFlexGrid1 MSFlexGrid1, RS_DUP
MSFlexGrid1.TextMatrix(0, 0) = [Ô]Nome do Cliente[Ô]
MSFlexGrid1.TextMatrix(0, 1) = [Ô]Endereço[Ô]
MSFlexGrid1.TextMatrix(0, 2) = [Ô]Bairro[Ô]
MSFlexGrid1.TextMatrix(0, 3) = [Ô]Cidade[Ô]
******************************************************************************
Não trás nada, e quando eu faço um teste para colocar o resultado da pesquisa em um textbox, mudando como está abaixo, aà dá certo:
BD1.CursorLocation = adUseClient
If RS_DUP.State = adStateOpen Then RS_DUP.Close
RS_DUP.Open [Ô]SELECT CLIENT_REL,END_REL,BAIRRO_REL,CIDADE_REL FROM RELACOB WHERE CLIENT_REL LIKE [ô]%[Ô] & TXT_Nome.Text & [Ô]%[ô][Ô], BD1, adOpenDynamic, adLockBatchOptimistic
Text1.Text = RS_DUP([Ô]CLIENT_REL[Ô])
O que pode está acontecendo???
Grato pela ajuda
Única coisa que tive de declarar foi a variável.
[txt-color=#e80000]Dim RS_DUP As New ADODB.Recordset[/txt-color]
Usei,
MSFlexGrid1....... Preencheu normal
MSHFlexGrid1..... Não preencheu
Testei aqui neste momento.
[txt-color=#e80000]Dim RS_DUP As New ADODB.Recordset[/txt-color]
Usei,
MSFlexGrid1....... Preencheu normal
MSHFlexGrid1..... Não preencheu
Testei aqui neste momento.
rs, aqui tb tá declarada, mais já descobri o problema ontem mesmo, como estou usando um banco de dados DBF, tem que concatenar o .OPEN na hora de abri-lo:
RS_DUP.Open [Ô]SELECT * FROM [Ô] & [Ô]FORNECED.DBF[Ô] & [Ô] WHERE NOME LIKE [ô]%[Ô] & TXT_Nome.Text & [Ô]%[ô][Ô], BD1, adOpenStatic, adLockReadOnly
e outra, descobri também, que o banco de dados está com alguns registros em branco, corrompido.rs
mais valeu
RS_DUP.Open [Ô]SELECT * FROM [Ô] & [Ô]FORNECED.DBF[Ô] & [Ô] WHERE NOME LIKE [ô]%[Ô] & TXT_Nome.Text & [Ô]%[ô][Ô], BD1, adOpenStatic, adLockReadOnly
e outra, descobri também, que o banco de dados está com alguns registros em branco, corrompido.rs
mais valeu
Agora pode encerrar o tópico.
Valeu
Valeu
Tópico encerrado , respostas não são mais permitidas