INSTUCAO SQL COM FILTRO POR DATA

NAMON 02/11/2011 19:03:58
#388334
[ô]Esta rotina está funcionando corretamente
Private Function Contar() As String
Dim SQL As String
Dim QtReg As Integer
Dim QtRegb As Integer
Dim Total1 As Integer
Dim Totalb As Integer
SQL = [Ô]SELECT Count(Tabela1!Ordem) as Total1 From Tabela1[Ô]
Set Tabela1 = vgDb.OpenRecordSet(SQL, dbOpenDynaset)
QtReg = Tabela1!Total1
SQL = [Ô]SELECT Count(Tabela2!Ordem) as Totalb From Tabela2[Ô]
Set Tabela2 = vgDb.OpenRecordSet(SQL, dbOpenDynaset)
QtRegb = Tabela2!Totalb
Contar$ = Str(QtReg + QtRegb)
End Function

GOSTARIA DE INCLUIR UM FILTRO PELO CAMPO DATAENTRADA DAS TABELAS ALIMENTANDO 2 VARIÁVEIS
QUE O USUÁRIO PREENCHE AO ENTRAR NO FORMULÁRIO
Dt_ini (Data inicial)
Dt_fim (Data final)

TENTEI DA SEGUINTE MANEIRA, MAS OS CAMPOS APARECEM DA CONTAGEM [Ô]EM BRANCO[Ô]:
======================================

Private Function Contar() As String
Dim SQL As String
Dim QtReg As Integer
Dim QtRegb As Integer
Dim Total1 As Integer
Dim Totalb As Integer
SQL = [Ô]SELECT Count(Tabela1!Ordem) as Total1 From Tabela1 WHERE [Ô] & _
[Ô]TABELA1.DATAENTRADA BETWEEN CDate([ô][Ô]& Dt_ini &[Ô][ô]) And CDate([ô][Ô]&Dt_fim&[Ô][ô])[Ô]
Set Tabela1 = vgDb.OpenRecordSet(SQL, dbOpenDynaset)
QtReg = Tabela1!Total1
SQL = [Ô]SELECT Count(Tabela2!Ordem) as Totalb From Tabela2 WHERE [Ô] & _
[Ô]TABELA2.DATAENTRADA BETWEEN CDate([ô][Ô]& Dt_ini &[Ô][ô]) And CDate([ô][Ô]& Dt_fim &[Ô][ô])[Ô]
Set Tabela2 = vgDb.OpenRecordSet(SQL, dbOpenDynaset)
QtRegb = Tabela2!Totalb
Contar$ = Str(QtReg + QtRegb)
End Function

O que está errado nessa instrução?
MARCELO.TREZE 02/11/2011 19:36:11
#388337
Resposta escolhida
qual o banco de dados?

se for acces seria assim

SQL = [Ô]SELECT Count(Ordem) as Total1 From Tabela1 WHERE [Ô] & _
[Ô]DATAENTRADA BETWEEN #[Ô]& Format(Dt_ini,[Ô]mm/dd/yyyy[Ô]) &[Ô]# And #[Ô]& Format(Dt_fim,[Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]


se for mysql ou sqlserver seria assim


SQL = [Ô]SELECT Count(Ordem) as Total1 From Tabela1 WHERE [Ô] & _
[Ô]DATAENTRADA BETWEEN [ô][Ô]& Format(Dt_ini,[Ô]YYYY-MM-DD[Ô]) & [Ô][ô] And [ô][Ô]& Format(Dt_fim,[Ô]YYYY-MM-DD[Ô]) & [Ô][ô][Ô]
NAMON 02/11/2011 20:12:09
#388338
Obrigado Marcelo,

O banco de dados é Access!
Tente utilizar o Format, mas me retornou erro. Apesar de que a forma que utilizei foi
...BETWEEN [ô][Ô]& Format(Dt_ini,[Ô]mm/dd/yyyy[Ô]) & [Ô][ô] And [ô][Ô]& Format(Dt_fim,[Ô]mm/dd/yyyy[Ô]) & [Ô][ô][Ô]

Acredito tenha sido esse o meu erro.
Vou testar seu dica!
Sempre você para me salvar do sufôco!!!

Abraços

Enéa
Tópico encerrado , respostas não são mais permitidas