Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izbacivanje nedelje

[es] :: Access :: Izbacivanje nedelje

[ Pregleda: 2064 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DeX_

Član broj: 17342
Poruke: 15
217.71.52.*



Profil

icon Izbacivanje nedelje 11.05.2005. u 21:33 - pre 208 meseci
Posto sam pocetnik molio bi za pomoc da rijesim jedan problem .
problem 1 .
Imam program za videoteku ali nemogu nikako da napravim da kad neko iznajmi kasetu recimo u petak a vrati u ponedeljak da se ne racuna nedelja tj da rezultat izmedju datuma nebude 3 vec 2. Uspio sam to rijesiti ali svaki put moram unijeti da se racun umanjuje za jedan ako je izmedju datuma bila nedelja.Kako to napraviti da se ta procedura automatski izvrsava.

problem 2
Da se automatski unosi da je recimo svaka 4 kaseta besplatna ( i u ovom slucaju ja moram naznaciti da je 4 kaseta besplatna)

Nadam se da ste me razumjeli.

S postovanjem!

 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Izbacivanje nedelje 12.05.2005. u 21:10 - pre 208 meseci
1) Izbacivanje nedelje. tebi treba da izracunas da li je u nekom datumskom intervalu bila neka nedelja, i koliko se puta javila nedelja. evo ti par funkcija koje to rade:
Code:

Function SundaysBetween(Date1 As Date, Date2 As Date)
'Calculates how many Sundays in given date interval (date1,date2)
Dim intNumSundays As Integer
Dim datFirst As Date
Dim datLast As Date
Dim intDelta As Integer
Dim datCurrent As Date

intDelta = Date1 - Date2

Select Case intDelta
    Case Is >= 0
        datFirst = Date2: datLast = Date1
    Case Is < 0
        datFirst = Date1: datLast = Date2
End Select

intNumSundays = 0
datCurrent = LastSunday(datLast)
If datCurrent > datFirst Then
'at least one sunday between dates
intNumSundays = intNumSundays + 1
End If

intDelta = datCurrent - datFirst
intNumSundays = intNumSundays + Int(intDelta / 7)

SundaysBetween = intNumSundays

End Function


Function LastSunday(datDate As Date) As Date
'Purpose: returns last Sunday before datDate
'If datdate=Sunday, then returns datDate itself
'Examples
'? LastSunday(#5/8/2005#) returns itself, 08/05/2005 , since 8 May 2005 is Sunday
'? LastSunday(#5/12/2005#) 12 May 2005 is Thursday, previous Sunday was on 08/05/2005, May 08, 2005

LastSunday = datDate - Weekday(datDate) + 1
End Function



2) kako da svaka cetvrta kaseta bude besplatna. Zavisi od toga kako si dizajnirao tabele. pretpostavicu da je sve OK. U tom slucaju, pretpostavljam da imas tabelu u koju se upisuju usete kasete, i da u toj tabeli imas polja (KlijentID,KasetaID,BrojacKasetPoKlijentu)
Polje BrojacKasetaPoKlijentu se za svaki novi rekord poveca za 1. Brojs od 1 za svakog klijenta posebno. Znaci, Zika ce da ima brojeve 1,2,3,4,5,6 ali ce i Mika da ima brojeve 1,2,3,4,5,6,7,8 - brojac ide od 1 pa navise za svakog klijenta. Kako znas koja je kaseta cetvrta po redu - pa laoko, brojac mora da bude deljiv sa 4. Koristi Mod, INt ili sta god hoces da odredis da li je broj deljiv sa cetiri.
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
217.71.52.*

Sajt: www.icentar.ba


+2 Profil

icon Re: Izbacivanje nedelje 12.05.2005. u 21:34 - pre 208 meseci
Evo za prvo pitanje a na drugo ne mogu odgovorit bez strukture baze.

Function BrojDana(OdDatuma As Variant, DoDatuma As Variant)

Dim BrojD As Integer
If VarType(OdDatuma) <> 7 Or VarType(DoDatuma) <> 7 Then
MsgBox "Pogresan datum"
Exit Function
Else
'kao OdDatuma = #5/19/2005#
'kao DoDatuma = #9/19/2005#
BrojD = Day(DoDatuma) - Day(OdDatuma)

Do While OdDatuma < DoDatuma + 1
BrojD = WeekDay(OdDatuma)
If BrojD <> 1 Then
BrojDana = BrojDana + 1
End If
OdDatuma = OdDatuma + 1
Loop
End If
End Function

zxz
 
Odgovor na temu

DeX_

Član broj: 17342
Poruke: 15
217.71.52.*



Profil

icon Re: Izbacivanje nedelje 13.05.2005. u 19:23 - pre 208 meseci

Zahvaljujem se Zidaru i izonic-u na pomoci mislim da mi je sad puno jasnije kako da to rijesim.
S postovanjem!
 
Odgovor na temu

[es] :: Access :: Izbacivanje nedelje

[ Pregleda: 2064 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.