GOSTARIA DE FAZER ESSA CONSULTA

USUARIO.EXCLUIDOS 08/09/2006 09:06:49
#170125
OLà PESSOAL
TRABALHO EM VBA MAIS COM ACCESS, E ESTOU QUERENDO FAZER UMA CONSULTA DA SEGUINTE MANEIRA.
Tenho um form com um campo chamado "Nome"
eu queri que ao digitar nesse campo fosse automaticamente surgindo o filtro no sub-form
por exemplo se eu digitasse a palavra "Ana" fosse surgindo todas os nomes com esse critério
sei que é uma consulta QueryDef usando talvez uma sql, mais não sei como faze-la, tinha com vcs me ajuda a construir ela.

uso essas linha de ligações
e já sei fazer várias sql

Dim bd As Database
Dim TblCliente As Recordset

Set bd = CurrentDb
Set TblCliente = bd.OpenRecordset("Cliente", dbOpenDynaset)

USUARIO.EXCLUIDOS 08/09/2006 09:48:15
#170136
Tente da seguinte forma (não trabalho com VBA, mas ponha o código no Change do seu textbox, chamado aqui de txtNome):

Dim bd As Database
Dim TblCliente As Recordset

Set bd = CurrentDb
Set TblCliente = bd.OpenRecordset("SELECT * FROM Cliente WHERE Nome Like '%" & txtNome & "%'", dbOpenDynaset)


Explicando, o LIKE utiliza coringas q são substituidos por qualquer termo encontrado, no caso esses coringas são a porcentagem (se não der a porcentagem, tente o asterisco, pois não sei ao certo qual se usa no Access, pois utilizo FireBird), dessa forma se vc digitar "Ana" na consulta acima retornaria por exemplo:
Ana Banana
José Ananias
Ana Paula
Sei lá q Ana da Silva

Caso queira pesquisar apenas pelo começo do nome, tire o primeiro símbolo de porcentagem:
Set TblCliente = bd.OpenRecordset("SELECT * FROM Cliente WHERE Nome Like '%" & txtNome & "%'", dbOpenDynaset)

Retonraria:
Ana Banana
Ana Paula

Bem, é isso, qualquer dúvida poste...flw
USUARIO.EXCLUIDOS 08/09/2006 10:16:59
#170152
MATIOLI tudo bem vou fazer um teste mais como faço para ver resultado dessa forma, através do meu sub-form ou msgbox,

ou mesmo criando a consulta
USUARIO.EXCLUIDOS 08/09/2006 12:24:02
#170190
Citação:

NILDGLAN escreveu:
MATIOLI tudo bem vou fazer um teste mais como faço para ver resultado dessa forma, através do meu sub-form ou msgbox,

ou mesmo criando a consulta



Ok, tendo dúvidas volte a postar...flw
USUARIO.EXCLUIDOS 09/09/2006 10:16:28
#170373
Resposta escolhida
Carinha, acho q o ideal seria colocar estes resultados num grid, não?
Veja com FlexGrid (Coluna 0 = CODIGO, Coluna 1 = NOME):

Dim bd As Database
Dim TblCliente As Recordset

Set bd = CurrentDb
Set TblCliente = bd.OpenRecordset("SELECT * FROM Cliente WHERE Nome Like '%" & txtNome & "%'", dbOpenDynaset)
TblCliente.MoveFirst
With FlexGrid1 'Seu FlexGrid
.Rows = .FixedRows
Do While Not TblCliente.EOF
.AddItem TblCliente("CODIGO")
.TextMatrix(.Rows, 1) = TblCliente("NOME")
TblCliente.MoveNext
Loop
End With


Qualquer dúvida poste...flw
USUARIO.EXCLUIDOS 09/09/2006 10:23:30
#170374
valeu
Tópico encerrado , respostas não são mais permitidas