pepok4
25.10.12,23:23
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
PaloPa
29.10.12,14:06
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).



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
29.10.12,19:55
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 :)