MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Compartilhe
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  XPTOS em Qui 24 Mar 2016, 00:09

    Boa noite,

    Estou tentando adaptar a consulta abaixo para VBA, porém, não funciona nem por reza.
    Se os feras puder me ajudar novamente, eu agradeço.

    INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio, DataCredito, hash )
    SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0) AS QtRecebido, Sum(Comparativo.valorUnitario) AS SomaDevalorUnitario, Sum(Comparativo.valorTotalRecebido) AS SomaDevalorTotalRecebido, Nz([somadevalorTotalRecebido])-Nz([valorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash
    FROM EnviadoConf LEFT JOIN Comparativo ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço)
    GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0), EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash;


    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 650
    Registrado : 29/08/2012

    Re: [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  clebergyn em Qui 24 Mar 2016, 08:49

    na consulta funcionou? coloque o codigo completo, tem que usar o "& _ para vincular uma linha com outra
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  XPTOS em Qui 24 Mar 2016, 11:38

    Bom dia,

    Na consulta funciona. Seria uma adaptação semelhante ao que foi feito no código abaixo pelo Jpaulo no topico [Você precisa estar registrado e conectado para ver este link.]
    .
    Parece igual, mas são consultas diferentes.
    Dim strSql$
    strSql = "INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio )"
    strSql = strSql & " SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia,"
    strSql = strSql & " Sum(EnviadoConf.ValorPago) AS SomaDeValorPago, Nz([QtdRecebido],0) AS QtRecebido, Comparativo.valorUnitario, Comparativo.valorTotalRecebido, Nz([valorTotalRecebido])-Nz([somadevalorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso,"
    strSql = strSql & " EnviadoConf.Convenio"
    strSql = strSql & " FROM EnviadoConf"
    strSql = strSql & " LEFT JOIN Comparativo"
    strSql = strSql & " ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço)"
    strSql = strSql & " GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, Nz([QtdRecebido],0), Comparativo.valorUnitario,"
    strSql = strSql & " Comparativo.valorTotalRecebido, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio"
    strSql = strSql & " HAVING (((EnviadoConf.CódGuia)='" & Me.lstXML.Column(0, i) & "') AND ((EnviadoConf.Convenio)='" & [Forms]![logon]![cboConvenio] & "'));"
    DoCmd.RunSQL (strSql)

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 650
    Registrado : 29/08/2012

    Re: [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  clebergyn em Qui 24 Mar 2016, 14:57

    tente assim, se nao der certo deve ter erro de campos errados, parametros errados etc, me passe a mensagem de erro se der erro
    Código:


    Currentdb.execute "INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio ) "& _
    " SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia," & _
    " Sum(EnviadoConf.ValorPago) AS SomaDeValorPago, Nz([QtdRecebido],0) AS QtRecebido, Comparativo.valorUnitario, Comparativo.valorTotalRecebido, Nz([valorTotalRecebido])-Nz([somadevalorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, "& _
    " EnviadoConf.Convenio  FROM EnviadoConf  LEFT JOIN Comparativo strSql = strSql & " ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço) "& _
    " GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, Nz([QtdRecebido],0), Comparativo.valorUnitario, "& _
    " Comparativo.valorTotalRecebido, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio "& _
    " HAVING (((EnviadoConf.CódGuia)='" & Me.lstXML.Column(0, i) & "') AND ((EnviadoConf.Convenio)='" & [Forms]![logon]![cboConvenio] & "'))"




    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  XPTOS em Qui 24 Mar 2016, 23:44

    Amigo,

    Agradeço a pronta resposta.

    A consulta que pretendo adaptar para vba seria esta:


    INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio, DataCredito, hash )
    SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0) AS QtRecebido, Sum(Comparativo.valorUnitario) AS SomaDevalorUnitario, Sum(Comparativo.valorTotalRecebido) AS SomaDevalorTotalRecebido, Nz([somadevalorTotalRecebido])-Nz([valorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash
    FROM EnviadoConf LEFT JOIN Comparativo ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço)
    GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0), EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash;

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 650
    Registrado : 29/08/2012

    Re: [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  clebergyn em Sex 25 Mar 2016, 06:45

    ok veja se funciona assim então, mas esta consulta funcionou na consulta?
    Código:

    currentdb.execute "INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio, DataCredito, hash ) " & _
    " SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0) AS QtRecebido, Sum(Comparativo.valorUnitario) AS SomaDevalorUnitario, " & _
    " Sum(Comparativo.valorTotalRecebido) AS SomaDevalorTotalRecebido, Nz([somadevalorTotalRecebido])-Nz([valorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash " & _
    " FROM EnviadoConf LEFT JOIN Comparativo ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço) GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0), EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash "

    e mais parecido com o exemplo do J. Paulo
    Código:

    dim strSQL as String
    strSQL="INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio, DataCredito, hash ) "
    strSQL=strSQL & " SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0) AS QtRecebido, Sum(Comparativo.valorUnitario) AS SomaDevalorUnitario, Sum(Comparativo.valorTotalRecebido) AS SomaDevalorTotalRecebido, Nz([somadevalorTotalRecebido])-Nz([valorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash "
    strSQL=strSQL & " FROM EnviadoConf LEFT JOIN Comparativo ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço) GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Nz([QtdRecebido],0), EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash "
    CurrentDb.Execute StrSQL
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 537
    Registrado : 20/01/2014

    Re: [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  XPTOS em Sab 26 Mar 2016, 02:03

    Obrigado clebergyn,

    O código funcionou perfeitamente.

      Data/hora atual: Sex 22 Set 2017, 07:23