Avatar billede alessandro Nybegynder
13. november 2009 - 10:41 Der er 2 kommentarer og
1 løsning

"overføre" en formel fra Exell til Access

Hej alle,

jeg har lavet et slags kørselsskema i Excell hvor jeg i et af felterne har en formel som hedder således:

=HVIS(I6<=20;G6*10,35;HVIS(I6<=30;G6*12,42;HVIS(I6<=40;G6*14,23;HVIS(I6<=50;G6*16,04;HVIS(I6<=60;G6*17,6;HVIS(I6<=80;G6*20,44;HVIS(I6<=100;G6*22,77;HVIS(I6<=120;G6*25,88;HVIS(I6<=140;G6*28,72;HVIS(I6<=160;G6*31,57;HVIS(I6<=180;G6*34,16;HVIS(I6<=200;G6*36,74;))))))))))))

Jeg vil nu gerne bruge denne formel på et felt i min formular.
Hvis vi nu siger at feltet jeg vil have koden sat ind i hedder "vogn" og I6 vil hedde "KM" og G6 "RM". Hvordan omskriver jeg denne formel til VisualBasic? jeg går ud fra det er noget med AfterUpdate..

Den flinke person som vil hjælpe behøver ikke at skrive hele formlen, bare sådan at man kan se princippet i den ;)

Tusind tak på forhånd.
Avatar billede tjacob Juniormester
13. november 2009 - 13:01 #1
Selve VB-koden er simpel.

Hvordan du rent praktisk implementerer det i Access kan jeg desværre ikke hjælpe dig med.

    Dim vogn As Double, KM As Double, RM As Double
    If KM <= 200 Then vogn = RM * 36.74
    If KM <= 180 Then vogn = RM * 34.16
    If KM <= 160 Then vogn = RM * 31.57
    If KM <= 140 Then vogn = RM * 28.72
    If KM <= 120 Then vogn = RM * 25.88
    If KM <= 100 Then vogn = RM * 22.77
    If KM <= 80 Then vogn = RM * 20.44
    If KM <= 60 Then vogn = RM * 17.6
    If KM <= 50 Then vogn = RM * 16.04
    If KM <= 40 Then vogn = RM * 14.23
    If KM <= 30 Then vogn = RM * 12.42
    If KM <= 20 Then vogn = RM * 10.35

    vogn får værdien 0, hvis KM>200
Avatar billede tjacob Juniormester
13. november 2009 - 13:03 #2
Der er en lille fejl:
KM og RM skal IKKE erklæres men inputtes, evt i en funktion:

Function XXX(ByVal KM As Double, ByVal RM As Double) As Double

    'koden her
    XXX = vogn

End Function
Avatar billede fdata Forsker
15. november 2009 - 10:35 #3
Du opretter et modul og placerer ovenstående funktion i det  (let tilrettet)

Function XXX(ByVal KM As Variant, ByVal RM As Variant) As Double
  Dim Vogn As Double

  If IsNull(KM) Or IsNull(RM) Then
    XXX=0    ' Eller hvad du nu vil
    Exit Sub
  EndIf

  If KM <= 200 Then vogn = RM * 36.74
  If KM <= 180 Then vogn = RM * 34.16
  If KM <= 160 Then vogn = RM * 31.57
  If KM <= 140 Then vogn = RM * 28.72
  If KM <= 120 Then vogn = RM * 25.88
  If KM <= 100 Then vogn = RM * 22.77
  If KM <= 80 Then vogn = RM * 20.44
  If KM <= 60 Then vogn = RM * 17.6
  If KM <= 50 Then vogn = RM * 16.04
  If KM <= 40 Then vogn = RM * 14.23
  If KM <= 30 Then vogn = RM * 12.42
  If KM <= 20 Then vogn = RM * 10.35

  XXX = Vogn
End Function

I Vogn på din formular lægger du så i feltet KontrolelementKilde følgende:
  =XXX(KM;RM)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester