SQL PERIODO DE DATAS
Ola amigos tenho uma tabela de pedido de vendas e fiz a seginte SQL:
Dim Procurar As String
Dim ProcurarA As String
Procurar = InputBox([Ô]Digite o Cliente desejado para Consulta:[Ô], , [Ô][Ô])
ProcurarA = InputBox([Ô]Digite o Mês desejado para Consulta:[Ô], , [Ô][Ô])
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and mes = [ô][Ô] & ProcurarA & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Como podem ver nesta Sql seleciona o cliente e o mês e ordeno o resultado por ordem de dataprevista.
Agora estou com a seguinte duvida:
Como faço para fazer com que liste nesta SQL no lugar do Mês fazer periodo de datas? tipo data de inicio e data de fim? deixando o cliente e por ordem de data prevista?
Tentei de varias formas e não consegui, alguem pode me ajudar?
Dim Procurar As String
Dim ProcurarA As String
Procurar = InputBox([Ô]Digite o Cliente desejado para Consulta:[Ô], , [Ô][Ô])
ProcurarA = InputBox([Ô]Digite o Mês desejado para Consulta:[Ô], , [Ô][Ô])
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and mes = [ô][Ô] & ProcurarA & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Como podem ver nesta Sql seleciona o cliente e o mês e ordeno o resultado por ordem de dataprevista.
Agora estou com a seguinte duvida:
Como faço para fazer com que liste nesta SQL no lugar do Mês fazer periodo de datas? tipo data de inicio e data de fim? deixando o cliente e por ordem de data prevista?
Tentei de varias formas e não consegui, alguem pode me ajudar?
SELECT *
FROM PedidoVenda
WHERE Cliente=[ô]VBMANIA[ô]
AND dataprevista
BETWEEN [ô]2009-01-01[ô] AND [ô]2009-12-31[ô]
TECLA, fiz assim:
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and dataprevista between = [ô][Ô] & ProcurarA & [Ô][ô] and [ô][Ô] & ProcurarB & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
mas esta dando erro.
segue erro em anexo.
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and dataprevista between = [ô][Ô] & ProcurarA & [Ô][ô] and [ô][Ô] & ProcurarB & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
mas esta dando erro.
segue erro em anexo.
Supondo que o ProcuraA e o ProcuraB sejam mascaras.
Se For Varaveis ou campo Texto
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and dataprevista between = [ô][Ô] & format(ProcurarA.FormattedText, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô] and [ô][Ô] & format(ProcurarB.FormattedText, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Se For Varaveis ou campo Texto
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Format(Procurar,[Ô]yyyy-mm-dd[Ô]) & [Ô][ô] and dataprevista between = [ô][Ô] & ProcurarA & [Ô][ô] and [ô][Ô] & format(ProcurarB,[Ô]yyyy-mm-dd[Ô]) & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Então o Procurar é um imputbox.
Dim Procurar As String
Dim ProcurarA As Date
Dim ProcurarB As Date
Procurar = InputBox([Ô]Digite o Cliente desejado para Consulta:[Ô], , [Ô][Ô])
ProcurarA = InputBox([Ô]Digite a Data Inicio desejada para Consulta:[Ô], , [Ô][Ô])
ProcurarB = InputBox([Ô]Digite a Data Final desejada para Consulta:[Ô], , [Ô][Ô])
Mesmo assim esta dando o mesmo erro, o que ser a que pode ser?
Dim Procurar As String
Dim ProcurarA As Date
Dim ProcurarB As Date
Procurar = InputBox([Ô]Digite o Cliente desejado para Consulta:[Ô], , [Ô][Ô])
ProcurarA = InputBox([Ô]Digite a Data Inicio desejada para Consulta:[Ô], , [Ô][Ô])
ProcurarB = InputBox([Ô]Digite a Data Final desejada para Consulta:[Ô], , [Ô][Ô])
Mesmo assim esta dando o mesmo erro, o que ser a que pode ser?
[ô]Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and dataprevista between = [ô][Ô] & Format(ProcurarA, [Ô]dd/mm/yyyy[Ô]) & [Ô][ô] and [ô][Ô] & Format(ProcurarB, [Ô]dd/mm/yyyy[Ô]) & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Continua o erro.
Continua o erro.
Não existe sinal de igualdade após a expressão between. Tem que ser between DataInicial and DataFinal. Tira o sinal de igual. Vc não aplicaou a resposta do TECLA da forma que foi informado.
Realemnte ricard, não havia percibido, retirei o igual.
Mas ai esta dando erro no critério da expressão.
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and dataprevista between [ô][Ô] & ProcurarA & [Ô][ô] and [ô][Ô] & ProcurarB & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Mas ai esta dando erro no critério da expressão.
Set var_sql = bancodedados.OpenRecordset([Ô]SELECT * FROM PedidoVenda WHERE Cliente=[ô][Ô] & Procurar & [Ô][ô] and dataprevista between [ô][Ô] & ProcurarA & [Ô][ô] and [ô][Ô] & ProcurarB & [Ô][ô] order by format(dataprevista, [ô]yyyy/mm/dd[ô])[Ô], dbOpenDynaset)
Citação:
Qual o banco de dados
Banco de Dados Access
Citação:LEANDRO_BUENO escreveu:
Banco de Dados Access
SELECT *
FROM PedidoVenda
WHERE Cliente=[ô]VBMANIA[ô]
AND dataprevista
BETWEEN #01/01/2009# AND #12/31/2009#
Lembre de formatar a data INICIAL e FINAL como MM/DD/YYYY.
Tópico encerrado , respostas não são mais permitidas