MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Consulta LEFT JOIN por VBA.

    Compartilhe

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

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

    [Resolvido]Consulta LEFT JOIN por VBA.

    Mensagem  XPTOS em Sex 18 Mar 2016, 14:15

    Prezados, bom dia,

    Criei a consulta abaixo pelo assistente do access e chamo ele por DoCmd.OpenQuery "QueryComparativoDetalhe", no entanto, ao tentar adaptar para executar por VBA, não consigo prosseguir pelo fato de estar ligada a duas tabelas ligadas por FROM EnviadoConf LEFT JOIN Comparativo ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço).

    Código completo:
    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 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]));


    Se os amigos puder me da uma dica para tratar esta ocorrência eu agradeço.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Consulta LEFT JOIN por VBA.

    Mensagem  JPaulo em Sex 18 Mar 2016, 15:22

    Código:
    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)


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

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

    Re: [Resolvido]Consulta LEFT JOIN por VBA.

    Mensagem  XPTOS em Sex 18 Mar 2016, 16:10

    Mestre,

    Muito obrigado pela ajuda.

    Problema solucionado!

    Obs: O que significa/para que serve o ($) no select que declarou na variável Dim strSql$?

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Consulta LEFT JOIN por VBA.

    Mensagem  JPaulo em Sex 18 Mar 2016, 16:16

    Em vez de escrever "Dim x As String", reduz os caracteres no VBA e escreve apenas "Dim x$", o simbolo dólar diz que é string (texto).

    Em vez de escrever "Dim x As Integer", reduz os caracteres no VBA e escreve apenas "Dim x%", o simbolo porcentagem diz que é number (numero).

    Obrigado pelo retorno o forum agradece.



    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Sab 03 Dez 2016, 02:26