MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Consulta LEFT JOIN por VBA com criterio. Empty [Resolvido]Consulta LEFT JOIN por VBA com criterio.

    Mensagem  XPTOS 24/3/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;

    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Clebergyn 24/3/2016, 08:49

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


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 24/3/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 https://www.maximoaccess.com/t25987-resolvidoconsulta-left-join-por-vba
    .
    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)
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Clebergyn 24/3/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] & "'))"




    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 24/3/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;
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Clebergyn 25/3/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
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 26/3/2016, 02:03

    Obrigado clebergyn,

    O código funcionou perfeitamente.

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 01:17