zxz 12.01.2016 11:37
Predmet:Re: Problem sa DMAX

Ih moram opet svasta nesto pitati.
Jel ti polje iznos to iz kojeg hoces da izvuces najvecu vrijednost i sledecu manju od najvece.
Bolje reci hoces da izvuces dva naveca iznosa ali zasebno.
Ima jos jedan problem.
Vidim da si napravio da budu vrijednosti negativne pa ako gledamo matematicki onda je -2 vece od -3 pa se postavlja pitanje dali treba najvece apsolutne vrijednosti.

kenan 12.01.2016 15:50
Predmet:Re: Problem sa DMAX

Prvo tabela AKTIV je zamiÅ¡ljena da se kod logiranja upise aktivna firma, godina i obracunski period kod izlaza iz programa je briÅ¡e sve iz tabele tako da je samo jedan zapis moguč

drugo ako je problem u negativnoj vrijednosti prebacit ču ga u pozitivnu ako je lakÅ¡e u principu nije toliko meni bitno negativna ili pozitivna vrijednost

meni u osnovi trena da iz onog query-ja izvučem drugu po veličini vrijednost polja IZNOS odnosno u drugom tregu po veličini

nadoÅ¡o sam na ideju da ubacim TOP 2 odnosno TOP 3 i da uzmem najmanju vrijednost iz query-ija pomoču ove linije
variable = DMin("IZNOS", "BU11")
ali mi neda iz nekog razloga
Probao sam i bez navodnika za BU11 al opet neide

neznam jel ovo dovoljno objašnjenja

zxz 12.01.2016 18:27
Predmet:Re: Problem sa DMAX

Ma ima dosta rjesenja ali da nadjemo sto je moguce bolje.
Citat:
Prvo tabela AKTIV je zamiÅ¡ljena da se kod logiranja upise aktivna firma, godina i obracunski period kod izlaza iz programa je briÅ¡e sve iz tabele tako da je samo jedan zapis moguč

ja sam htio samo da napravim ovakav query umjrsto tvoga jer je prakticniji
PreuzmiIzvorni kôd (SQL):
  1. SELECT SUM([duguje]-[potrazuje]) AS Iznos, LEFT([stavgk]![konto],3) AS Sink
  2. FROM stavgk
  3. WHERE (((LEFT([stavgk]![konto],3)) ALike '6%') AND ((stavgk.period)=2014) AND ((stavgk.firmaID)=3) AND ((stavgk.ObracinskiPeriod)="GODISNJI"))
  4. GROUP BY LEFT([stavgk]![konto],3)
  5. HAVING (((SUM([duguje]-[potrazuje]))<0));

Ne smeta sto je negativno samo da kazemo napr. vcu apsolutnu vrijednost da bi se razumjeli koja treba.

kenan 12.01.2016 21:53
Predmet:Re: Problem sa DMAX

jedno možda glupo pitanje ako sam ja shvatio ovu proceduru kako da punim ova polja iz tabele aktiv jer se poziva polju reporta

zxz 12.01.2016 22:15
Predmet:Re: Problem sa DMAX

Prvo nema glupog pitanja.
Samo odgovora ima glupih.

Vidi ovako Ja nisam znao gdje ces ti to koristiti niti koliko kriterija imas pa sam napravio malo sire pa izgleda komlikovano.

Gore sam naveo kako se poziva procedura a rezultat je uvije u Query-ju QQ.
Primjer.
Ako to hoces koristiti na izvjestaju.

Napravis izvjestaj sa u kome je recordsource Query QQ i zapises ga napr. pod imenom Q_Dugovanja.
Sada odnekle moras pdoci taj izvjestaj.
Ako to radis preko nekog komandnog tastera.
e na tom tasteru prije podizanja izvjestaja pozoves ovu proceduru.
Ako nebude islo ti napisi sta zelis pa zakaci.

kenan 12.01.2016 22:19
Predmet:Re: Problem sa DMAX

Ustvari radim na jednom izvještaju od tridesetak strana kucanog materijala gdje se podatci uzimaju buklano za svako polje iz funcije zato pitam

primjer jednog polja

