Jump to content
Fórum Script Brasil
  • 0

Ajuda a passar formula do Excel para Access


Nuno Amaral

Question

Boa Tarde,

Tenho uma fórmula no Excel a funcionar bem e gostaria de converte-la para o Access.

A fórmula em excel:

=SE($A2<>"";
TEXTO(Parametros!$B$10;"000") & " " & DIREITA(TEXTO($A2;"000 0");5) &
TEXTO(
98-
RESTO(
923
+3*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");15;1)
+30*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");14;1)
+9*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");13;1)
+90*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");12;1)
+27*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");11;1)
+76*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");10;1)
+81*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");9;1)
+34*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");8;1)
+49*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");7;1)
+5*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");6;1)
+50*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");5;1)
+15*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");4;1)
+53*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");3;1)
+45*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");2;1)
+62*SEG.TEXTO(TEXTO(Parametros!$B$10;"000") & DIREITA(TEXTO($A2;"0000");4) & TEXTO(G2*100;"00000000");1;1);97);"00");"")

A2 é a celula com um valor.

Parametros!$B$10 é outra célula na folha parametros com um valor.

G2 é a célula onde ta outro valor.

Para passar para o Access tenho que associar estes campos às labels do access.

A2 = id_factura

Parametros!$B$10 = subentidade

G2 = Total2

Esta fórmula tem de dar um nº com 9 algarismos.

Se for em Visual Basic também serve.

Alguém consegue ajudar?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

bom vamos lá..

você precisa ter uma tabela de campos com os valores.. e outra com os parametros, caso estes sejam de aplicao universal e não de registro a registro..

o comando SE no excel funciona da seguinte maneira:

SE(criterio;valor se verdadeiro;valor se falso)

no acces funciona assim:

SeImed ou IfImed

SeImed(criterio;valor se verdadeiro;valor se falso)

no entanto.. se você precisar resgatar um valor de um campo em um determinado registro de outra tabela, você pode usar como criterio, valor se verdadeiro ou falso o comando dlookup ou dpesquisa

Dlookup("[campo a ser resgatado]";"tabela ou consulta onde ele se encontra";criterio)

exemplo, eu tenho 2 tabelas.. a tabela PREÇO e a CLIENTE

PREÇO:

[PREÇO]

CLIENTE:

[CODIGO]

então eu quero que os clientes de 0 a 10 recebam 10% de desconto e os clientes de 11 a 20 recebam 20%

no campo do form baseado na tabela PREÇO que vai retornar isso eu coloco:

=SeImed(dlookup("[CODIGO]";"CLIENTE";"[CODIGO] =" & ME.[CODIGO])<11;[PREÇO]-10%;[PREÇO]-20%)

abraços

Edited by Humm
Link to comment
Share on other sites

  • 0

então velho..

o excel é um pouco diferente do access..

entenda que essa formula é apenas um campo calculado.. no access isso v caplica em formularios e relatorios que por sua vez são baseados em tabelas e consultas..

você tem que criar essas tabelas, consultas, forms e relatorias de acordo com sua necessidade.. nomear os campos e tal.. no acess não tem A1 B2 C3.. tem os campos da tabela com os nomes que você criar.

basicamente o que muda é o SE para seImed que você usa num campo dentro do form ou relatorio

abraços

Link to comment
Share on other sites

  • 0

sinceramente não entendi esse código todo mais acho que poderia ficar mais menos assim:

If seuCampoA2<>”” then me.seuCampoQueGuardaOResultado.value= format(me.seuCampoParametro,”0000”)&right(seuCampoA2,2) & format((me.seuCampoG2*100),” 00000000”)

bom a ideia seria essa dai basta ir incluindo o restante (que só você sabe o q e´)...

Ok!

Link to comment
Share on other sites

  • 0

Infelizmente num posso te passar pois não consegui entender sua expressão, então coloquei como seria mais pareceido em VBA, dai agora você tem q completar, aconselho você ir testando o código em partes pra ver o que vai acontecendo e depois montar sua ideia, pois como disse anteriormente não dá entender o que essa sua formula faz....

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...