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

Stampanje trenutnog sadrzaja forme?

[es] :: Access :: Stampanje trenutnog sadrzaja forme?

[ Pregleda: 4455 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

konstantin

Član broj: 17262
Poruke: 132
*.com



Profil

icon Stampanje trenutnog sadrzaja forme?26.04.2004. u 08:08 - pre 214 meseci
Klik eventima na formi mijenjam sadrzaj forme. Naime izvrsavaju se upiti ciji se sql stavlja u recordsource forme. Trenutni sadrzaj forme zelim da stampam.
Problem je sto sadrzaj forme ne moze stati na A4 format. Probao sam sa PrintOut metodom medjutim nemam potrebnih opcija za format stampe.
Zatim sam probao i sa izvjestajem, ciji sam recordsource htio da pokupim iz trenutnog recordsourcea forme koju sam minimizirao:

Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Forms!MyForm.RecordSource
End Sub

ali sam dobio poruku:"The specified field 'MyTable.MyField' could refer more then one table listed in the FROM clause of your statement."

Ima li neko ideju?
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Stampanje trenutnog sadrzaja forme?26.04.2004. u 13:40 - pre 214 meseci
DAj nam SQL za form's recordsource pa da vidimo.
 
Odgovor na temu

konstantin

Član broj: 17262
Poruke: 132
*.com



Profil

icon Re: Stampanje trenutnog sadrzaja forme?27.04.2004. u 06:49 - pre 214 meseci
Zidar,
ovaj zahtjev je nastavak moje ranije teme: select na recordsetu,
http://www.elitesecurity.org/tema/48720

Da podsjetim, imao sam problem kako pokupiti slogove sa dva najmladja datuma i taj sql strpati u recordsource. Rijesio sam to tako sto sam odustao od recordsetova i napravio 3 querya:

Prvi "2mjsvi":
SELECT [pokretni].[add], [pokretni].[naziv], [pokretni].[staro], [pokretni].[novo], [pokretni].[razlika], [pokretni].[datum], [pokretni].[napomena]
FROM pokretni
WHERE ((([pokretni].[datum])=[Forms]![Parametri]![txtDat1] Or ([pokretni].[datum])=[Forms]![Parametri]![txtDat2]));
'Parametri je novokreirana forma koja sluzi samo da bih u text kontrole ubacio datume koje koriste queryi

Drugi "add2x":
SELECT [add], count([add])
FROM 2mjsvi
GROUP BY [add]
HAVING count(add)=2;

Treci "2mj":
SELECT [2mjsvi].add, [2mjsvi].naziv, [2mjsvi].staro, [2mjsvi].novo, [2mjsvi].razlika, [2mjsvi].datum, [2mjsvi].napomena
FROM add2x, 2mjsvi
WHERE ((([2mjsvi].add)=[add2x].[add]));

Ovaj treci sa nazivom 2mj strpam u recordsource forme nakon sto korisnik napravi klik na komandno dugme. Na ovaj nacin to sve odlicno radi.

Sad mi jedino ostaje problem sa stampom koji sam naveo u gore navedenom postu.
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Stampanje trenutnog sadrzaja forme?27.04.2004. u 13:46 - pre 214 meseci
Probaj ovako:
1) Nemoj da menjas Report.Source u OnOpen eventu, nego u design modu unesi naziv kverija, uobicajeno. Kveri "2mj" postoji i njegov SQL se ne menja. Query 2mj vraca neke rekorde, zavisno od toga sta vracaju "2mjsvi" i "aadd2x". Jedan od njih pokupi parametar sa forme i sve je OK. Dakle, normalno u dizajnu dodeli reportu record source.
2) Otvori report sa DoCmd.OpenReport. Ako tvoj query "2mj" vec vraca tacno onoliko rekorda koliko ti treba, to je sve. Ako treba da se jos nesto filtrira, upotrebi WhereCondition za DoCmd.OpenReport i gotovo. sav posao si odradio kad si uspeo da nateras formu da prikaze samo zeljene rekorde. Sad samo otvori report na najprostiji nacin.

