none
usar o dateadd no VB6 RRS feed

  • 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


    quinta-feira, 20 de fevereiro de 2014 20:07

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
    quinta-feira, 20 de fevereiro de 2014 20:30

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

    quinta-feira, 20 de fevereiro de 2014 20:13
  • mas já está no comando SQL.
    quinta-feira, 20 de fevereiro de 2014 20:19
  • 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
    quinta-feira, 20 de fevereiro de 2014 20:30