Na On Click Događaj imam dva izveštaja. Ne mogu da postavim uslov tako da ako mi štampa prvi ne odštampa i drugi izveštaj i obrnuto (ne štampa prvi štampa drugi izveštaj).
Private Sub Command53_Click()
On Error GoTo Err_Command53_Click
Ali ja ovo obicno rjesavam tako sto napravim dva radio button-a, pa korisnik odabere koji izvjestaj zeli da ostampa.
Potpis
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."
Da, ali problem je što ja u kodu imam mnogo više izveštaja. U upitu na kom su zasnovani izveštaji dao sam kriterijume štampe, ali potreban je i dodatni uslov u codu (jedan izveštaj ima kriterijum drugi ne pa nije problem da odštampa samo jedan ako upit ne zadovoljava uslov. Problem je ako zadovoljava onda štampa oba, a trebao bi samo taj koji zadovoljava uslov). Pokušavao sam sa If-Then-Else petljom. Bez uspeha...
Sve si napisao samo ne i uslov na osnovu čega Access treba da odluči kada da štampa prvi, a kada drugi izveštaj. Ne bitno je da li je "If...Then...Else...Endif" ili "Select Case....End Select" struktura. Bitno je da kriterijum mora da postoji. Scelle ti je dao način kako da spolja (sa forme) kontrolišeš pokretanje izveštaja. Ako je uslov unutrašnji (zavisi od podataka, recimo broja zapisa u tabeli) onda to treba da je kriterijum u gore pominjanim strukturama.
Potpis
Err_Command45_Click:
'MsgBox Err.Description & " Za tekući broj ne postoji izveštaj..", vbOKOnly, "Izveštaj"
Resume Next
End If
End Sub
Postavljao sam razne uslove, ali ne funkcioniše. Verovatno grešim u postavci petlje. U prevodu kada izveštaj Prijemno_unu_prikazatc zadovoljava uslov prikaži njega u suprotnom prikaži Prijemno_unu_prikaz.
Izveštaj Prijemno_unu_prikazatc na događaj On no data je postavljen na Cancel=True što znači ne prikazuj ga ako ne zadovoljava uslov
Mislim da tačka ispred Cancel treba da bude odmah iza zagrade. Nisam siguran da će Access da "žvaće" ovu proceduru. Poruku svakako neće da pokaže jer uvek ispadne iz procedure pre nego dođe do nje. Za FilterName si napisao naziv izveštaja što svakako ne odgovara. Za WhereCondition si napisao uslov koji je samo inicijalizovan i nije definisan, nema ga u proceduri. Potpis
Iz toga zakljucujem report Reports![Prijemno_unu_prikazatc] moze negda u Open eventu da bude cancelovan, zavisno od nekog uslova koji mi ne nzamo. Lici mi i da je u pitanju NoData event za report. To znaci da se otvaranje drugog reporta kontrolise iz prvog, bukvalno, a ne iz koda na formi. ako bas mora tako, ond aje uzaludno pokusavati na formi da ucinimo nesto.
Covek je zamislio ovako "probam da odstampam report [Prijemno_unu_prikazatc], pa ako se on sam u tom procesu canceluje, onda da probam [Prijem_sav_prikaz]". Ako bas mora tako, onda je mozda bolje u eventu koji canceluje report [Prijemno_unu_prikazatc] staviti
Uh, sad vidim da se koristi promenljiva Uslov, koja je definisana negde van procedure Command45_Click()
kao i da su oba reporta vec otvorena u momentu kad se klikne na Command45. Samo za otvoreni report moze se pisati
Reports![Prijemno_unu_prikazatc]. Reports! ne vidi reporte koji jos nisu otvoreni. Znaci, prvo ide DoCmd.OpenReport pa tek onda moze uradi nesto sa Reports![neki report].
Ovde nesto ne valja. A da nam sabacc kaze koji su reporti i koji su uslovi u pitanju, onako logicki, na srpskom a ne u VB. Ovako nekako:
Report [Prijemno_unu_prikazatc] predstavlja ....
Report [Prijemno_unu_prikaz] predstavlja .....
Zelim da se prikaze [Prijemno_unu_prikazatc] kada je ispunejn uslov <ovde opisi na srpskom kakav je to uslov logiski, ne programski>, a ako nije ispunjen taj uslov da se onda otvori [Prijemno_unu_prikaz] .
Dragi sabacc, ja mislim da si ti ovde nešto debelo iskomplikovao. Ako već testiraš da li će report imati podatke, mislim da je najbolje da sačuvaš Query koji ćeš posle izabrati kao RecordSource Reporta, i njega da analiziraš bez otvaranja reporta. Tako ti svojstvo Cancel (koje ja mislim i ne postoji) uopšte neće biti potrebno. Nisam siguran da su oba reporta otvorena, što bi ih otvarao opet ?
Potpis
Dragi sabacc, pitanje ocigledno nisi jasno postavio. Jos da se javi Trtko i imas kompletnu trenutno najjacu ekipu na forumu koja pokusava da ti pomogne. Nazalost, ne mozemo pomoci ako ne objasnis tacno sta ti treba, na logickom nivou, ne na nivou koda.
Ako uspes da nam objasnis, onda ces verovatno dobiti 5-6 mogucih resenja, koja ce se manje ili vise razlikovati u nacinu i pristupu, ali ce sva raditi ono sto si trazio. Dobro je videti pet-sest mogucih nacina da se problem resi, jer jednog dana sve to moze zatrebati. To se zove srecan covek, ima 5-6 majstora da mu pomazu