[ darkog @ 29.10.2006. 15:21 ] @
Napravio sam dve f-je. Jedna prima 2 parametra (kolicina,cena), a druga 1 parametar (proizvodID).
Cilj je da se cena proizvoda izracunava na osnovu kolicine i cene potrosnog materija koji se koristi pri izradi istog.
Prva f-ja CalcVrednost je OK isprobao sam je u Immediate prozoru.
Problem je ova druga, kada hocu da je probam u Immediate prozoru pojavi se greska: "Too Few Parameters Expected 2" ...
Funkciju CenaGP(cena gotovog proizvoda) postavim na After_Update obrasca Normativ
koji se popunjava kolicinom i cenom repro materijala i vrednoscu ProizvodID (za koji proizvod se radi normativ).


Code:

Public Function CalcVrednost(intKolicina As Integer, curCena As Currency) As Currency
Dim curvrednost As Currency
CalcVrednost = 0
curvrednost = intKolicina * curCena
CalcVrednost = curvrednost
End Function

Code:

Public Function CenaGP(ProizvodID As Long) As Currency
Dim dbs As Database
Dim objStavkeNormativa As New ADODB.Recordset
Dim SQLstmt As String

Set dbs = CurrentDb
CenaGP = 0

SQLstmt = "SELECT proizvodID,Sum(CalcVrednost(NZ(intKolicina,0),NZ(curCena,0))) " & _
" AS CenaProizvoda FROM tblReproMaterijal INNER JOIN tblNormativ ON tblReproMaterijal.RMID = tblNormativ.RMID " & _
"GROUP BY tblNormativ.ProizvodID HAVING (tblNormativ.ProizvodID) = " & ProizvodID

Set objStavkeNormativa = dbs.OpenRecordset(SQLstmt)

' objStavkeNormativa.Open SQLstmt, CurrentProject.Connection, adOpenDynamic, adLockOptimistic 
(ako umesto gornjeg reda izvrsim ovaj, opet javi gresku: no value given for one or more required parameters)

If Not objStavkeNormativa.EOF Then
CenaGP = Nz(objStavkeNormativa!CenaProizvoda, 0)
End If


objStavkeNormativa.Close
Set objStavkeNormativa = Nothing
End Function


Verovatno gresim u prosledjivanju parametara funkciji "CenaGP" jer SQL radi.
[ darkog @ 31.10.2006. 11:57 ] @
Reseno.
Problem je pravila F-ja CalcVrednost() koju poziva f-ja CenaGP(). Ne znam zasto ali bez pozivanja ove f-je sve radi kako treba
[ izonic @ 31.10.2006. 19:40 ] @
Neznam sta ti je ovo "CenaGP", ako je funkcija kako sam te razumio onda poziv funkcije ide ovako:

X=Imefunkcije(UlazmiParametar1, UlazniPrametar2)
Sa dva ulazna parametra i sa izlazom.
Ili
call imefunkcije()