PESQUISA EM CAMPO TEXT

MARCELO.VB.PIRA 08/03/2005 12:55:57
#71700
oi!!! eu de novo!!!!

estou usando a seguinte clausula para filtrar uma pesquisa:

20 SQL = "Select * from vendas where Data_da_venda between #" & Text1 & "# and #" & Text2 & "#"
30 DtVenda.RecordSource = SQL
40 DtVenda.Refresh

onde durante os teste:
text1 = 06/03/2005
text2 = 08/03/2005

apesar de saber que existe registros com o campo data_da_venda = 07/03/2005, não me aparece nenhum...

"detalhezinho basico:"

o campo data_da_venda foi criado em formato TEXT...

o between só vai fazer a busca no campo com formato DATE??? num tem um "jeitinho" de fazer com o campo no formato TEXT???

Obrigado
LCSD 08/03/2005 13:31:06
#71708
Tente alterar sua cláusula SQL para esta dakí e veja se funcionará:

  "Select * from vendas where Data_da_venda between '" & Text1 & "' and '" & Text2 & "'" 
USUARIO.EXCLUIDOS 08/03/2005 13:38:08
#71709
Olá Marcelo...

Tente assim:

SQL = "Select * from vendas where Data_da_venda between #" & CDate(Format(Text1, "MM/DD/YYYY")) & "# and #" & CDate(Format(Text2, "MM/DD/YYYY")) & "#"

Até mais...

THIAGO.CESAR 08/03/2005 14:33:41
#71725
Resposta escolhida
Marcelo,

Só vai funcionar se você converter para o formato de Data na própria consulta:
SQL = "Select Vendas.*,CDate(Data_da_venda) As DtVenda from vendas where DtVenda between #" & Text1 & "# and #" & Text2 & "#" 


Agora é só realizar alguns testes para ver a questão de dd/mm/yyyy ou mm/dd/yyyy...
MARCELO.VB.PIRA 08/03/2005 17:26:25
#71773
a dica do LCSD funcionou perfeitamente...

mas aprofundando o assunto, eu pude observar que a dica do HELDER ficou meio estranha, já que ela mudaria o format da string (text1 e text2) , quando o normal seria mudar o formato do campo no BD assim como indicou o THIAGO (master of masterÂÂÂ's).

vou ficando por enaunto com a dica do LCSD, mas a dica do THIAGO vai ficar arquivada para MUITO uso no futuro... por um erro de norma(ti)(li)zação de meus BDÂÂÂ's, todos os campos estão gravados como TEXT, e não tem como mudar isso agora (por enquanto).

Muito obrigado a todos... VALEU!!!!!

Ps. Thiago,desculpe não usar a sua dica desta vez, ok??? mas o LCSD meu deu uma luz mais rápida... mas gostaria que vc se demorasse mais sobre este aspecto desta consulta. tipo: e se eu tivesse q ler dois campos TEXT, sendo um currency e outro DATE ??? como ficaria a clausula???

Obrigado a todos...

THIAGO.CESAR 09/03/2005 08:08:17
#71843
Citação:

Thiago,desculpe não usar a sua dica desta vez, ok???


Fala sério Marcelo... Tu acha que eu vou ficar zangado porque o LCSD te arrumou a maneira mais fácil? Que isso, velho... a gente tá aqui pra aprender uns com os outros...
Sinceramente eu achei que não funcionaria porque se você colocar algumas datas e pedir para ordernar por data, a consulta sai assim:
01/01/2008
10/01/1999
20/12/1960
21/01/2005
Viu? O Access pega primeiro o que começa com zero e não tá nem aí para o de 1960, que deveria vir primeiro... por isso achei que não ia funcionar... Mas o Fórum está aí pra isso, a gente vai vivendo e aprendendo... Tu quer me comparar com o LCSD, tá maluco?? O cara sabe muito...

P.S: master of masterÂÂÂ's ??[S90]. Fico lisongeado, mas não me sinto a vontade. Prefiro a idéia do bordel...
MARCELO.VB.PIRA 09/03/2005 17:22:33
#71983
ok... mas vc não respondeu minha perguntinha.. esqueceu "MASTER"????
THIAGO.CESAR 09/03/2005 17:47:26
#71990
SQL = "Select Vendas.*,CDate(Data_da_venda) As DtVenda, CCur(Valor_da_venda) as Valor from vendas where DtVenda between #" & Text1 & "# and #" & Text2 & "# AND Valor > 150"
USUARIO.EXCLUIDOS 10/03/2005 01:17:57
#72053
Se você fez a pesquisa no campo de texto você deverá usar um apóstrofo ( ' ) no lugar do jogo da velha ( # ), e se for DATA você deverá continuar a usar o ( # )
Tópico encerrado , respostas não são mais permitidas