:-)
 
Odgovor na temu

konstantin

Član broj: 17262
Poruke: 132
*.com



Profil

icon Re: Stampanje trenutnog sadrzaja forme?28.04.2004. u 07:22 - pre 214 meseci
Hmm, pomoc jeste ali nije bas najelegantnije rjesenje. Forma (inace tabular prikaz) moze da prikazuje sadrzaj iz 2 recordsourcea:pokretni(izvorna tabela) i 2mj(query), kao i samo nekoliko slogova nakon after_update dogadjaja na combo boxu od forme.
To znaci da bih morao za svaki od prikaza kreirati po 1 komandno dugme i po 1 report.
Ako vec i nema neko ljepse rjesenje onda me interesuje jos sledece:
1. da li je uopste moguce direktno odstampati sadrzaj forme, ali naravno formatirati stampu
2. zasto sam dobio poruku "The specified field 'MyTable.MyField' could refer more then one table listed in the FROM clause of your statement." nakon smjestanja recordsourcea iz forme u report, ako to vec radi bez problema u okviru forme (ponekad su accessove greske prilicno konfuzne)?
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Stampanje trenutnog sadrzaja forme?28.04.2004. u 15:12 - pre 214 meseci
Nisam najbolje razumeo pitanje kad si ga postavio prvi put pa se nisam uklucivao u diskusiju. Nisam ni sada siguran da potpuno razumem, ali sam uspeo da napravim formu i report koji imaju sinhronizovani record source. Pogledaj upload uz poruku.

Evo ovak.neka tvoja tabela izgleda na primer ovako:
ID ADD Datum
8 258 3/15/2004
2 355 3/15/2004
10 455 3/12/2004
9 258 3/12/2004
7 355 3/12/2004
6 355 3/10/2004
4 258 3/10/2004
1 258 3/10/2004
3 455 3/6/2004

Namerno je sortirana po datumu opadajuce, da se uoce poslednja dva datuma 3/15/2004 i 3/12/2004, u formatu dd/mm/yyyy. Vidi se da ADD 258 i ADD=355 imaju po jedan rekord u oba datuma, dok ADD=455 ima rekord za 3/12/2004 ali ne i za 15/12/2004. Meni je trebalo 4 kverija da resim problem, ali zato ne upotrebljavam nikakve parametre.

1) Kveri "qryPokretni_Datumi" prikazuje sve datume koji se nalaze u tabeli, jedinstveno:
SELECT tblPokretni.Datum
FROM tblPokretni
GROUP BY tblPokretni.Datum;

2) Kveri "qryPokretni_ZadnjaDvaDatuma" utvrdjuje koja dva datuma su poslednja dva:
SELECT TOP 2 qryPokretni_Datumi.Datum
FROM qryPokretni_Datumi
ORDER BY qryPokretni_Datumi.Datum DESC;

3) Kveri "qryPokretni_AddsaPoslednjaDvaDatuma" nalazi vrednosti ADD koje imaju rekorda za OBADVA poslednja dva datuma:
SELECT tblPokretni.ADD, Count(tblPokretni.ID) AS CountOfID
FROM qryPokretni_ZadnjaDvaDatuma INNER JOIN tblPokretni ON qryPokretni_ZadnjaDvaDatuma.Datum=tblPokretni.Datum
GROUP BY tblPokretni.ADD
HAVING (((Count(tblPokretni.ID))=2));

4) Kveri "qryPokretni_AddsaPoslednjaDvaDatuma_Final" obezbedjuje record source za formu i report:
SELECT tblPokretni.ID, tblPokretni.ADD, tblPokretni.Datum
FROM (qryPokretni_AddsaPoslednjaDvaDatuma INNER JOIN tblPokretni ON qryPokretni_AddsaPoslednjaDvaDatuma.ADD = tblPokretni.ADD) INNER JOIN qryPokretni_ZadnjaDvaDatuma ON tblPokretni.Datum = qryPokretni_ZadnjaDvaDatuma.Datum;

