[ dragan.zm @ 28.01.2008. 08:32 ] @
Pozdrav potrebna mi je mala pomoc oko izvjestaja, u prilogu je moja baza gdje imam 3 tabele, PROIZVODI, NAZNAKE, STANJE.

E sad sta pokusavam a nikako da odradim jest da kad otvaram izvjestaj pita me za period od do datuma i koji broj.

S tim sto mi treba da izvjestaj izgleda vako:

Header
-------------------------------
PODACI O PROIZVODU iz tabele PROIZVODI na osnovu BROJA kojeg smo upisali na pocetku.

Broj: 55458 , Naziv: NEKIMATERIJAL , Serijski broj: 545584
_____________________________________________________________________________

Podaci iz tabele STANJE na osnovu broja i datuma i ispise ih sve jednu ispod druge.

1. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA
2. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA
3. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA
4. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA
5. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA
6. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA
7. Datum 01/20/2008 - Kolicina: 50 Naruceno: 60 Izvrsena Inspekcija: DA

_____________________________________________________________________________

Footer:
Podaci iz tabele NAZNAKE:

Datum: 01/20/2008 - Naznaka: Proizvod je otisao negdje
Datum: 01/21/2008 - Naznaka: Proizvod je ponovo narucen
Datum: 01/22/2008 - Naznaka: Proizvod je potrosen

[ Getsbi @ 28.01.2008. 11:13 ] @
Prvo napravi formu sa dva unbound polja formatirana kao datumska. Potom napravi query zasnovan na tabelama iz kojih se crpe podaci. Dovuci u Query designer sve tabele koje ti trebaju i poveži ih. U kriterijumu upita stavi za datumsko polje da se referencira na formu i period između dva zadata datuma. Recimo ovako:

>=[Forms]![NazivForme]![DatumSaFormeOd] And <= [Forms]![NazivForme]![DatumSaFormeDo]

U Record Source novokreiranog izveštaja odaberi već napravljeni Query. Dizajniraj izveštaj po želji.
Na formi napravi jedno dugme i podesi sa Tab Order da dobije fokus posle unosa datumskih polja.
Na On Click događaj dugmeta napiši:

DoCmd.OpenReport "NazivIzvestaja", acViewPreview

Dugme forme će pokrenuti izveštaj. Izveštaj je zasnovan na query-ju. Pokreće se query. Query uzima podatke sa forme i generiše izvor podataka za izveštaj. Izveštaj se generiše na osnovu podataka query-ja i tvog dizajna i prosleđuje ekranu.

[ dragan.zm @ 28.01.2008. 13:04 ] @
Hvala, sad cu vidjet ocu li uspjet sta, nije da sam bas razumio al imam bar neke skretnice.
Hvala puno.
[ graovacb @ 29.01.2008. 14:04 ] @
Kao prvo mislim da prvo treba da redizajniras tabele. Tabela Proizvod ne treba da ima kolonu ID, ako je kolona broj jedinstvena tj ne ponavlja se isti broj. Tada ta kolona treba da bude primarni kljuc. Druge dve tabele takodje moraju da imaju kolonu broj koja ce biti veza "vise" prema "jedan" ka polju broj tabele Proizvod. Izvestaj napravi na osnovu upita koji ce da sadrzi sve tri tabele i sva polja iz tabela. U izvestaju napravi grupu po polju broj iz tabele Proizvod i u heder te grupe stavi polja koja zelis. U detalj izvestaja postavi polja iz tabele Stanje. Tabelu naznake namesti kao subreport. Za filtriranje podataka upotrebi formu kao sto je gore naznaceno.Svojstvo Force New Page hedera "polje" postavi na Before Section. Ili jos bolje, ako ti podaci iz tabele Naznake ne trebaju za neku dalju obradu onda ukini tu tabelu, a otovri novo MEMO polje u tabeli Proizvod gde ces unositi te napomene. Nisam bas siguran da ce sve biti OK,ali tu je negde.

[Ovu poruku je menjao graovacb dana 29.01.2008. u 19:45 GMT+1]
[ dragan.zm @ 30.01.2008. 12:00 ] @
Zdravo, ovako vec sam sve uradio sto sam trebao, hvala na pomoci, i imam samo jos jedan problem naime imam formu kalendar gdje biram od do datum, sad sam na nju ubacio jos jedno polje (List Box) gdje imam vise opocija tj brojeve proizvoda.

U izvjestaju imam slijedeci kod:

Code:

Option Compare Database

Private StartDate As Variant
Private EndDate As Variant

Private Sub Report_Open(Cancel As Integer)

StartDate = InputDate("Select Start Date")
EndDate = InputDate("Select End Date")
If IsDate(StartDate) And IsDate(EndDate) Then

    Me.Filter = "DATUM Between #" & StartDate & "# And #" & _
        EndDate & "#"
    Me.FilterOn = True



End If
End Sub


E sad jel mi moze ko rec sta treba da stavim u liniuju gdje je filter da pored datuma uzima podatke gdje je BROJ=podatak iz List box koji se zove OdabirMaterijala.


nesto mozda kao:


Code:


    Me.Filter = "DATUM Between #" & StartDate & "# And #" & _
        EndDate WHERE BROJ = value.OdabirMaterijala & "#"



ili drugacije ? Kako procitat osobinu lis boxa?

[ dragan.zm @ 31.01.2008. 12:08 ] @
Jel moze ko pomoc, stvarno sam stao na ovom.

[ graovacb @ 31.01.2008. 17:54 ] @
Pretpostavljam da imas dugme na formi koji pokrece otvaranje izvestaja. Na dogadja On Click postavi sledecu proceduru:
DoCmd.OpenReport "NazivIzestaja", acViewPreview, , "[Broj]=" & "'"_ & Me!Broj&"' And "&" [Datum] Between '"& [ StartDate] And [EndDate] &"'", acWindowNormal
E sad, nisam bas siguran da je sintaksa dobra za deo procedure za datum (to nikako da zapamtim), ali to je tu negde.
[ Trtko @ 01.02.2008. 09:14 ] @

Malo si pogrijesio u sintaksi

Me.Filter = "DATUM Between #" & StartDate & "# And #" & _
EndDate WHERE BROJ = value.OdabirMaterijala & "#"

Me.Filter = "DATUM Between #" & StartDate & "# And # EndDate WHERE BROJ = #" & value.OdabirMaterijala & "#"
[ Zidar @ 01.02.2008. 14:24 ] @
Umesto vratolomija sa znakom # potrazi u Bazi Znanja funkciju SQLDAte, bice ti lakse.

:-)