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]Utilizando SQL no VBA

    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Utilizando SQL no VBA Empty Utilizando SQL no VBA

    Mensagem  toxicsquall 9/5/2012, 13:19

    Bom dia,
    estou tentando fazer no VBA com que uma variável receba o menor valor de uma tabela com um critério, mas não estou conseguindo.
    eu utilizei o seguinte:


    TEMP = "SELECT Min(Resultado.Num) AS MínDeNum FROM Resultado GROUP BY Resultado.Inserido HAVING (((Resultado.Inserido) = Inserir))"

    Ou seja, minha variável TEMP ela irá receber o valor mínimo do campo Num na tabela Resultado aonde o campo Inserido for igual à uma variável já digitada, no caso a Inserir.

    Mas não está dando certo. Como eu posso fazer isto?
    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 13:42

    Olá gilberto

    Você está definindo uma string para a variável TEMP e não uma consulta, percebe?

    Endereço = "Rua x"
    Bairro = "Bairro y"
    TEMP = "SELECT...."

    No VBA tem duas maneiras de executar uma consulta

    Docmd.RunSQL() - Usado para executar consultas ação (deletar, atualizar, etc)

    Docmd.OpenQuery - Usado para qualquer macro.

    Existe também o db.execute, mas não estou familiarizado com ele.

    Desde que tua instrução SQL esteja correta pode fazer assim:

    TEMP = Docmd.RunMacro("SELECT Min(Resultado.Num) AS MínDeNum FROM Resultado GROUP BY Resultado.Inserido HAVING (((Resultado.Inserido) = Inserir))")

    Abraços


    Última edição por Balem em 9/5/2012, 21:15, editado 1 vez(es)
    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  toxicsquall 9/5/2012, 14:18

    Não seu certo, tentei com o DoCmd.RunSql, DoCmd.RunMacro e como Db.Execute e deu o seguinte erro:

    "Erro de compilação!
    Era esperado Function ou Variável"
    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 14:39

    Está indicando que é erro de digitação.

    No VBA


    Vá no menu Depurar e clique em Compilar (1ª opção) e veja onde está dando o erro.

    Se não conseguir poste a linha que você digitou.
    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  toxicsquall 9/5/2012, 14:56

    ta parando aqui

    DoCmd.RunSQL
    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 15:04

    Como disse no primeiro post, esse comando é somente para consultas Ação, aquelas consultas que deleta, cria tabela, atualiza etc..

    Você deve usar Docmd.RunMacro.

    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Utilizando SQL no VBA Empty talvez

    Mensagem  toxicsquall 9/5/2012, 15:04

    Com o DoCmd.RunMacro deu o mesmo erro.

    talvez isto possa ajudar:

    resumindo o que eu quero fazer é que uma variável receba o menor valor de um determinado campo em uma tabela e armazene este valor em uma variável no vba.
    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 15:12

    Gilberto

    Vamos ponderar com calma.

    Primeiro - já testou essa instrução dentro de uma consulta?

    Segundo - O resultado dessa consulta tem somente um dado ou retorna mais do que isso.

    Caso a consulta retorne mais de um dado creio que não tem como armazenar numa variável.

    Explique melhor o que pretende, creio que estamos no caminho errado.

    Abraços
    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  toxicsquall 9/5/2012, 15:25

    eu fiz ela no designe da consulta e peguei o código SQL e ficou assim:


    SELECT Min(Resultado.Z1) AS MínDeZ1
    FROM Resultado
    HAVING (((First(Resultado.BHID))=3));

    Esta é minha tabela real (a outra eu estava usando como exemplo para você),
    o que preciso é executar esta consulta no VBA. Ela retorna somente um número com vírgula, ou seja, do tipo Double.
    Resultado é o nome da minha tabela, Z1 é o nome do campo que eu vou procurar os dados (no caso o valor mínino), o campo BHID é o que eu vou utilzar para fazer o critério que deverá ser igual à uma variável no meu código VBA (no caso eu coloquei o valor 3 para poder exemplificar).

    no meu código do VBA eu já tinha declarado uma variável tabela as Recordset, não sei se precisa utilizar tabela!Z1 ou no caso o Resultado.Z1.

    Mas o que eu quero fazer é isto, pegar este valor retornado e armazenar em uma variável dentro do meu código vba.
    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 16:13

    Certo, estou indo por parte, para poder entender a coisa.

    Já colocou essa instrução numa consulta para ver se está funcionando?

    Você diz:
    o campo BHID é o que eu vou utilzar para fazer o critério que deverá ser igual à uma variável no meu código VBA (no caso eu coloquei o valor 3 para poder exemplificar)

    No lugar do número 3, você tem uma variável.

    Essa variável está fora das aspas da instrução sql?

    Dessa maneira:
    "SELECT Min(Resultado.Z1) AS MínDeZ1
    FROM Resultado
    HAVING (((First(Resultado.BHID))=" & variavelNoLugarDo3 & "));"

    Entenda que preciso saber se realmente essa consulta está funcionando para você para depois partir para outras soluções.



    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 16:21

    Colocando esse post para você saber que postei novamente, depois irei unir os dois posts.

    Você pode também fazer dessa maneira que é mais fácil.

    Crie a consulta que deseja e salve-a.

    Depois no VBA faça assim:

    TEMP = DLookup("MínDeZ1","nomedaconsulta",criterios)

    No aguardo
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Avelino Sampaio 9/5/2012, 17:03

    Olá

    Experimente:

    TEMP = Dmin("Num","Resultado","Inserido =" & Inserir)

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    toxicsquall
    toxicsquall
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 87
    Registrado : 20/09/2011

    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  toxicsquall 9/5/2012, 18:06

    Muito obrigado o Dmin deu certinho e não deu nenhum erro!!

    MUITO MUITO MUITÍSSIMO OBRIGADO!!!!

    avatar
    Convidad
    Convidado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Convidad 9/5/2012, 18:34

    Valeu pelo retorno!

    Boa sorte!

    Conteúdo patrocinado


    [Resolvido]Utilizando SQL no VBA Empty Re: [Resolvido]Utilizando SQL no VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 07:54