Consulta SQL em Tabela Access por Data.......me ajuda

12/12/2003

0

Tenho um Tabela de Cliente em Access.......Com ( Nome,Endereço,CEP,.............Data )...........O problema e que a DATA , só fica como Data/Time .......Eu quero fazer uma consulta entre duas Data eu uso estes comando abaixo na Propriedade SQL da Query......

SELECT *
FROM Cliente
WHERE Data BETWEEN:data1 AND:data2

................Quando vou passar o Param da DATA para Date não aceita.....da varios problemas ..........Alguem suber me ajuda....[ ]s...Jairo


Jairo-go

Jairo-go

Responder

Posts

12/12/2003

Silvio

Jairo deixa eu ver se entendi
No Seu Banco o Campo data esta como tipo data certo.

Quando vc cadastro um registro vc informa só a data (ex.: 12/12/2003)Certo mas quando salva em seu banco fica (ex 12/12/2003 16:30:20) até ai tudo bem e quando voce vai fazer aconsulta a qual vc disse. Que esta correta. Na opção de Param vc esta colocando data1 e data2 como tipo date.

Pode esta acontecendo o seguinte vc deve colocar no BD no Campo Data o tipo date e Formato coloca ´dd/mm/aaaa´ assim quando salvar salvara apenas data. então não tera problema com a hora. agora se vc precisar da hora também no campo vc deve colocar no param no campo Data1 e Data2 o tipo como DataTim.

Jairo caso ficou confuso de mas detalhes como esta no seu bd e como esta a sua consuta completa e o tipo que esta utilizando no campo Paramns da Query

Silvio - GO Capital


Responder

12/12/2003

Maicongabriel

Experimente colocar (#) no inicio e no fim da data.

´´ + FormatDateTime(´MM/DD/YYYY´, Date) + ´´


Parece extranho, mas eu já tive esse problema e encontrei o seguinte no help do próprio Access :arrow:

O próximo exemplo cria o mesmo objeto QueryDef, utilizando um valor armazenado em uma variável. Observe que os sinais numéricos () que denotam os valores de data precisam estar incluídos na seqüência para serem concatenados com o valor da data. ...



Responder

13/12/2003

Ztiago

Estava com o mesmo problema, em vez de você fazer por parâmetros faça o seguinte:

´ select * from tbl_movbanc where data between ´´ + dinicio + ´´ and ´´ + dfinal + ´´ order by data ´;

acredito que com isso funcione...


Responder

06/01/2004

Ilanocf

Faça da seguinte forma:

[color=red:de1af5d51c][b:de1af5d51c]With SuaTabela Do
Begin
Close;
SQL.Clear;
SQL.Add(´SELECT * FROM Cliente´);
SQL.Add(´WHERE Data>=:P1 AND Data<=:P2´);
SQL.Add(´ORDER BY Nome, Data´);
Parameters.ParamByName(´P1´).Value:=MaskEdit1.Text;
Parameters.ParamByName(´P2´).Value:=MaskEdit2.Text;
Open;
End;[/color:de1af5d51c][/b:de1af5d51c]

Desta forma vc poderá criar qualquer tipo de consulta com mais facilidade e o sistema poderá entender estas linhas com mais rapidez e facilidade.

Espero ter ajudado,

Ilano.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar