DinamicRecordSource pentru/in formular raport

Informatii despre cum se utilizeaza Microsoft Access 2007. Baze de date, Interogari, Formulare, Rapoarte, etc
Închis
Tzica
Mesaje: 639
Membru din: Sâm Aug 11, 2012 10:52 pm

DinamicRecordSource pentru/in formular raport

Mesaj de Tzica » Joi Dec 17, 2015 11:11 am

Incerc de multa vreme..dar nu am reusit.
Problema: Generare raport Trimestrial cu date din cele trei luni aferente.Modelul este luat din NorthwindDataBase oferita de Microsoft. (E vorba de Quaterly Sales report). In principiu am respectat cele de acolo, (am creat interogarea aferenta , cei drept eu folosind un MultipleSelection ListBox) diferenta fiind ca eu nu am folosit formularul de dialog de acolo (cei drept e interesanta ideea cu stocarea Rowsource , in tabel).
In cazul meu..functioneaza numai pentru primul trimestru...la al doilea...schimba numai numele etichetelor, conform instructiune, dar...nu ruleaza interogarea.
Deci:
1. Unde gresesc ?
2. Poate e o facilitate valabila pentru MsAcces2010 (eu lucrand in Ms2007) ??
Multumesc.

(Trebuie neaparat selectat cel putin un Furnizor, pentru a deschide raportul.Altfel, apare mesajul cu "Invalide procedure 5 etc...)
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Tzica
Mesaje: 639
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: DinamicRecordSource pentru/in formular raport

Mesaj de Tzica » Mie Dec 23, 2015 8:01 pm

Lol...tot ii imi raspund.Cei drept am avut noroc cu sarbatorile, mai exact cu ceea ce se numeste "curatenie de sarbatori".Deci:
1.Strict la pardalnica aia de Northwind.E ceva tare chiznovatic, in folosirea operatorului "Mod".La ei e ok, afiseaza/calculeaza secventa de 1,2,3 , ciudatel e ca in cele incercate de mine apare secventa 1,2,0 (zero fiind a treia luna).In fine, rascolind prin pod, am dat de un print mai vechi, deci solutia nu imi partine..dar nici sursa nu pot sa o indic.Pe scurt, formula oferita in Northwind:

Cod: Selectaţi tot

MonthOfQuarter: (Month([Order Date]) Mod 3)
trebuie usor modificata astfel:

Cod: Selectaţi tot

LLuna: ((Month([DataFactura])-1) Mod 3)+1
Astel secventa 1,2,3, se obtine in "doi pasi".Primul parte a formulei (partea din paranteza) calculeaza o secventa de forma 0,1,2 .Practic extrage Luna (numarul lunii) din campul de tip Data, din care scade o unitate, dupa care aplica operatorul Mod cu valoarea 3 , impartire la trei mai concret.La rezultatul astfel obtinut, se adauga o unitate.
2.Eu am "rezolvat-o" prin metoda munca multa.Concret, am creat o interogare cu un pivot asupra lunilor , unde am adaugat o cluza IN (1,2,3....11,12) pentru a afisa si lunile ce contin valori nule.Dupa care in raport, am suprapus respectivele controale, la event-ul on load al raportului am setat toate campurile/controalele de tipul [1] la Visible false (fireste, am facut la fel si pentru controalele de tip total).Dupa care cu ajutorul procedurii Select Case (asupra controlui Trimestru) afisam controalele lunilor aferente trimestrului selectat.
Cam atat.

Închis

Înapoi la “Intrebari despre Access 2007”