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]Problema com Consulta SQL no VBA

    Compartilhe
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  FabioPaes em 16/1/2018, 13:23

    Senhores, estou com um problema que não faço a mínima ideia do que pode ser...

    Ao abrir um Recordset utilizando o DateDiff(), o VBa me acusa um Erro no Intervalo "h" <== para retornar em Horas.

    Veja como está o RecordSet:

    rsEsc = db.OpenRecordset("SELECT TOP 2 tbFuncionario.NomeFunc, DateDiff("h",[DtUltimoServ],"02/02/2018") AS xHoras FROM tbFuncionario ORDER BY DateDiff("h",[DtUltimoServ],"02/02/2018") DESC")
    O erro aponta para o H em destaque...
    Erro Retornado:

    Erro de Compilação:
    Era esperado: Separador de Lista )


    Acontece que essa mesma consulta, colada exatamente como está na consulta em modo Designer Funciona 100%.

    Percebi que o mesmo ocorre se eu tentar formatar uma data na consulta.


    .................................................................................
    _____________________________________________________________________
    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
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5623
    Registrado : 15/03/2013

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  ahteixeira em 16/1/2018, 13:51

    Olá Amigo Fábio,

    Teste assim:
    Código:
    rsEsc = db.OpenRecordset("SELECT TOP 2 tbFuncionario.NomeFunc, DateDiff('h',[DtUltimoServ],'02/02/2018') AS xHoras FROM tbFuncionario ORDER BY DateDiff('h',[DtUltimoServ],'02/02/2018') DESC")

    Outra alternativa quando não dá a dupla plica (aspas) " é usar (concatenar) o chr(34)

    Tenha atenção às datas se funfa, se não alternativa fommatar à "Americana" mm/dd/yyyy

    Abraço
    avatar
    Leandro
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1597
    Registrado : 12/11/2009

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  Leandro em 16/1/2018, 13:57

    Bom dia!
    O Sr. ahteixeira matou a charada, já passei pelo mesmo e foi isso que resolveu.


    .................................................................................
    n







    ALGUMAS SOLUÇÕES E IDEIAS EM ACCESS

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

    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  FabioPaes em 16/1/2018, 14:09

    Outra alternativa quando não dá a dupla plica (aspas) " é usar (concatenar) o chr(34)
    Poderiam me arientar onde colocar o Chr(34) pois nunca utilizei... e nao sei onde colocar nesse caso.
    Tenha atenção às datas se funfa, se não alternativa fommatar à "Americana" mm/dd/yyyy
    <== Essas datas na verdade é so como exemplo, pois ela irá mudar de acordo com um Loop... Irei sim formatar ela...

    Grato aos Amigos!


    .................................................................................
    _____________________________________________________________________
    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
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5623
    Registrado : 15/03/2013

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  ahteixeira em 16/1/2018, 14:22

    Olá a todos,

    Assim Fábio:

    Código:
    rsEsc = db.OpenRecordset("SELECT TOP 2 tbFuncionario.NomeFunc, DateDiff(" & Chr(34) & "h" & Chr(34) & ",[DtUltimoServ], #" & Chr(34) & "02/02/2018" & Chr(34) & ") AS xHoras FROM tbFuncionario ORDER BY DateDiff(" & Chr(34) & "h" & Chr(34) & ",[DtUltimoServ], #" & Chr(34) & "02/02/2018" & Chr(34) & ") DESC")

    Abraço
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  FabioPaes em 16/1/2018, 14:36

    Grato Aos Amigos! Das duas formas funcionam...


    Por acaso saberiam me dizer o porque desse Problema??? Fiquei curioso...


    .................................................................................
    _____________________________________________________________________
    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
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5623
    Registrado : 15/03/2013

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  ahteixeira em 16/1/2018, 15:04

    Olá a todos,

    Fábio, no VBA como as aspas ("") é para defenir os inicio e fim da String, veja abaixo a vermelho


    rsEsc = db.OpenRecordset("SELECT TOP 2 tbFuncionario.NomeFunc, DateDiff('h',[DtUltimoServ],'02/02/2018') AS xHoras FROM tbFuncionario ORDER BY DateDiff('h',[DtUltimoServ],'02/02/2018') DESC")


    Ao incluir na instrução confunde o VBA que está a verificar o campo String e não está concatenado, deu para compreender   Neutral

    Abraço
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5623
    Registrado : 15/03/2013

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  ahteixeira em 16/1/2018, 16:47

    Olá a todos,

    Fabio, sei que a explicar nem sempre consigo exprimir a ideia, ficou esclarecido?

    Leandro, folgo em o ver por cá, tem andado desaparecido!

    Abraço a todos
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  FabioPaes em 17/1/2018, 13:34

    Muito Obrigado!!! Entendi perfeitamente!!! Mas que bom que funciona colocando entre 'aspas simples'.

    Grato a Todos!!!


    .................................................................................
    _____________________________________________________________________
    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
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5623
    Registrado : 15/03/2013

    Re: [Resolvido]Problema com Consulta SQL no VBA

    Mensagem  ahteixeira em 17/1/2018, 13:55

    Olá Fabio,

    Mas não esqueça faz muitas vezes fslta, olha aí abaixo para criar num XML.
    [Você precisa estar registrado e conectado para ver este link.]

    Fica mais esta para completar o tópico.
    Obrigado pelo retorno.

    Abraço a todos

      Data/hora atual: 19/12/2018, 16:41