Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 22 odgovora
  • 7.231 pregleda

Najnovija ↓

Izracunati fiksnu visinu takse 23.10.2009. u 17:34 · pre 207 meseci #1
Nigde nisam nasao resenje za sledeci problem.
U tabeli Duznici su i kolone VisDuga, VisTakse. Vrednost u VisTakse zavisi od VisDuga. TJ. za visinu duga od 0.5-25 VisTakse je 5, od 25.01- 75.00 , taksa je 8, za vis.duga od 75.01-150 taksa je 11. itd. Nakon svakog upisa VisDuga za izracunavanje takse koristio sam UPDATE upite -
UPDATE isplate
SET vistakse = 11 WHERE iznos BETWEEN 75.01 And 150;pa sledeci UPDATE.
Postoji li nacin da se jednom radnjom izrsi izracunavanje vis.takse? Napomena: VisinaTakse je nepromenjiva, tj. zavisi samo od visine duga (od-do).
Potpis
MMilic
Re: Izracunati fiksnu visinu takse 23.10.2009. u 17:59 · pre 207 meseci #2
Sada bubam napamet jer nisam probao, ali mislim da bi moglo ovako nekako (ako Access ima te funkcije)


Code:

UPDATE isplate
SET vistakse =
       CASE
        WHEN (cijena BETWEEN 0 AND 25,0) THEN 5
        WHEN (cijena BETWEEN 25,01 AND 35) THEN 7
        WHEN (cijena > 35,01) THEN 8
        ELSE 0
END


Kažem ti, to je ovako napamet, vjerojatno je malo drukčija sintaksa, ali skužiti ćeš bit.
Potpis
F
Re: Izracunati fiksnu visinu takse 23.10.2009. u 19:04 · pre 207 meseci #4
Ovako bi trebalo raditi:

Code:
UPDATE tablica SET nesto =
case
when iznos > 20 then 5
when iznos > 50 then 6
end



samo dodaj between umjesto > a možda niti ne moraš...

Edit:

hahaha, tek sada sam skužio da sam ti napisao istu stvar. Čekaj, sada ću probati, pa ti javim.
Potpis
F
Re: Izracunati fiksnu visinu takse 23.10.2009. u 19:20 · pre 207 meseci #5
Ovaj problem sam resavao na ovaj nacin:
Private Sub Command1_Click()
If IsNull(Me![VisTakse]) Then
DoCmd.OpenQuery "qryDo50", acViewNormal
DoCmd.OpenQuery "qryOd50Do150", acViewNormal
Else
End If
End Sub

No, i ovom slucaju, koliko ima upita toliko puta se mora udarati po dugmetu.
Potpis
MMilic
Re: Izracunati fiksnu visinu takse 23.10.2009. u 19:24 · pre 207 meseci #6
Evo, pokušavao, pa i ja nešto naučio:

Code:
UPDATE isplate SET vistakse
IIF(cijena BETWEEN 0 AND 20, 5, 
IIF(cijena BETWEEN 20,01 AND 35, 7, 
IIF(cijena BETWEEN 35,01 AND 50, 8)))


Za ovo nisam znao, ali izgleda mi kao lijepo rješenje :-)

Pozdrav!
Potpis
F
Re: Izracunati fiksnu visinu takse 23.10.2009. u 19:32 · pre 207 meseci #7
Citat:
nikola-m: Ovaj problem sam resavao na ovaj nacin:
Private Sub Command1_Click()
If IsNull(Me![VisTakse]) Then
DoCmd.OpenQuery "qryDo50", acViewNormal
DoCmd.OpenQuery "qryOd50Do150", acViewNormal
Else
End If
End Sub

No, i ovom slucaju, koliko ima upita toliko puta se mora udarati po dugmetu.


Probaj ovo moje rješenje, ali i ovo tvoje možeš napraviti da ne lupaš po dugmetu onoliko puta koliko ima slučajeva. Recimo da imaš 5 različitih situacija:

Code:
for i=1 to 5
DoCms.OpenQuery "qry" & i, acViewNormal
next


