ERRO AO BUSCAR POR DATA

JORGESALES 04/12/2015 12:06:20
#454801
Olá a todos, estive um pouco ausente devido a problemas de saúde.
Gostaria muito de ter conhecido a programação um pouco mais cedo,
todavia vou aproveitar o pouco tempo de vida que me resta para aprender
um pouco mais.
O código abaixo está retornando valores com formatos errados
(era pra ser 03/12/2015 e está sendo 12/03/2015) o interessante
é que na mesma consulta ele traz resultados corretos também
(tipo 27/11/2015) só ta errando no mês de Dezembro.
        rs.Open [Ô]Select * from tblCad where DT_AGENDADA between # [Ô] & VBA.Format(usrRelCliCadastrados.dtpInicio.Value, [Ô]mm/dd/yyyy[Ô]) & _
[Ô]# and #[Ô] & VBA.Format(usrRelCliCadastrados.dtpFinal.Value, [Ô]mm/dd/yyyy[Ô]) & [Ô]# [Ô], db, 3, 3


Desde já agradeço a todos que possam ajudar.
RICARDOCENTENO 04/12/2015 12:24:52
#454802
Resposta escolhida
Olá JORGESALES.

Bem tem várias formas, mas primeiramente qual tipo de dados você está usando no campo data? Aconselho a você usar string simples e fazer sua manipulação via código, pois ao meu ver, fica mais fácil

Vou postar dois exemplos pra você

   Dim DATA_HOJE As String = [Ô]04/12/2015[Ô]
DATA_HOJE = Format(Date.Now, [Ô]dd/MM/yyyy[Ô]) [ô]Tem que ser com MM, se for mm ele pegará os minutos
MsgBox(DATA_HOJE)


Também podemos converter a string em uma data

   Dim DATA_HOJE As Date

DATA_HOJE = [Ô]04/12/2015[Ô]

MsgBox(DATA_HOJE)


Aí você se pergunta: Qual é a diferença dos dois códigos, visto que, o resultado é o mesmo? A resposta é simples: quando você for fazer um cálculo entre datas por exemplo, com a primeira opção não será possível, pois para fazer cálculo de datas ela deve estar no formato DATE e o valor real é #12/4/2015# onde o VB.NET aplica de acordo com a variável currency do windows.

Espero ter ajudado, qualquer coisa é só voltar a perguntar.
NILSONTRES 04/12/2015 12:36:49
#454804
Citação:

todavia vou aproveitar o pouco tempo de vida que me resta para aprender
um pouco mais.


Não sei qual problemas de Saúde o Senhor tem ou teve, mas não fala isso, eu tenho quase 53, e passei momentos difíceis a dois anos atras, hoje vejo que ainda tenho muito pela frente, alias, achar que já estava velho foi um grave erro que cometi quando ainda tinha, Pasmem, 35 anos de idade.
Hoje nas devidas proporções me sinto um menino, jogo até vídeo Game.
Para começar essa virada, vai pro .net que a vida vai ressurgir.
Força.
Abraço.
JORGESALES 04/12/2015 13:47:21
#454809
Citação:

:
todavia vou aproveitar o pouco tempo de vida que me resta para aprender
um pouco mais.
Não sei qual problemas de Saúde o Senhor tem ou teve, mas não fala isso, eu tenho quase 53, e passei momentos difíceis a dois anos atras, hoje vejo que ainda tenho muito pela frente, alias, achar que já estava velho foi um grave erro que cometi quando ainda tinha, Pasmem, 35 anos de idade.
Hoje nas devidas proporções me sinto um menino, jogo até vídeo Game.
Para começar essa virada, vai pro .net que a vida vai ressurgir.
Força.
Abraço.



Obrigado Nilson.
JORGESALES 04/12/2015 13:50:41
#454810
Ricardo,
vou testar e postar o resultado aqui, muito obrigado desde já.
RICARDOCENTENO 04/12/2015 14:29:46
#454812
Citação:

:
Ricardo,
vou testar e postar o resultado aqui, muito obrigado desde já.



A única coisa que eu tenho dúvida é, como está este campo no seu banco de dados?
JORGESALES 04/12/2015 18:07:40
#454815
Esta como [txt-color=#0000f0]Data/hora[/txt-color]
RICARDOCENTENO 04/12/2015 18:44:30
#454816
Citação:

:
Esta como [txt-color=#0000f0]Data/hora[/txt-color]


Então terá que converter no seu sql pegando uma varáivel do tipo date com aquele exemplo que te passei mais acima. Eu acho mais fácil, posso estar errado, mas prefiro usar este tipo de campo só para armazenar as strings e fazer a manipulação dos dados via código.
Tópico encerrado , respostas não são mais permitidas