DTPICKER - ENTRE DATAS
Olá pessoal !
Estou usando o dtpicker para buscarum perÃodo entre 2 datas. As vezes filtra direitinho e as vezes traz dias fora do intervalo. Vou postar o código que estou usando e gostaria de uma luz dos companheiros para solucionar o problemita. E desde já agradeço pelo aprendizado.
O código:
DTP_I = Format(DTP_I.Value, [Ô]dd/mm/yyyy[Ô])
DTP_F = Format(DTP_F.Value, [Ô]dd/mm/yyyy[Ô])
Conectar
Set rsDESP.ActiveConnection = conn
rsDESP.Open [Ô]select * from pagtos where id=[ô][Ô] & lblID.Caption & [Ô][ô] and datareg between [ô][Ô] & DTP_I.Value & [Ô][ô] and [ô][Ô] & DTP_F.Value & [Ô][ô] [Ô], conn, adOpenStatic, adLockOptimistic
Forte abraço !!
Estou usando o dtpicker para buscarum perÃodo entre 2 datas. As vezes filtra direitinho e as vezes traz dias fora do intervalo. Vou postar o código que estou usando e gostaria de uma luz dos companheiros para solucionar o problemita. E desde já agradeço pelo aprendizado.
O código:
DTP_I = Format(DTP_I.Value, [Ô]dd/mm/yyyy[Ô])
DTP_F = Format(DTP_F.Value, [Ô]dd/mm/yyyy[Ô])
Conectar
Set rsDESP.ActiveConnection = conn
rsDESP.Open [Ô]select * from pagtos where id=[ô][Ô] & lblID.Caption & [Ô][ô] and datareg between [ô][Ô] & DTP_I.Value & [Ô][ô] and [ô][Ô] & DTP_F.Value & [Ô][ô] [Ô], conn, adOpenStatic, adLockOptimistic
Forte abraço !!
Cara, tenta colocar assim:
[txt-color=#e80000][Ô]select * from pagtos where id=[ô][Ô][/txt-color] & lblID.Caption & [txt-color=#e80000][Ô][ô] and datareg between [ô][Ô][/txt-color] & FormatDateTime(DTP_I.Value, DateFormat.ShortDate) & [txt-color=#e80000][Ô][ô] and [ô][Ô][/txt-color] & FormatDateTime(DTP_F.Value, DateFormat.ShortDate) & [txt-color=#e80000][Ô][ô] [Ô][/txt-color]
Se você colocar apenas o valor do DateTimePicker, ele vai retornar as horas também. Colocando o FormatDateTime você só vai retornar a data.
Preste atenção em qual banco de dados você está usando pois a data é tratada de forma diferente entre eles, por exemplo: O Access aceita o padrão dd/MM/yyyy; O MySql e o Sql aceita o padrão yyyy-MM-dd; etc
[txt-color=#e80000][Ô]select * from pagtos where id=[ô][Ô][/txt-color] & lblID.Caption & [txt-color=#e80000][Ô][ô] and datareg between [ô][Ô][/txt-color] & FormatDateTime(DTP_I.Value, DateFormat.ShortDate) & [txt-color=#e80000][Ô][ô] and [ô][Ô][/txt-color] & FormatDateTime(DTP_F.Value, DateFormat.ShortDate) & [txt-color=#e80000][Ô][ô] [Ô][/txt-color]
Se você colocar apenas o valor do DateTimePicker, ele vai retornar as horas também. Colocando o FormatDateTime você só vai retornar a data.
Preste atenção em qual banco de dados você está usando pois a data é tratada de forma diferente entre eles, por exemplo: O Access aceita o padrão dd/MM/yyyy; O MySql e o Sql aceita o padrão yyyy-MM-dd; etc
[Ô]object require[Ô], porém os componentes estão todos no form. Esquisito. Até setei no campo datareg na tabela (mysql) para data...
Acho que foi porque eu te passei um código .NET
Como você está usando VB6, você deve fazer Format(DTP_I.Value, [Ô]yyyy-MM-dd[Ô])
Como você está usando VB6, você deve fazer Format(DTP_I.Value, [Ô]yyyy-MM-dd[Ô])
PEGUDO, eu trabalho com mysql e access. Neste caso estou trabalhando com mysql e o meu campo datareg está como varchar.
A cada sistema estou deixando o access e migrando para mysql.
A cada sistema estou deixando o access e migrando para mysql.
PEGUDO, fechado meu amigo. O problema estava no campo da tabela mysql. O campo datareg obrigatoriamente precisa ser [Ô]data[Ô].
Com vb6 e mysql fica assim então:
[Ô]select * from pagtos where id=[ô][Ô] & lblID.Caption & [Ô][ô] and datareg between [ô][Ô] & Format(DTP_I.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(DTP_F.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] [Ô]
Funcionou redondinho. Valeu companheiro !
Com vb6 e mysql fica assim então:
[Ô]select * from pagtos where id=[ô][Ô] & lblID.Caption & [Ô][ô] and datareg between [ô][Ô] & Format(DTP_I.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] and [ô][Ô] & Format(DTP_F.Value, [Ô]yyyy-MM-dd[Ô]) & [Ô][ô] [Ô]
Funcionou redondinho. Valeu companheiro !
Tópico encerrado , respostas não são mais permitidas