Usuário com melhor resposta
usar o dateadd no VB6

Pergunta
-
Boa tarde.
Gostaria de saber se é possível usar o dateadd no VB6?
Tenho o seguinte código que funciona no SSMS porem quando passo para o VB6 não funciona. da a mensagem de
compile error argument not optional
o código está da seguinte maneira no VB6:
SQL = " ((SELECT SUM(ESI.Qtde)
FROM Entrada_Itens AS ESI INNER JOIN
dbo.Entrada AS E ON ESI.Cod_Empresa = E.Cod_Empresa AND
ESI.Id_Doc = E.Id_Doc
WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND
(ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND
(ESI.Cod_Empresa = '" & Sys.Empresa & "')AND
(E.Dta_Entrada Between '2006-01-01' AND '" & Format(DateAdd(Day, -1, DataInicio), "yyyy-mm-dd 00:00:00") & "'))
- (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN
dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND
ESI.Id_Doc = S.Id_Doc
WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND
(ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND
(ESI.Cod_Empresa = '" & Sys.Empresa & "') AND
(S.Dta_Entrada Between ('2006-01-01') AND '" & Format(DateAdd(Day, -1, DataInicio), "yyyy-mm-dd 00:00:00") & "'))) AS SI_Qtde," & _
A lógica é de pegar a data que o usuário inseri no form (DATAINICIO) e subtrair um dia para consultar.
Se puderem ajudar, agradeço
Respostas
-
mas já está no comando SQL.
SQL = " ((SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Entrada AS E ON ESI.Cod_Empresa = E.Cod_Empresa AND ESI.Id_Doc = E.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "')AND (E.Dta_Entrada Between '2006-01-01' AND DATEADD(DAY, -1, "&DataInicio&")) - (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between ('2006-01-01') AND DATEADD(DAY, -1, "&DataInicio&")) AS SI_Qtde," & _
dessa forma.- Sugerido como Resposta Giovani Cr sexta-feira, 21 de fevereiro de 2014 15:43
- Marcado como Resposta Giovani Cr segunda-feira, 24 de fevereiro de 2014 13:45
Todas as Respostas
-
Boa tarde.
Gostaria de saber se é possível usar o dateadd no VB6?
Tenho o seguinte código que funciona no SSMS porem quando passo para o VB6 não funciona. da a mensagem de
compile error argument not optional
o código está da seguinte maneira no VB6:
SQL = " ((SELECT SUM(ESI.Qtde)
FROM Entrada_Itens AS ESI INNER JOIN
dbo.Entrada AS E ON ESI.Cod_Empresa = E.Cod_Empresa AND
ESI.Id_Doc = E.Id_Doc
WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND
(ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND
(ESI.Cod_Empresa = '" & Sys.Empresa & "')AND
(E.Dta_Entrada Between '2006-01-01' AND '" & Format(DateAdd(Day, -1, DataInicio), "yyyy-mm-dd 00:00:00") & "'))
- (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN
dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND
ESI.Id_Doc = S.Id_Doc
WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND
(ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND
(ESI.Cod_Empresa = '" & Sys.Empresa & "') AND
(S.Dta_Entrada Between ('2006-01-01') AND '" & Format(DateAdd(Day, -1, DataInicio), "yyyy-mm-dd 00:00:00") & "'))) AS SI_Qtde," & _
A lógica é de pegar a data que o usuário inseri no form (DATAINICIO) e subtrair um dia para consultar.
Se puderem ajudar, agradeço
Ola amigo,
você pode colocar isso no proprio comando SQL.
veja
DATEADD(DAY, 1, "&DataInicio&")
Filipe Costa
-
-
mas já está no comando SQL.
SQL = " ((SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN dbo.Entrada AS E ON ESI.Cod_Empresa = E.Cod_Empresa AND ESI.Id_Doc = E.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "')AND (E.Dta_Entrada Between '2006-01-01' AND DATEADD(DAY, -1, "&DataInicio&")) - (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc WHERE (ESI.Cod_Estoque = '" & dcEstoque.BoundText & "') AND (ESI.Cod_Produto = '" & dtProdutos.BoundText & "') AND (ESI.Cod_Empresa = '" & Sys.Empresa & "') AND (S.Dta_Entrada Between ('2006-01-01') AND DATEADD(DAY, -1, "&DataInicio&")) AS SI_Qtde," & _
dessa forma.- Sugerido como Resposta Giovani Cr sexta-feira, 21 de fevereiro de 2014 15:43
- Marcado como Resposta Giovani Cr segunda-feira, 24 de fevereiro de 2014 13:45