PESQUISAR VALORES SGRID
Encontrei um código muito interessante que faz a pesquisa de um valor em um grid , no caso o LynxGrid.
Gostaria de adapta-lo para o SGRID.
Quebrei a cabeça , mas não consegui.
No projeto elecoloca uma combo no Main e passa os campos que podem ser pesquisados para a mesma , ele ainda dá a opção de pesquisar em todos os campos:
Resumindo:
Quero digitar um valor em uma textbox e se a combo estiver com "Todos os campos" pesuisar em todo o grid.
Se a combo estiver por exemplo com a opção Nome ( imaginando que o grid contem uma coluna com o campo nome ), pesquisar apenas nesta coluna.
Como faço isso ?
Gostaria de adapta-lo para o SGRID.
Quebrei a cabeça , mas não consegui.
No projeto elecoloca uma combo no Main e passa os campos que podem ser pesquisados para a mesma , ele ainda dá a opção de pesquisar em todos os campos:
Public Function Form_Search(ByVal sSearchWhat As String, ByVal sField As String) As Boolean
Dim li As Long
Dim lx As Long
Dim NewSelIndex As Long
'default
NewSelIndex = -1
Form_Search = False
listEntradas.Redraw = False
If listEntradas.RowCount < 1 Then
GoTo RAE
End If
If LCase(sField) = "all fields" Then 'Opção para pesquisar em todo o grid.
'all fields
For lx = 0 To listEntradas.Cols - 1
NewSelIndex = listEntradas.FindItem(sSearchWhat, lx, lgWith, False)
If NewSelIndex >= 0 Then
listEntradas.ItemSelected(NewSelIndex) = True
listEntradas.EnsureVisible NewSelIndex
Exit For
End If
Next
Else
'OPÇÃO POR COLUNA
'by column
For lx = 0 To listEntradas.Cols - 1
If LCase(sField) = LCase(listEntradas.ColHeading(lx)) Then
NewSelIndex = listEntradas.FindItem(sSearchWhat, lx, lgWith, False)
If NewSelIndex >= 0 Then
listEntradas.ItemSelected(NewSelIndex) = True
listEntradas.EnsureVisible NewSelIndex
Exit For
End If
Exit For
End If
Next
End If
RAE:
If listEntradas.SelectedCount > 1 Then
For li = 0 To listEntradas.RowCount - 1
If NewSelIndex <> li Then
listEntradas.ItemSelected(li) = False
End If
Next
End If
listEntradas.Redraw = True
listEntradas.Refresh
'return
If NewSelIndex >= 0 Then
Form_Search = True
End If
End Function
Resumindo:
Quero digitar um valor em uma textbox e se a combo estiver com "Todos os campos" pesuisar em todo o grid.
Se a combo estiver por exemplo com a opção Nome ( imaginando que o grid contem uma coluna com o campo nome ), pesquisar apenas nesta coluna.
Como faço isso ?
Bem, não sei se vai ajudar mas eu vou adoptar o método mais simples, ou seja...
imagina que tens uma Combo Box e nela tens os seguites valores:
[/c]
Depois o que desejas é procurar numa base de dados os valores introduzidos numa textbox
[/c]
Tu querias procurar um valor em todos os campos certo?
No que está ao meu alcance não te posso ajudar nisso, mas não vai ser com SQL que vais conseguir isso
porque SQL pede um campo para um criterio...
Podes quebrar q cabeça, procurar e procurar que receio que não encontres exactamente aquilo que queres a menos que adoptes uma manha qualquer...
Abraços...
imagina que tens uma Combo Box e nela tens os seguites valores:
[c]Private Sub Preenche_ComboBox()
Combo1.AddItem ("Nome")
Combo1.AddItem ("Morada")
Combo1.AddItem ("Telefone")
Combo1.AddItem ("EMail")
End Sub
[/c]
Depois o que desejas é procurar numa base de dados os valores introduzidos numa textbox
[c]Private Sub cmdOk_Click()
Select Case cmbTabelas.ListIndex
Case 0 'Nome
datDados.RecordSource = "SELECT * FROM ID WHERE Nome LIKE '*" & txtValor & "*';"
datDados.Refresh
Case 1 'Morada
datDados.RecordSource = "SELECT * FROM ID WHERE Morada LIKE '*" & txtValor & "*';"
datDados.Refresh
Case 2 'Telefone
datDados.RecordSource = "SELECT * FROM ID WHERE Telefone LIKE '*" & txtValor & "*';"
datDados.Refresh
Case 3 'EMail
datDados.RecordSource = "SELECT * FROM ID WHERE Email LIKE '*" & txtValor & "*';"
datDados.Refresh
End Select
End Sub
[/c]
Tu querias procurar um valor em todos os campos certo?
No que está ao meu alcance não te posso ajudar nisso, mas não vai ser com SQL que vais conseguir isso
porque SQL pede um campo para um criterio...
Podes quebrar q cabeça, procurar e procurar que receio que não encontres exactamente aquilo que queres a menos que adoptes uma manha qualquer...
Abraços...
Tópico encerrado , respostas não são mais permitidas