Olha eu aqui de novo ai vai o seu código de pesquisa
so lembrando que a forma de pesquisa que criei aqui não é sql
estou usando o metodo findMin, FindNext, etc.
se os campos ficarem vazios o programa retornará erro, logo
envio como contornar este problema
então vamos começar:
no seu form vá lá em cima na barra e clique no botão ' MENU EDITOR ' logo
abaixo do Menu View
na propriedade caption escreva "pesquisar"
e em name coloque "mnupesq" e de ok
agora insira estes códigos no seu form:
Private Sub Form_LostFocus()
' esta função fecha seu registro quando o form1
' perde o foco
' poucos sabem que mesmo apos fecahr o programa
' ele continua no sistema do windows
' por isto este código
On Error Resume Next
Dim WS As Workspace
For Each WS In Workspace
For Each DB In WS.Databases
For Each REG In DB.Recordsets
REG.Close
Set REG = Nothing
Next
DB.Close
Set DB = Nothing
Next
WS.Close
Set WS = Nothing
Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
' esta função fecha seu registro
'... igual a anterior, só que esta é quando
' você encerra seu programa
On Error Resume Next
Dim WS As Workspace
For Each WS In Workspace
For Each DB In WS.Databases
For Each REG In DB.Recordsets
REG.Close
Set REG = Nothing
Next
DB.Close
Set DB = Nothing
Next
WS.Close
Set WS = Nothing
Next
End Sub
Private Sub mnupesq_Click()
' esta função chama o outro form, ouseja o form2
Form2.Show 1
End Sub
FEITO ISTO AGORA INSIRA UM NOVO FORM NO PROGRAMA
PARA ISTO VÁ NO MENU PROJECT E CLIQUE EM ADD FORM
VÁ NOVAMENTE EM PROJECT/COMPONENTES E MARQUE
"microsoft windows common controls 6.0 (sp6)"
PRONTO AGORA INCLUA NO PROJETO
UM COMBOBOX E NOMEIE DE "cmblocalpesq"
os demais deixe o nome padrão mesmo
01 textbox
04 OptionButton
02 commandButton
01 ListView
não se preocupe em arrumalos no form pois estou enviando
um configuração padrão para vc ter ideia do que eu fiz
claro posteriormente você poderá mudá-lo
e cole o seguinte código:
Private Sub Command1_Click()
ListView1.ListItems.Clear
If REG.RecordCount <> 0 Then
REG.MoveMin
Do While Not REG.EOF
Set lista = ListView1.ListItems.Add(, , REG("codigo"))
lista.SubItems(1) = REG("nome")
lista.SubItems(2) = REG("endereco")
lista.SubItems(3) = REG("bairro")
lista.SubItems(4) = REG("cidade")
lista.SubItems(5) = REG("cep")
lista.SubItems(5) = REG("fone")
lista.SubItems(5) = REG("email")
REG.MoveNext
Loop
End If
End Sub
Private Sub Command2_Click()
Dim opcao(6) As String
Dim busca As String
opcao(1) = cmblocalpesq & " like'" & Text1.Text & "'" ' busca exatamente o que foi digitado
opcao(2) = cmblocalpesq & " like'" & Text1.Text & "*'" ' busca um nome que comece com que foi digitado
opcao(3) = cmblocalpesq & " like'*" & Text1.Text & "'" 'busca um nome que termine com que foi digitado
opcao(4) = cmblocalpesq & " like'*" & Text1.Text & "*'" 'busca um nome que contenha com que foi digitado (inicio/meio/fim)
ListView1.ListItems.Clear ' limpa o list view para a nova pesquisa
If Option1.Value = True Then busca = opcao(1) ' se option1 estiver selecionado então a busca será opcao(1)
If Option2.Value = True Then busca = opcao(2) ' ...e assim sucessivamente.
If Option3.Value = True Then busca = opcao(3)
If Option4.Value = True Then busca = opcao(4)
REG.FindMin busca ' move para o primeiro registro
Do While REG.NoMatch = False 'enquanto ele encontrar registros (NoMatch=False)
Set lista = ListView1.ListItems.Add(, , REG("codigo")) ' aqui sempre será o primeiro registro a ser exibido
lista.SubItems(1) = REG("nome") ' ... vá inserirndo os dados nas seguintes colunas
lista.SubItems(2) = REG("endereco")
lista.SubItems(3) = REG("bairro")
lista.SubItems(4) = REG("cidade")
lista.SubItems(5) = REG("cep")
lista.SubItems(5) = REG("fone")
lista.SubItems(5) = REG("email")
REG.FindNext busca
Loop
End Sub
Private Sub Form_Load()
'
configuracoes 'carrega as configurações do form
'
' a seguir carrega o combobox (cmblocalpesq) com o nome dos campos
cmblocalpesq.AddItem "codigo"
cmblocalpesq.AddItem "nome"
cmblocalpesq.AddItem "enderco"
cmblocalpesq.AddItem "bairro"
cmblocalpesq.AddItem "cidade"
cmblocalpesq.AddItem "cep"
cmblocalpesq.AddItem "fone"
cmblocalpesq.AddItem "email"
'
' a seguir o código abre o banco de dados desta vez como dynaset (dbOpenDynaset)
'
Set DB = Workspaces(0).OpenDatabase("clientes.mdb") ' ele abrirá este banco...
Set REG = DB.OpenRecordset("tabclientes", dbOpenDynaset) '... e a tabela de clientes(tabclientes)
'
ListView1.FullRowSelect = True ' aqui é abilitado pa você selecionalar a linha inteira do listview1
ListView1.GridLines = True 'ativa as grades do listview. OBS: ...
ListView1.View = lvwReport '...o view tem de estar como lvwReport
ListView1.ColumnHeaders.Add ' adiciona a coluna 1
ListView1.ColumnHeaders(1).Text = "codigo" ' nomeia a coluna1
ListView1.ColumnHeaders.Add ' ...e assim por diante
ListView1.ColumnHeaders(2).Text = "Nome "
ListView1.ColumnHeaders.Add
ListView1.ColumnHeaders(3).Text = "endereco"
ListView1.ColumnHeaders.Add
ListView1.ColumnHeaders(4).Text = "bairro"
ListView1.ColumnHeaders.Add
ListView1.ColumnHeaders(5).Text = "cidade"
ListView1.ColumnHeaders.Add
ListView1.ColumnHeaders(6).Text = "cep"
ListView1.ColumnHeaders.Add
ListView1.ColumnHeaders(7).Text = "fone"
ListView1.ColumnHeaders.Add
ListView1.ColumnHeaders(8).Text = "email"
End Sub
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
' Este código ordena a lista
' por qualquer coluna. Se a lista já estiver ordenada por esta coluna,
' a ordem será invertida.
With ListView1
If (ColumnHeader.Index - 1) = .SortKey Then
.SortOrder = (.SortOrder + 1) Mod 2
Else
.Sorted = False
.SortOrder = 0
.SortKey = (ColumnHeader.Index - 1)
.Sorted = True
End If
End With
End Sub
Private Sub configuracoes()
With Command1
.Caption = "Listar"
.Top = 1080
.Height = 375
.Width = 1215
End With
With Command2
.Caption = "Pesquisar"
.Top = 1080
.Left = 2400
.Width = 1215
End With
With Option1
.Caption = "Exatamente o que foi digitado"
.Height = 255
.Left = 4320
.Top = 120
.Width = 4330
End With
With Option2
.Caption = "Que comece com o que foi digitado"
.Height = 255
.Left = 4320
.Top = 520
.Width = 4330
End With
With Option3
.Caption = "Que termine com o que foi digitado"
.Height = 255
.Left = 4320
.Top = 920
.Width = 4330
End With
With Option4
.Caption = "Que contenha o que foi digitado"
.Height = 255
.Left = 4320
.Top = 1320
.Width = 4330
End With
With cmblocalpesq
.Text = "Escolha o campo a pesquisar"
.Left = 240
.Top = 120
.Width = 3855
End With
With Text1
.Text = ""
.Height = 285
.Left = 240
.Top = 600
.Width = 3855
End With
With ListView1
.Height = 5055
.Left = 210
.Top = 1680
.Width = 8655
End With
With Form2
.Caption = "Pesquisa"
.Height = 7575
.Width = 9195
End With
End Sub
PARA ORGANIZAR O FORM DO JEITO QUE VOCÊ QUISER
BASTA EXCLUIR A FUNÇÃO "CONFIGURACAO"
TESTE E ME DIZ O QUE MAIS VOCÊ PRECISA
UM ABRAÇO
MANDE O SEU MSN FICA MAIS FACIL DE ESCLARECER DÚVIDAS