SELECIONAR LINHA NO MSFLEXGRID DE ACORDO COM TEXTO

USUARIO.EXCLUIDOS 07/07/2011 15:56:32
#378686
marcelo testei esse codigo, mais não acontece nada, não da erro, não seleciona a linha, não acontece nada, estranho. acho que esse codigo ta certo, mais acho que tem que ao seleciona a linha, muda a cor dele
USUARIO.EXCLUIDOS 07/07/2011 16:19:12
#378691
Pessoal esse codigo aki deu certo.

With MSFlexGrid1
For F = 1 To .Rows - 1
If .TextMatrix(F, 0) = txtPesquisa1.Text Then
.Row = F
MSFlexGrid1.Col = 0
MSFlexGrid1.TopRow = F
Exit For
End If
Next F
End With

mais como faço pra deixa essa linha toda azul -> MSFlexGrid1.TopRow
LUIS.HERRERA 07/07/2011 22:21:23
#378721
Ou você muda a propriedade do flexgrid para selecionar só a linha inteira e não por células, ou então após achar a linha desejada, faz outro loop, percorrendo coluna por coluna e pintando o fundo dessas células da linha. O problema aqui é que pintar o fundo, tem que ter outra rotina que volte a cor padrão, quando selecionar outra linha. Isso é um pouco mais trabalhoso.
USUARIO.EXCLUIDOS 07/07/2011 22:34:20
#378722
Opá pessoal, pronto o codigo abaixo, estar quasse como eu quero, ta faltando apenas um outro detalhe.

With MSFlexGrid1
For F = 1 To .Rows - 1
If .TextMatrix(F, 0) = txtPesquisa1.Text Then
.Row = F
MSFlexGrid1.Col = 0
MSFlexGrid1.TopRow = F
MSFlexGrid1.CellBackColor = vbRed
Exit For
End If
Next F
End With


neste codigo o filtro através do campo txtPesquisa1, só faz o filtro se o nome estiver correto e completo, gostaria que da maneira que fosse digitando fosse filtrando, ae assim ficava como eu quero.
USUARIO.EXCLUIDOS 08/07/2011 07:47:38
#378729
verdade, ficou cerca de 2 segundos mais rapido.
LUIS.HERRERA 08/07/2011 10:06:15
#378752
José ir filtrando como você quer só tem uma forma, usar no change do textbox uma nova consulta ao banco e preencher o grid com o resultado encontrado. O problema disso é o grande volume de dados trafegados na rede a cada digitação de um caracter, além disso se o programa for muito usado e por várias pessoas, talvez tenha problemas de congestionamento no servidor e muita lentidão nas estações, claro levando em conta vários fatores: Número de usuário simultâneos, quantidade de acesso, tamanho da tabela acessada, velocidade do servidor e estações, etc..

Uma alternativa para tentar ajudar nesse caso (meia-boca) seria fazer isso:

Dim iQdeCaracteres As Integer
iQdeCaracteres = Len(txtPesquisa1.Text)
If Mid(.TextMatrix(F, 0),1,iQdeCaracteres) = txtPesquisa1.Text Then


Assim ele procuradia somente nos primeiros caracteres e com quantos você digitar, não precisando digitar o nome completo.

Pode até melhorar um pouco, oferecendo opções de como pesquisar, pelas iniciais ou em qualquer parte do campo (célula), para isso usaria um Option Button de configuração, selecionado antes de pesquisar, onde o padrão poderia ser pelas iniciais. Nesse caso teria de usar uma função de procura em qualquer parte do texto pesquisado.
USUARIO.EXCLUIDOS 08/07/2011 10:12:37
#378754
beleza, vou fazer isso pra ver se fica pampa. muito obrigado.
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas