[ neptuncokg @ 19.08.2009. 17:09 ] @
Nikako mi ne polazi za rukom da saberem vrednosti iz tri razlicita TextBox-a i da u cetvrtom dobijem zbir.
Napisao sam cod u UserfForm_activate:

TextBox4.Value = TextBox1.Value + TextBox2.Value + TextBox3.Value

I kad unesem U Text.Box1 - 20, u TextBox2 - 30 i u TextBox3 - 40, dobijem rezulat u TextBox4 - "203040", a ne 90 kao sto bi trebalo.

U jednom drugom dokumentu imam zadate funkcije mnozenja i deljenja ( *, / ) i to radi normalno. Nije mi jasno gde gresim i zasto nece da sabira.
Takodje me interesuje kako TextBox-u da dodelim iskljucivo numericku vrednost, tj da ga definisem kao sto definisem celiju u excelu (FormatCells - number). I gde uopste moze da se nadje nesto vise oko dodeljivanja svojstava kontrolama u UserForm-u? Naravno na srpskom jeziku. Hvala unapred.
[ Jpeca @ 19.08.2009. 20:59 ] @
Kako se vrednosti iz textboxa tumače kao tekst, potrebno je izvršiti konverziju unesenih vrednosti u textbox iz teksta u brojčanu vrednost. Za to se koriste funkcije CInt za cele brojeve odnosno CDbl za brojeve koje sadrže decimale. Npr

TextBox4.Value = CInt(TextBox1.Value) + CInt(TextBox2.Value) + CInt(TextBox3.Value)

"Dodeljivanje" isključivo numeričke vrednosti tekstu obavlja se preko metode za validacije unosa u tekst box. Validaciju je najbolje da obaviš u dogadjaju Exit za text box. Npr nešto ovako za Text box 1:

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   If IsNumeric(Me.TextBox1) Then GoTo Kraj
   MsgBox "Neispavan Unos", vbInformation, "Greška!"
   Me.TextBox1.Value = 0
Kraj:


Gde naći o svojstvima kontrola na srpskom je teško pitanje. Pokušaj da nađeš neku dobru knjigu za programiranje u Accessu. Iako nije potpuno isto biće lakše snaći se nakon toga. Pogledaj i neke linkove na top temi http://www.elitesecurity.org/t222802-Office-Rad-sa-makroima.
[ neptuncokg @ 20.08.2009. 11:49 ] @
Hvala na odgovoru, ovo funkcionise. Jedino sto moram svim Text Box-ovima da dodelim ove parametre, a imam ih mnogo.
I dalje mi nije jasno kako bez ovih zakrpa funkcionisu sledece tri formule u drugom UserFormu:

Private Sub CommandButton1_Click()
TextBox8.Value = TextBox5.Value - (TextBox5.Value * (TextBox6.Value / 100))
TextBox9.Value = TextBox7.Value / (100 + ComboBox1.Value) * 100
TextBox10.Value = ((TextBox9.Value - TextBox8.Value) / TextBox8.Value) * 100
End Sub

Sve radi, kao u excelu. Mora da postoji neko podesavanje kontrole TextBox-a.

Pozdrav
[ Jpeca @ 20.08.2009. 12:32 ] @
Kad se u formuli nađe operator * ili / interpretator shvati da su argumenti numerički jer ovi operatori ne postoje za tekst i izvrši implicitnu konverziju iz texta u numerik, kao što bi ti izvršio explicitino sa funkcijom CDBL. Opreator + radi i sa numeričkim izrazima i tekstualnim pa se u ovom slučaju implicitna konverzija ne obavlja.
Dakle možeš da umesto
TextBox4.Value = TextBox1.Value + TextBox2.Value + TextBox3.Value
staviš
TextBox4.Value = TextBox1.Value*1 + TextBox2.Value*1 + TextBox3.Value*1
i dobićeš isti rezultat kao sa konverzijom, ali je to manje razumljivo (bar meni)


[ neptuncokg @ 20.08.2009. 13:50 ] @
Pa znao sam da ima neki razlog, ali ovo je vec nauka. Bice mi od koristi svakako. I samo jos jedna stvar. Da li naredbu da stavim u Text.Box4_Change, ili u UserForm_activate? Inace, sve ovo sto radim ima za cilj da jedan knjigovodstveni programcic koji je bio u excelu, preradim u VBE. I polako ali sigurno mi uspeva. Hvala na podrsci, ali imacu jos problema verovatno. Pozdrav.