Zavrieť

Porady

MS Access: matematicka operacia v poliach formulara

Ahojte,

viete mi poradit ako mozem vykonat nejaku matematicku operaciu vo formulari MS Access pomocou VBA? Napr. prve cislo vydelit druhym od ktoreho odratam cislo 3?

Mam 2 polia, do ktorych budem manualne zadavat ciselne hodnoty. Vysledok matematickej operacie by som chcel aby automaticky davalo do 3 pola.
Napr. pole cislo 1 sa bude volat: text1, pole cislo 2 bude: text2 a vysledok sa po zadani pola 1 a 2 automaticky nastavi do pola 3: text3.

Vie mi niekto poradit kde robim chybu? ... aka musi byt syntax/pripadne nejake ine jednoduchsie riesenie?
Dakujem

Moj kod:

Private Sub vypocitaj()
Me.text3 = (Me.text1)/(Me.text2) - 3
End Sub
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    PaloPa je offline (nepripojený) PaloPa

    PaloPa
    pepok4 Pozri príspevok
    Ahojte,

    ... prve cislo vydelit druhym od ktoreho odratam cislo 3?

    ... Vie mi niekto poradit kde robim chybu? ...

    Private Sub vypocitaj()
    Me.text3 = (Me.text1)/(Me.text2) - 3
    End Sub
    Treba mať na zreteli 2 veci:
    1| matematické: treba ošetriť delenie nulou a správne ozátvorkovať. Zo zadania nie je jasné či 3 sa má odčítať až od výsledku delenia,

    2| Access VBA špecifické
    : ak je hodnota ktoréhokoľvek poľa nevyplnená (a explicitne nepriradená) má hodnotu NULL. Vo výpočtoch ju treba ošetriť cez funkciu NZ (t.j. prevod NULL na 0).

    Code:
    Private Sub Text1_AfterUpdate()
        Call vypocitaj
    End Sub
    
    Private Sub Text2_AfterUpdate()
        Call vypocitaj
    End Sub
    
    Private Sub vypocitaj()
        If Nz(Me.Text2) <> 0 Then
            Me.Text3 = Nz(Me.Text1) / Nz(Me.Text2) - 3
        Else
             Me.Text3 = 0
        End If
    End Sub

    pepok4 je offline (nepripojený) pepok4

    pepok4
    Dakujem za dobre tipy ohladom osetreni na ktore nesmiem zabudnut. Inak uz sa mi to podarilo aj samemu vyriesit a este jednoduchsie nez pisanim VBA kodu, aj ked neviem ci to je najstastnejsie riesenie ale funguje zatial tak ako som chcel. Spravil som to priamo vo formulari napisanim matematickeho vyrazu do "Control Source" pre konkretne pole text3.

    Vyskusam aj tento kod so spomenutymi osetreniami.

    Dik

    MS Access: matematicka operacia v poliach formulara

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.