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]Erro OpenRecordSet com SQL

    avatar
    MPC
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 27/12/2015

    [Resolvido]Erro OpenRecordSet com SQL Empty [Resolvido]Erro OpenRecordSet com SQL

    Mensagem  MPC 16/1/2017, 00:01

    Olá amigos.

    Estou tentando fazer uma "consulta" via VBA, usando o código abaixo:
    Código:
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim strSQL As String
        Dim mensagem As String
        
        mensagem = "País de Destino  Total de Vendas" & Chr(13) & Chr(10) & Chr(13) & Chr(10)
        Set db = CurrentDb()
        
        strSQL = "SELECT [Ex-Pedidos].PaísDeDestino, Sum([Quantidade]*[PreçoUnitário]) AS Total " & _
        "FROM [Ex-Pedidos] INNER JOIN [Ex-Detalhes] ON [Ex-Pedidos].NúmeroDoPedido = [Ex-Detalhes].NúmeroDoPedido GROUP BY [Ex-Pedidos].PaísDeDestino;"
        Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
        
        rs.MoveFirst
        While Not rs.EOF
            mensagem = mensagem & rs.Fields("PaísDeDestino") & "        " & [Total] & Chr(13) & Chr(10)
            rs.MoveNext
        Wend
        
        Me![txtResumo].Value = mensagem
        
        rs.Close
        Set rs = Nothing
        Set db = Nothing

    O problema é que o VBA me retorna este erro:
    "O Microsoft Access não pode localizar o campo '|1' referido em sua expressão" quando tenta executar a linha mensagem dentro do While!

    Já tentei diversas maneiras, sem sucesso. Se eu retiro [Total] da variável mensagem, aí o erro some mas obviamente não obtenho o resultado desejado.

    A string SQL eu copiei de uma consulta que faz exatamente a mesma coisa que eu quero.

    Onde estou equivocado?

    Muito obrigado!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Erro OpenRecordSet com SQL Empty Re: [Resolvido]Erro OpenRecordSet com SQL

    Mensagem  FabioPaes 16/1/2017, 13:11

    Experimente:

    mensagem = mensagem & rs![PaísDeDestino] & " " & rs!Total & Chr(13) & Chr(10)


    Mude no Inicio também, pois País tem um acento, e deve ficar entre []
    "SELECT [Ex-Pedidos].[PaísDeDestino]


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    MPC
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 27/12/2015

    [Resolvido]Erro OpenRecordSet com SQL Empty Re: [Resolvido]Erro OpenRecordSet com SQL

    Mensagem  MPC 17/1/2017, 01:43

    Olá Fábio.

    O problema era no uso do aliás Total.

    Depois de muito quebrar a cabeça usei rs.Fields("Total")  e a coisa funcionou.

    Mas essa sua alternativa eu acho muito mais simples (rs!Total). O estranho é que não funciona com ponto (rs.Total).

    Quando ao uso dos colchetes no campo PaísDeDestino, aparentemente não fez diferença. Eu havia lido em um livro que deve se usar caso o campo tenha espaços ([País De Destino]).

    Mas fico muito agradecido pela sua resposta.

    Valeu!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Erro OpenRecordSet com SQL Empty Re: [Resolvido]Erro OpenRecordSet com SQL

    Mensagem  FabioPaes 17/1/2017, 02:32

    Grato pelo retorno amigo. Ate a proxima se Deus quiser.

    Sobre o [] Pode nao dar problema agora... mas pode sim lhe causar dor cabeca mais tarde.

    Quanto ao rs. Ou rs! Eu nao sei bem a diferenca... porem com Recordset so funciona com ! Mesmo.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    [Resolvido]Erro OpenRecordSet com SQL Empty Re: [Resolvido]Erro OpenRecordSet com SQL

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 11:21