="1.1. Ostvareni ukupan prihod u obračunskom periodu " & [godina] & ". godini, iznosi: " & AnalizaBU1() & ", Å¡to je u odnosu na isti period prethodne godine, " & AnalizaBU3() & " za " & Format(IIf(AnalizaBU1()-AnalizaBU2()>0;AnalizaBU1()-AnalizaBU2();AnalizaBU2()-Analiz
aBU1());'#.#00,00" KM"') & " ili " & FormatPercent(IIf(AnalizaBU1()/AnalizaBU2()-1>0;AnalizaBU1()/AnalizaBU2()-1;-(AnalizaBU1()/AnalizaBU2()-1));2) & "."

kenan 12.01.2016 22:39
Predmet:Re: Problem sa DMAX

AKO SAM DOBRO SKONTAO PROCEDURU AKO BIH OVO STAVIO FIKSNO Optional Red As Integer = 2 ONDA BIH MOGAO POZIVATI IZ POLJA =iznos() i olaksao bih i vama da se nemucite samnom

kenan 12.01.2016 22:55
Predmet:Re: Problem sa DMAX

ja ipak odradio po svom i radi mi super

Function AnalizaBU11(Optional Red As Integer = 2, Optional Konto As String = "6%")
'---------------------------------------------
-------------
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim SQL As String
Dim I As Integer

SQL = "SELECT top " & Red & " Sum([duguje]-[potrazuje]) AS Iznos, Left([stavgk]![konto],3) AS Sink " _
& "FROM AKTIV INNER JOIN stavgk ON (AKTIV.ObracinskiPeriod = stavgk.ObracinskiPeriod) AND (AKTIV.godina = stavgk.period) AND (AKTIV.firma = stavgk.firmaID) " _
& "WHERE Left([stavgk]![konto],3) ALike '" & Konto & "'" _
& " GROUP BY Left(konto,3) " _
& "HAVING Sum([duguje]-[potrazuje])<0 " _
& "ORDER BY Sum([duguje]-[potrazuje])"

Set Db = CurrentDb()
Set Rs = Db.OpenRecordset(SQL)
For I = 1 To Red
Konto = Rs!sink
Rs.MoveNext
Next I
SQL = "SELECT top " & Red & " Sum([duguje]-[potrazuje]) AS Iznos, Left([stavgk]![konto],3) AS Sink " _
& "FROM AKTIV INNER JOIN stavgk ON (AKTIV.ObracinskiPeriod = stavgk.ObracinskiPeriod) AND (AKTIV.godina = stavgk.period) AND (AKTIV.firma = stavgk.firmaID) " _
& "WHERE Left([stavgk]![konto],3) ALike '" & Konto & "'" _
& " GROUP BY Left(konto,3) " _
& "HAVING Sum([duguje]-[potrazuje])<0"
Set BU11 = Db.OpenRecordset(SQL)
AnalizaBU11 = BU11!Iznos
End Function

kenan 12.01.2016 22:56
Predmet:Re: Problem sa DMAX

hvala na angažmanu rješenje možda izgleda glomazno ali je ustvari vrlo jednostavno

zxz 12.01.2016 23:02
Predmet:Re: Problem sa DMAX

Ako hoces samo iznos onda mozes skratiti proceduru.
Function AnalizaBU11(Optional Red As Integer = 2, Optional Konto As String = "6%")
'---------------------------------------------

-------------
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim SQL As String
Dim I As Intege
Dim Iznos as Currency

SQL = "SELECT top " & Red & " Sum([duguje]-[potrazuje]) AS Iznos, Left([stavgk]![konto],3) AS Sink " _
& "FROM AKTIV INNER JOIN stavgk ON (AKTIV.ObracinskiPeriod = stavgk.ObracinskiPeriod) AND (AKTIV.godina = stavgk.period) AND (AKTIV.firma = stavgk.firmaID) " _
& "WHERE Left([stavgk]![konto],3) ALike '" & Konto & "'" _
& " GROUP BY Left(konto,3) " _
& "HAVING Sum([duguje]-[potrazuje])<0 " _
& "ORDER BY Sum([duguje]-[potrazuje])"

Set Db = CurrentDb()
Set Rs = Db.OpenRecordset(SQL)
For I = 1 To Red
Iznos = Rs!Iznos
Rs.MoveNext
Next I
AnalizaBU11 =Iznos
End Function