Predmet:Re: Radni nalog na osnovu dnevnog prometa
Evo Procedura.
Opet napominjem da je ovo ludost sto radis.
Ovo je ono kada od kobasice hoces napraviti bika.
Procedura ce raditi dobro ukoliko su procenti priblizno tacni i iznos tacan na osnovu kolicina.
Raskini vezu tblRadniNalog i TblradniNalogStavke te pobrisi podatkke iz njih i onda napravi RdniNalogID autonuber.
Poslije ponovo napravi relaciju i to sa kaskadnim brisanjem.
PreuzmiIzvorni kôd (Visual Basic):Function RadniNalog(Datum As Date)
Dim Db As Database
Dim Rs1 As Recordset, Rs2 As Recordset
Dim SQL As String, DatumS As String
Dim Suma As Currency, K As Currency, Ostatak As Currency
Dim ID As Integer
Dim Iznos As Single, Procenat As Single, Cijena As Single
Dim BrKomada As Integer
DoCmd.SetWarnings False
DatumS = Format(Datum, "mm-dd-yyyy")
SQL = "SELECT Sum( Razduzenje) AS Suma FROM tblPromet " _
& "WHERE DatumK=#" & DatumS & "#"
Set Db = CurrentDb
Set Rs1 = Db.OpenRecordset(SQL)
Suma = Rs1!Suma
Rs1.Close
SQL = "SELECT * FROM TblRadniNalog WHERE Datum=#" & DatumS & "#"
Set Rs1 = Db.OpenRecordset(SQL)
If Rs1.RecordCount > 0 Then
Dim R As String
R = MsgBox("Za datum:" & Datum & vbCrLf & "Nalog vec postoji." & vbCrLf _
& "Hoete eli da uradite ponovo? ", _
vbYesNo + vbExclamation + vbApplicationModal + vbDefaultButton1, "NAPOMENA")
If R = vbYes Then
SQL = "DELETE * FROM TblRadniNalog " _
& "WHERE Datum=#" & DatumS & "#"
DoCmd.RunSQL (SQL)
ElseIf vbNo Then
Rs1.Close
GoTo Izlaz:
End If
End If
Rs1.AddNew
Rs1!Datum = Datum
ID = Rs1!RadniNalogID
Rs1.Update
Rs1.Close
SQL = "SELECT * FROM tblArtikli ORDER BY MPC DESC"
Set Rs1 = Db.OpenRecordset(SQL)
Set Rs2 = Db.OpenRecordset("TblRadniNalogStavke")
Do While Not Rs1.EOF
Procenat = Rs1!ProcenatIsk
Cijena = Rs1!MPC
Iznos = Suma * Procenat + Ostatak
K = Iznos / Cijena
BrKomada = K
Ostatak = K - BrKomada
Unos:
Rs2.AddNew
Rs2!RadniNalogID = ID
Rs2!PC = Rs1!PC
Rs2!ArtikalID = Rs1!ArtikliID
Rs2!NazivArtikla = Rs1!NazivArtikla
Rs2!JedMjere = Rs1!JedMjere
Rs2!Kolicina = BrKomada
Rs2!VrstaPekProizv = Rs1!VrstaPekProizv
Rs2!PodvrstapekProizv = Rs1!PodvrstapekProizv
Rs2!TezinaGotProizvoda = Rs1!TezinaGotProizvoda
Rs2!VrstaUtrBrasna = Rs1!VrstaUtrBrasna
Rs2!KolicinaUtrBrasna = Rs1!KolicinaUtrBrasna * BrKomada
Rs2.Update
Rs1.MoveNext
Loop
Izlaz:
DoCmd.SetWarnings True
Exit Function
Kraj:
End Function
U tabeli tblRadniNalogStavke ne trebaju ti sva ona silna polja jer ih imas u TblArtilli.
Potrebno je samo:
RsdniNalogID
ArtikalID
Klicina
KolicinaUtrosenogBrasna
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.