GOSTARIA DE FAZER ESSA CONSULTA
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)
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)
Tente da seguinte forma (não trabalho com VBA, mas ponha o código no Change do seu textbox, chamado aqui de txtNome):
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:
Retonraria:
Ana Banana
Ana Paula
Bem, é isso, qualquer dúvida poste...flw
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
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
ou mesmo criando a consulta
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
Carinha, acho q o ideal seria colocar estes resultados num grid, não?
Veja com FlexGrid (Coluna 0 = CODIGO, Coluna 1 = NOME):
Qualquer dúvida poste...flw
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
valeu
Tópico encerrado , respostas não são mais permitidas