Forma "frmPokretni" ima default view "Continuous Forms", na Form header sekciji su tri dugmeta:
1) cmdPoslednjaDva = postavlja record source forme na qryPokretni_AddsaPoslednjaDvaDatuma_Final
2) cmdSviPokretni = postavlaj record source forme na tblPokretni
3) cmdReport = otvara report repPokretni. U Repot.OnOpen se setuje record source za report, da bude jednak onome na formi. tu se setuje i Caption za labelu koja pokazuje koji je record source trenutno aktivan.

Kod:
Private Sub cmdPoslednjaDva_Click()
Me.RecordSource = "qryPokretni_AddsaPoslednjaDvaDatuma_Final"
Me.Requery
Me.Caption = "POSLEDNJA DVA DATUMA"
End Sub

Private Sub cmdSviPokretni_Click()
Me.RecordSource = "tblPokretni"
Me.Requery
Me.Caption = "TABELA tblPokretni"
End Sub

Private Sub cmdReport_Click()
On Error GoTo Err_cmdReport_Click

Dim stDocName As String

stDocName = "repPokretni"
DoCmd.OpenReport stDocName, acPreview

Exit_cmdReport_Click:
Exit Sub

Err_cmdReport_Click:
MsgBox Err.Description
Resume Exit_cmdReport_Click

End Sub

Private Sub Report_Open(Cancel As Integer)
On Error Resume Next
Me.RecordSource = Forms("frmPokretni").RecordSource
Me!lblTitle.Caption = "Report.RecordSource= " & Me.RecordSource
End Sub

Sve ovo imas na primeru koji sam zakacio uz poruku. Ne javlja nikakve poruke o greskama. Mozda Compile/Decompile ili Compact pomogne da se neke sulude poruke eliminisu?

:-)


Prikačeni fajlovi
 
Odgovor na temu

konstantin

Član broj: 17262
Poruke: 132
*.com



Profil

icon Re: Stampanje trenutnog sadrzaja forme?28.04.2004. u 17:24 - pre 214 meseci
Mozda sam prvi put zaista bio malo nejasan. Naime, korisnik puni bazu sa nekim ASCIIem iz cobolskih izvjestaja, pa sam se u zurbi malo zapetljao.
Parametre sam uveo izmedju ostalog i zbog toga sto je korisnik imao u medjuvremenu dodatni zahtjev, da kupi slogove za 2 mjeseca koja on odredi, ne samo zadnja 2.
Uz neke izmjene ovo dobro radi.
Svaka cast!
 
Odgovor na temu

konstantin

Član broj: 17262
Poruke: 132
*.com



Profil

icon Re: Stampanje trenutnog sadrzaja forme?30.04.2004. u 12:29 - pre 214 meseci
Mozda i nebitno nakon rjesenja, ali cisto da kazem:
Umjesto 2 querya za trazenje 2 "najmladja" datuma u tabeli
1) Kveri "qryPokretni_Datumi" prikazuje sve datume koji se nalaze u tabeli, jedinstveno:
SELECT tblPokretni.Datum
FROM tblPokretni
GROUP BY tblPokretni.Datum;
i
2) Kveri "qryPokretni_ZadnjaDvaDatuma" utvrdjuje koja dva datuma su poslednja dva:
SELECT TOP 2 qryPokretni_Datumi.Datum
FROM qryPokretni_Datumi
ORDER BY qryPokretni_Datumi.Datum DESC;

moze se koristiti jedan i to:

SELECT distinct TOP 2 tblPokretni.Datum
FROM tblPokretni.Datum
ORDER BY tblPokretni.Datum DESC;


 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Stampanje trenutnog sadrzaja forme?30.04.2004. u 13:33 - pre 214 meseci
Nije "nebitno" nego je naprosto odlicno. Izvanredna ideja da se kombinuje TOP i DISTINCT u jednom kveriju. Moje resenje je skolski pristup, a ovo cega si se ti setio je ono sto odvaja majstore od talentovanih amatera.

Bravo!
 
Odgovor na temu

[es] :: Access :: Stampanje trenutnog sadrzaja forme?

[ Pregleda: 4455 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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