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


3 participantes

    [Resolvido]expressoes com o construtor

    avatar
    missura
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 22/05/2012

    [Resolvido]expressoes com o construtor Empty expressoes com o construtor

    Mensagem  missura 3/10/2012, 14:11

    bom dia pessoal....

    tenho uma consulta ela tem três expressões...

    1ª Expr1: ([TblPedido]![VENDA]-[TblPedido]![COMPRA])/[QTDE_PARCELAS]
    2ª Expr2: (([TblPedido]![VENDA]-[TblPedido]![COMPRA]-[TblPedido]![FRETE]-[TblFinanceiro]![IMPOSTOS_DISTRIBUIDOR])/[QTDE_PARCELAS])*0,8367
    3ª Expr3: ([Expr2]*0,1)/[QTDE_PARCELAS]

    Porem eu queria ver se tem como incluir uma formula que muda o calculo da 2ª expressão quando o “DISTRIBUIDOR” = VICMI
    Ai a formula teria que ficar assim:
    Expr: (([TblPedido]![VENDA]-[TblPedido]![COMPRA]-[TblPedido]![FRETE]-[TblFinanceiro]![IMPOSTOS_DISTRIBUIDOR]/[QTDE_PARCELAS])

    Eu tenho duas formas de negócio uma através de distribuidores.. e outra quando é pela Vicmi, quando o faturamento é feito via vicmi eu não tiro os 16,33% igual na expressão 2. Tem como eu escrever um código, que diferencia o calculo.. tipo se no distribuidor diferente de VICMI o sistema calcula conforme a expr2... se o distribuidor = Vicmi ele usa a expressão abaixo
    Expr: (([TblPedido]![VENDA]-[TblPedido]![COMPRA]-[TblPedido]![FRETE]-[TblFinanceiro]![IMPOSTOS_DISTRIBUIDOR]/[QTDE_PARCELAS])

    abraços
    rodrigo
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  criquio 3/10/2012, 14:29

    Use o SeImed ou Iif caso seu Access seja em inglês:

    SeImed([NomeCampo]="Condição1";Expressão1;Expressão2)


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    missura
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 22/05/2012

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  missura 3/10/2012, 14:38

    Criquio, bom dia.

    entao eu nao entendi bem.. sou bem leigo...
    vou usar o SeImed(NomeCampo]="Condição1";Expressão1;Expressão2)

    vai ficar assim?
    SeImed([DISTRIBUIDOR]=VICMI"Condição1";Expressão1;Expressão2)

    outra duvida.. onde eu vou colocar esse codigo SeImed? crio tipo uma nova expressao na consulta?

    e como faço para colocar [DISTRIBUIDOR]diferente de VICMI (tenho coisa de uns 10 outros distribuidores nesse campo.)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  criquio 3/10/2012, 14:44

    Você vai substituir as palavras pelo que elas estão indicando. No lugar de "Condição1" você vai colocar a primeira condição. No lugar dos nomes expressões, você coloca as expressões propriamente ditas. Se for satisfeita a condição inserida, será retornado a primeira expressão, caso contrário, será retornada a segunda condição.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    missura
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 22/05/2012

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  missura 3/10/2012, 14:54

    criquio,

    então fica assim:

    SeImed([DISTRIBUIDOR]="VICMI";Expr1;Expr3;Expr4)
    com a instrução acima, vai fazer o calculo usando a expressao para Vicmi.
    essa instruçao eu coloco como uma nova expressao na consulta certo..?

    e como escrevo para a condição que é diferente de VICMI?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  criquio 3/10/2012, 16:43

    Veja bem, a estrutura do SeImed é semelhante à do Se no Excel. Vamos supor que você tenha um campo na consulta chamado Idade e quer que um outro campo exiba o tempo "Menor" caso a idade seja menor que 18 e "Maior" caso seja maior ou igual a 18. A expressão nesse campo seria:

    =SeImed([Idade]<18;"Menor";"Maior")

    Lendo a expressão por extenso, seria como se o campo aonde você colocou a expressão estivesse dizendo o seguinte:

    Se o valor do campo Idade for menor do que 18, então, coloque a palavra Menor em mim, caso contrário, coloque a palavra Maior em mim.

    O SeImed significa Se. O primeiro ponto e vírgula significa Então e o último ponto e virgula significa Caso contrário. Se for mais de duas condições, aí você precisará repetir o SeImed. Vamos supor que você queria dividir a idade em três faixas da seguinte maneira: se a idade for menor do que 18, escrever a palavra Menor. Se a idade for menor que 40, escrever a palavra "Jovem" e se for maior ou igual a 40, escrever "Quarentão". A expressão seria:

    =SeImed([Idade]<18;"Menor";SeImed([Idade]<40;"Jovem";"Quarentão"))

    Duas observações à respeito do SeImed:

    1 - O SeImed será escrito o número de condições menos 1. Se são duas condições, ele será escrito 1 vez, se forem três condições, ele será escrito 2 vezes;

    2 - No final da expressão, você deve fechar todos os parênteses abertos para cada vez que escreveu SeImed.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    missura
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 22/05/2012

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  missura 3/10/2012, 17:27

    Criquio, boa tarde

    escrevi a expressão.. veja como ficou:
    Expr2: SeImed([DISTRIBUIDOR]=[VICMI];(( [VENDA] - [COMPRA] - [FRETE] - [IMPOSTOS_DISTRIBUIDOR] )/[QTDE_PARCELAS]);(( [VENDA] - [COMPRA]- [FRETE] - [IMPOSTOS_DISTRIBUIDOR] )/[QTDE_PARCELAS])*0,8367)

    porém quando gero a consulta.. ele abre uma janela "INSERIR VALOR DO PARAMETRO" VICMI
    Criquio, o construtor de expressoes coloca automaticamente o VICMI ENTRE [] vi no exemplo que vc não coloca entre colchetes a referencia.

    o que fiz de errado?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  criquio 3/10/2012, 17:31

    Tente substituir os colchetes de [VICMI] para aspas: "VICMI"


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    missura
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 22/05/2012

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  missura 3/10/2012, 17:50

    muito obrigado Criquio, ficou perfeito... adorei a explicação... ai consegui entender como funciona.. muito bom mesmo...
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  Cláudio Más 3/10/2012, 20:23

    (tenho coisa de uns 10 outros distribuidores nesse campo.)

    Nesse caso, a função Opção() é mais indicada no lugar de SeImed():

    Função Switch()

    Conteúdo patrocinado


    [Resolvido]expressoes com o construtor Empty Re: [Resolvido]expressoes com o construtor

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/5/2024, 09:38