Naravno, query-e nazoveš ovako: qry1, qry2, qry3...
Potpis
F
Re: Izracunati fiksnu visinu takse 23.10.2009. u 20:42 · pre 207 meseci #8
Probao sam tvoje resenje sa Update i ne funkcionise. A ovo drugo nece, verovatno se ne snalazim najbolje.
Ako ti bas nije dosadno daj mi kompletan kod.

Potpis
MMilic
Re: Izracunati fiksnu visinu takse 23.10.2009. u 20:44 · pre 207 meseci #9
Ovako sam primenio:

Private Sub Command1_Click()
If IsNull(Me![VisTakse]) Then
For i = 1 To 2
DoCmd.OpenQuery "qry1" & i, acViewNormal
Next
DoCmd.OpenQuery "qry2" & i, acViewNormal
Else
End If
End Sub
Potpis
MMilic
Re: Izracunati fiksnu visinu takse 23.10.2009. u 23:15 · pre 207 meseci #10

Interesantno, mislio sam da ce resenje biti veoma jednostavno i brzo. U svakom slucaju hvala captPicard-u sto se zainteresovao. Verovatno mnogima ovo izgleda jednostavno , no ?
Potpis
MMilic
Re: Izracunati fiksnu visinu takse 24.10.2009. u 12:35 · pre 207 meseci #11
Ma ovo bi ti moralo raditi, meni radi:

Code:
UPDATE isplate SET vistakse
IIF(cijena BETWEEN 0 AND 20, 5, 
IIF(cijena BETWEEN 20,01 AND 35, 7, 
IIF(cijena BETWEEN 35,01 AND 50, 8)))


Zalijepi ovdje bazu, pa ću pogledati.

A ovo drugo nisi dobro napisao:

Code:
Private Sub Command1_Click()
If IsNull(Me![VisTakse]) Then
For i = 1 To 2
DoCmd.OpenQuery "qry" & i, acViewNormal
Next
End If
End Sub 


Ovo "qry" & i će kao rezultat imati u jednom slučaju qry1 a u drugom qry2. Dakle, query-i ti se moraju zvati qry1 i qry2.
Potpis
F
Re: Izracunati fiksnu visinu takse 24.10.2009. u 14:14 · pre 207 meseci #15
Ovaj kod ide u neki modul.

Code:
Function VisinaTakse(Dug As Currency)

Select Case Dug

Case 0.5 To 25
VisinaTakse = 5
Case 25 To 75
VisinaTakse = 8
Case 75 To 150
VisinaTakse = 11
Case Else

MsgBox "Nekorektna vrijednost duga"
VisinaTakse = "Error"
End Select
End Function


SQL-Query
Code:
SELECT Duznici.VisDuga, VisinaTakse([VisDuga]) AS VisinaTakse
FROM Duznici;
Potpis
zxz
Re: Izracunati fiksnu visinu takse 24.10.2009. u 14:58 · pre 207 meseci #17
Izonic ovo je super , samo sto ne azurira potrebne vrednosti u tabeli, naravno jer je select.
Potpis
MMilic
Re: Izracunati fiksnu visinu takse 24.10.2009. u 17:13 · pre 207 meseci #18
Namjerno nisam stavio azuriranje jer sam smatrao da nema potrebe to azurirati.
Ako pak zelis azurirati vjerujem mozes i sam napraviti Query.
Potpis
zxz
Re: Izracunati fiksnu visinu takse 24.10.2009. u 18:58 · pre 207 meseci #19

Ako mislis da se nakon ili pri SELECT-u, azurira, iskreno receno ne znam. Videli smo korisnih resenja sto tvojih, sto kaptPicarda, pa ako si raspolozen dobro bilo da do kraja objasnis drugu recenicu.
Potpis
MMilic
Re: Izracunati fiksnu visinu takse 24.10.2009. u 19:47 · pre 207 meseci #20
Ovako nekako je mislio:

Code:
UPDATE tblDuznici SET VisinaTakse =
(SELECT VisinaTakse([VisDuga])
FROM tblDuznici)
Potpis
F
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme