SELECT C/ DATA
Prezados Amigos:
Eu tenho registros na minha tabela, mas ele não entende o filtro "data"
selecao = "SELECT Tabela_Historico.CodigoDoCliente, Tabela_Historico.Resumo, Tabela_Historico.Data, Tabela_Historico.Hora, Tabela_Historico.Zona, tabela_clientes.RazaoSocialCliente FROM tabela_clientes INNER JOIN Tabela_Historico ON tabela_clientes.CodigoDoCliente = Tabela_Historico.CodigoDoCliente WHERE Tabela_Historico.Data=#" & Month(Date) & "/" & Day(Date) & "/" & Year(Date) & "# AND tabela_clientes.RazaoSocialCliente='" & CmbClientes.Text & "'"
Set tabela_histprazo = bd.OpenRecordset(selecao)
Como formatar um select com data ?
Eu tenho registros na minha tabela, mas ele não entende o filtro "data"
selecao = "SELECT Tabela_Historico.CodigoDoCliente, Tabela_Historico.Resumo, Tabela_Historico.Data, Tabela_Historico.Hora, Tabela_Historico.Zona, tabela_clientes.RazaoSocialCliente FROM tabela_clientes INNER JOIN Tabela_Historico ON tabela_clientes.CodigoDoCliente = Tabela_Historico.CodigoDoCliente WHERE Tabela_Historico.Data=#" & Month(Date) & "/" & Day(Date) & "/" & Year(Date) & "# AND tabela_clientes.RazaoSocialCliente='" & CmbClientes.Text & "'"
Set tabela_histprazo = bd.OpenRecordset(selecao)
Como formatar um select com data ?
Nuntendi.
Seu campo Tabela_Historico.Data já não é tipo Data/Hora? Se é, então ele deveria seguir a formatação padrão da sua máquina e você não precisaria "desmontar" o Date e "montá-lo" novamente. Se, por outro lado, seu campo for tipo Texto, quem deveria ser formatado como data é o registro do campo, e não a propriedade Date.
Falando em Date, troque-o por Now:
WHERE Tabela_Historico.Data = Now() para campo Data/Hora
WHERE CDate(Tabela_Historico.Data) = Now() para campo Texto
Seu campo Tabela_Historico.Data já não é tipo Data/Hora? Se é, então ele deveria seguir a formatação padrão da sua máquina e você não precisaria "desmontar" o Date e "montá-lo" novamente. Se, por outro lado, seu campo for tipo Texto, quem deveria ser formatado como data é o registro do campo, e não a propriedade Date.
Falando em Date, troque-o por Now:
WHERE Tabela_Historico.Data = Now() para campo Data/Hora
WHERE CDate(Tabela_Historico.Data) = Now() para campo Texto
Aiiiii!!!!
Errei.
WHERE Tabela_Historico.Data "MAIOR QUE" Now() -1
Substitua o "MAIOR QUE" pelo sÃmbolo correspondente.
A sintaxe acima procura registros com data de hoje. Não coloque "= Now()" porque Now pega data e hora e, claro, dificilmente você vai consultar um registro no mesmo instante em que ele foi registrado. [txt-size=2]O Now não deve ficar fora das aspas da string SQL. [/txt-size]
Para pesquisas com data anterior a 30 dias, por exemplo, coloque:
WHERE Tabela_Historico.Data "MENOR QUE" Now() - 30
Errei.
WHERE Tabela_Historico.Data "MAIOR QUE" Now() -1
Substitua o "MAIOR QUE" pelo sÃmbolo correspondente.
A sintaxe acima procura registros com data de hoje. Não coloque "= Now()" porque Now pega data e hora e, claro, dificilmente você vai consultar um registro no mesmo instante em que ele foi registrado. [txt-size=2]O Now não deve ficar fora das aspas da string SQL. [/txt-size]
Para pesquisas com data anterior a 30 dias, por exemplo, coloque:
WHERE Tabela_Historico.Data "MENOR QUE" Now() - 30
Mais uma coisa:
O tratamento de data/hora é uma das variações mais recorrentes no dialeto SQL. Se o código que postei não funcionar (funcionou no Access, com jet), consulte o ANSI SQL ou as referências para SQL conforme o mecanismo de acesso a dados utilizado.
O tratamento de data/hora é uma das variações mais recorrentes no dialeto SQL. Se o código que postei não funcionar (funcionou no Access, com jet), consulte o ANSI SQL ou as referências para SQL conforme o mecanismo de acesso a dados utilizado.
Já se cansou de mim?
Variáveis tipo data/hora para o SQL devem estar dentro de apóstrofos. Então, outra maneira de funcionar:
cdate('" & Date & "')"
Variáveis tipo data/hora para o SQL devem estar dentro de apóstrofos. Então, outra maneira de funcionar:
cdate('" & Date & "')"
Tópico encerrado , respostas não são mais permitidas