BUSCAR NA FLEXGRID

GABYS 15/12/2010 16:41:54
#359621
Como eu faço uma busca na flex?
Gostaria de digitar em uma txt e aparecer na flex
JEISONANTONI 15/12/2010 17:16:36
#359625
como assim, explique melhor.
CHARLESTON10 15/12/2010 17:25:35
#359626
Coloca no Form os seguintes Objetos
DATA
FLEXGRID
TEXTBOX
BUTTON

Na Opção do Data1
DataBaseName : O local do seu banco de dados (Access)
DataSource: O nome da tabela

Na opção do MSFlexGrid1
DataSource: Data1

No evento Click do Command1
Coloque este código

Data1.RecordSource = [Ô]Select * from suaTabela where codigo like[Ô] & [Ô][Ô][Ô][Ô] & [Ô]*[Ô] & text1.text & [Ô]*[Ô] & [Ô][Ô][Ô][Ô]
Data1.Refresh

é assim eu seleciono todos o campos da suaTabela e pesquiso pelo campo Codigo (pode ser outro desede que exista na tabela) e pesquiso ele pelo campo Text1.text


ROBSON220BASS 16/12/2010 09:40:26
#359656
eu uso mshflexgrid da seguinte forma.

suponhamos que vc ja fez tudo (conexao, lista de registro) e agora precisa pesquisa um registro dentro do mshflexgrid .

no evento keypress do mshflexgrid.

Private Sub FlexProdutos_KeyPress(KeyAscii As Integer)

If Trim(FlexProdutos.TextMatrix(1, 1)) = [Ô][Ô] Then
Texto = [Ô][Ô]
Else

If Trim(FlexProdutos.TextMatrix(1, 1)) <> [Ô][Ô] Then

Dim i As Integer
Dim S As String
Dim X As String

Texto = UCase(Texto) & UCase(Chr$(KeyAscii))

If KeyAscii = 8 Then

Texto = [Ô][Ô]
LblTexto.Caption = UCase(Texto)

Else
LblTexto.Caption = UCase(Texto)
End If

S = UCase(Texto)

For i = 1 To FlexProdutos.Rows - 1

X = Trim(FlexProdutos.TextMatrix(i, 1))
X = Left(X, Len(S))
X = UCase(X)

If S = X Then
FlexProdutos.TopRow = i
FlexProdutos.Row = i

Exit For
End If
Next
End If
End If

End Sub


obs. acressente uma label no seu form, e coloque o nome de LblTexto


duvidas poste novamente.
XXXANGELSXXX 17/12/2010 09:04:18
#359730
eu deixo o grid sempre com opçao para receber e filtrar dados, assim..


[ô]Formatando o Grid
Sub FormataGrid()
Dim WsHeader As String
With TDBGrid1
.Clear
WsHeader = [Ô]Código |Nome/Razão Social |Contato |Cidade |[Ô]
WsHeader = WsHeader & [Ô]Telefone | | | | | | [Ô]
.FormatString = WsHeader
.ColWidth(2) = 0: .ColWidth(5) = 0: .ColWidth(9) = 0: .ColWidth(8) = 0
.Rows = 1
.FixedRows = 1
.Cols = 10
.SelectionMode = 1
End With
End Sub
[ô]Preenchendo o grid
Sub PreencheGrid()
On Error GoTo ErrorLine
Set Recordset1 = New ADODB.Recordset
StrSql = [Ô]select a.pesscodigo,a.pesscontato,a.pesscat,a.pessnome,b.endcidade,c.contdescricaocontato,d.prodscdreduzido,e.cadcat,e.cadnome,f.idocorr,f.ocorrdescricao [Ô]
StrSql = StrSql & [Ô] from cadpessoas a,cadpessoasendereco b,cadpessoascontato c,produtoseservicosporcliente d,cadcat e,cadocorrencias f [Ô]
StrSql = StrSql & [Ô] where a.pesscodigo=b.pesscodigo and a.pesscodigo=c.pesscodigo and b.endprincipal=1 and c.contprincipal=1[Ô]
StrSql = StrSql & [Ô] and a.pesscodigo=d.prodservcliente and a.pesscat=e.id and d.prodscdreduzido=f.ocorrserial[Ô]

If txtCodigo.Text <> [Ô][Ô] Then StrSql = StrSql & [Ô] and a.pesscodigo like [ô]%[Ô] & txtCodigo.Text & [Ô]%[ô][Ô]
If txtNome.Text <> [Ô][Ô] Then StrSql = StrSql & [Ô] and a.pessnome like [ô]%[Ô] & txtNome.Text & [Ô]%[ô][Ô]
StrSql = StrSql & [Ô] group by a.pesscodigo[Ô]
Recordset1.Open StrSql, Conexao, adOpenStatic, adLockReadOnly
Call FormataGrid
If Recordset1.RecordCount > 0 Then

With TDBGrid1
While Not Recordset1.EOF
.AddItem Recordset1!pesscodigo & _
Chr(9) & Recordset1!pessnome & _
Chr(9) & Recordset1!pesscontato & _
Chr(9) & Recordset1!endcidade & _
Chr(9) & Recordset1!contdescricaocontato & _
Chr(9) & Recordset1!pesscat & _
Chr(9) & Recordset1!cadcat & _
Chr(9) & Recordset1!cadnome & _
Chr(9) & Recordset1!idocorr & _
Chr(9) & Recordset1!ocorrdescricao

Recordset1.MoveNext
Wend
.Row = 1: .Col = 0
End With
Recordset1.Close
Set Recordset1 = Nothing
TDBGrid1.Clear: TDBGrid1.Row = 0: TDBGrid1.Col = 0: Call FormataGrid
End If
Exit Sub
ErrorLine:
MsgError
End Sub



e no evento change do textbox eu chamo o grid, ele faz o filtro de acordo com o que for digitado, e muito pratico e rapido.. ok
Tópico encerrado , respostas não são mais permitidas