AJUDA EM PESQUISA NO SGRID URGENTE
Estou tentando adaptar um código que pesquisa valores no FlexGris , para pesquisar valores no SGRID.
O pojeto em anexo tem um form com um sgrid com 2 colunas , em uma text digito o valor a ser pesquisado.
Ao digitar no text o texto "Col1", notem que ele vai percorrendo todas as células do grid que contem a palavra Col1 , até ai td bem ,mas ao digitar Col2 ( valores que estão na coluna 2 do grid), ele acha o valor na primeira célula e não percorre as demais como na coluna.
Alguem pode me dar uma ajuda ?
O pojeto em anexo tem um form com um sgrid com 2 colunas , em uma text digito o valor a ser pesquisado.
Ao digitar no text o texto "Col1", notem que ele vai percorrendo todas as células do grid que contem a palavra Col1 , até ai td bem ,mas ao digitar Col2 ( valores que estão na coluna 2 do grid), ele acha o valor na primeira célula e não percorre as demais como na coluna.
Alguem pode me dar uma ajuda ?
Poderia me mandar a ocx do Sgrid q vc usa por favor?
Grato
Em anexo a ocx do SGrid
Para ajudar , em anexo o projeto original usando o FlexGrid
A ocx n funciona...da Run Time error 0...ta faltando alguma coisa?
Tenta esta
Mum modulo
[/c]
Exemplo:
'Desenvolvido pelo Matioli e adaptado por Ricardo Tomim
'Pesquisa no Sgrid enquanto digita no textbox
[c]Public Function PesqGrid(ByVal Grid As vbAcceleratorSGrid6.vbalGrid, ByVal vPesq As String, ByVal lCol As Long, ByVal rowInicial As Long, ByVal rowFinal As Long, ByVal i As Integer, Optional ByVal Maius As Byte = 0) As Boolean
If lCol = -1 Then lCol = Grid.SelectedCol
'Dim i As Integer
On Error Resume Next
With Grid
If vPesq <> "" Then
If .Rows > 0 Then
'For i = 1 To .Rows
For i = rowInicial To rowFinal
If Maius = 0 Then
If UCase(RetiraAcentos(.CellText(i, lCol))) Like "*" & UCase(RetiraAcentos(vPesq)) & "*" Then
.SelectedRow = i
.EnsureVisible i, lCol
.SetFocus
PesqGrid = True
Exit Function
Else
PesqGrid = False
End If
Else
If RetiraAcentos(.CellText(i, lCol)) Like "*" & RetiraAcentos(vPesq) & "*" Then
.SelectedRow = i
.EnsureVisible i, lCol
.SetFocus
PesqGrid = True
Exit Function
Else
PesqGrid = False
End If
End If
Next i
End If
Else
If .Rows > 0 Then
.SelectedRow = 1
.EnsureVisible 1, lCol
.SetFocus
End If
End If
End With
End Function
[/c]
Exemplo:
with me.Grid
Call PesqGrid(.Grid1, Me.txtPesquisar.Text, .SelectedCol, .SelectedRow + 1, .Rows, .SelectedRow)
end with
Faltou a função RetiraAcentos
Function RetiraAcentos(ByVal texto As String) As String
Dim i As Integer
Dim c As String
Dim nTexto As String
nTexto = ""
If Len(i) > 0 Then
For i = 1 To Len(texto)
c = (Mid$(texto, i, 1))
Select Case c
Case "á", "à", "ã", "â", "ä", "ÃÂÂ", "À", "Ã", "Â", "Ä"
c = "A"
Case "é", "è", "ê", "ë", "é", "È", "ÃÅ ", "Ë"
c = "E"
Case "ÃÂÂ", "ì", "î", "ï", "ÃÂÂ", "ÃÅ’", "ÃŽ", "ÃÂÂ"
c = "I"
Case "ó", "ò", "õ", "ÃÂ'", "ö", "Ó", "۪̉", "̉ۢ", "Ãâ€Â", "Ö"
c = "O"
Case "ú", "ù", "û", "ü", "ÃÅ¡", "Ãâ„¢", "Û", "ÃÅ“"
c = "U"
Case "ç", "Ç"
c = "C"
Case "ñ", "Ñ"
c = "N"
End Select
nTexto = nTexto + c
Next
End If
RetiraAcentos = nTexto
End Function
Copiei o código mas não funcionou.
Em anexo o exemplo , oque está errado ?
Em anexo o exemplo , oque está errado ?
faltou o form
Tópico encerrado , respostas não são mais permitidas