Prikazi cijelu temu 12.01.2016 19:41
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: Problem sa DMAX
Evo ti procedura pa je stavi u neki modul.
Option Compare Database
Option Explicit

PreuzmiIzvorni kôd (Visual Basic):
  1. Function Iznos(Red As Integer, Optional Konto As String = "6%", Optional Godina As Integer = 0, _
  2. Optional Firma As Integer = 1, Optional Period As String = "GODISNJI")
  3. '----------------------------------------------------------
  4. Dim Db As DAO.Database
  5. Dim Rs As DAO.Recordset
  6. Dim SQL As String
  7. Dim QDF As QueryDef
  8. Dim I As Integer
  9.  
  10.  
  11. If Godina = 0 Then Godina = Year(Date)
  12. SQL = "SELECT top " & Red & " Sum([duguje]-[potrazuje]) AS Iznos, Left([stavgk]![konto],3) AS Sink " _
  13.     & "FROM stavgk " _
  14.     & "WHERE Left([stavgk]![konto],3) ALike '" & Konto & "' AND period=" & Godina _
  15.     & " AND firmaID=" & Firma & " AND ObracinskiPeriod='" & Period & "'" _
  16.     & "GROUP BY Left(konto,3)" _
  17.     & "HAVING Sum([duguje]-[potrazuje])<0 " _
  18.     & "ORDER BY Sum([duguje]-[potrazuje])"
  19.  
  20. Set Db = CurrentDb
  21. Set Rs = Db.OpenRecordset(SQL)
  22.  
  23. For I = 1 To Red
  24. Konto = Rs!sink
  25. Rs.MoveNext
  26. Next I
  27. SQL = "SELECT top " & Red & " Sum([duguje]-[potrazuje]) AS Iznos, Left([stavgk]![konto],3) AS Sink " _
  28.     & "FROM stavgk " _
  29.     & "WHERE Left([stavgk]![konto],3) ALike '" & Konto & "' AND period=" & Godina _
  30.     & " AND firmaID=" & Firma & " AND ObracinskiPeriod='" & Period & "'" _
  31.     & "GROUP BY Left(konto,3)" _
  32.     & "HAVING Sum([duguje]-[potrazuje])<0"
  33. Set QDF = Db.QueryDefs("QQ")
  34. QDF.SQL = SQL
  35. End Function

Moras napraviti i neki Query po zelji samo je bitno da se zove QQ.
Procedura se poziva po imenu ali ima i ulazne parametre samo je jedan obavezujuci.
Primjer
Cal Iznos(2,"6%",2014,3,"GODISNJI")
2-Znaci drugi najveci iznos (apsolutna vrijednost) obavezan unos
"6%"-Kriterij za konto koji ce uzimati ukoliko ne upises nista bit ce "6%"
2014- godina za koju radis. Ukoliko ne upises nista onda tekuca godina tj. 2016
3- Å ifra firme. Ukoliko ne upises nista onda je 1.
"Godisnji"- Period obracuna. Ukoliko ne upises nista onda je "GODISNJI"

znaci proceduru mozes pozvati i na ovaj nacin:
Call Iznos(2)

Rezultat ces naci u Query-ju QQ.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.