situatii comparative

Informatii despre cum se utilizeaza Microsoft Access 2007. Baze de date, Interogari, Formulare, Rapoarte, etc
malasorte
Mesaje: 337
Membru din: Lun Ian 23, 2012 5:56 pm
Localitate: Galati

Re: situatii comparative

Mesaj de malasorte » Mie Dec 02, 2015 3:31 pm

am adaugat si un camp cu categoria produsului in tabelul tblev si am facut un alt tabel cu categoria produsului si am reusit sa adaptez si in raport. Am sa-l urc desi este in acces 2010 modificat si nu stiu daca se dechide cu acces 2007.Am reusit sa-l adaptez si in baza mea si functioneaza. Ar mai fi 2 situatii de rezolvat daca s-ar putea.
1. sa nu mai afizeze rezultatele care sunt zero in ambele perioade respecti daca facem o interodare anul 2015 luna februiarie, cu luna An precedent da rezultatul in care unitatea "nuc" si "prun" este zero in ambele perioade. Ar fi fost ok ca acestea sa nu apara deloc pt ca vor fi undeva la 40-50 de inregistrari si ar icarca situatia in plus.
2. sa putem face aceasta comparatie pe perioade determinate intre 01.01.2015 si 15.04.2015 cu perioada similara din 2014, intrucat am avut situatii in care s-a cerut o comparatie pe la jumatatea lunii si atunci ea nu va mai fi ok pt ca pentru perioada anterioara va lua toata luna, iar perioada curenta pana la momentul in care se face comparatia.Oricum multumesc pentru timpul acordat.

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

Re: situatii comparative

Mesaj de Tzica » Dum Dec 06, 2015 7:53 pm

1.Se pot elimina din raport randurile care au zero in perioadele selectate.E un picut de munca, datorita multiplelor criterii , (chiar daca vorbim numai de data). Am sa explic mai in amanunt, pe modelul atasat;
2.Se pot face comparatii si intre date diferite, doar ca trebuie sa ne folosim de formatul DateSerial(). Adica, putem avea ziua 15.04.2015 avem doua (cel putin) optiuni fie sa o comparam cu 15.03.2015 (aceeasi zi, luna diferita,acelasi an) fie cu 15.04.2015 (aceeasi zi,, aceeasi luna, dar an anterior).Poate o sa incerc, in weekend-u urmator.
Despre aplicatia urcata:
Practic e inspirata din aplicatia Northwind.Acolo, sunt folosite listboxurile, eu am ales sa folosesc optiongrup si combobox (si fireste ..mai putin vba). Printre multe scapari, doua le semnalez de la inceput:
- Nu am reusit sa rezolv problema comparatiei intre perioade de inceput si sfarsit de an, adica ianuarie anul N, cu decembrie anul N-1 (implicit similar la trimestre);
- Nu-mi place ca trebuie sa revin sa mai dau un click pe perioada dorita (trebuie reactualizata perioada);
Explicatii:
1.Pentru eliminarea randurilor cu zero din raport, trebuie rulata cate o interogare, pentru fiecare tip de raport (sunt prinse si in event-ul butonului..dar..le-am lasat si la vedere).Practic, oricare din interogari (in modul select) returneaza valori unice gasite , in functie de perioada aleasa;
2.Datele sunt stocate in TabelulTemporar, tabel ce se goleste la inchiderea raportului;
3.Am mai scris unele explicatii, in comentarii la unele eventu-ri.
Mod de lucru:
1.Selectam anul;
2.In optionGrup selectam perioada dorita (sunt disponibile pentru selectie si combo-urile grupa si unitate);
3.In functie de optiunea selectata, devine disponibila, caseta pentru perioada (luna sau trimestru);
4.Dupa selectarea lunii/trimestrului dorit, revenim in option grup pentru selectie perioada (la asta m-am referit cand am mentionat de actualizare optiune.Mai revenim sa mai dam un click).Verificam datele calculate in caseta PerioadaBaza;
5.Click-aim butonul actualizare tabel temporar (mai multe explicatii se gasesc in comentariile din procedura aferenta butonului) ;
6.Click-aim butonul Raport comparativ. (Dupa vizualizare/printare, eventul OnClose al raportului va rula interogarea de stergere a datelor din tabelul temporar.Si aici am scris comentarii la diversele proceduri).
Si cam atat.
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: situatii comparative

Mesaj de Tzica » Mar Dec 08, 2015 7:49 pm

M-am grabit, sa aduc vorba de DateSerial(), datorita particuaritatii sql-ului, de a stoca data calendaristica, in formatul american (mm/dd/yyyy) indiferent de afisajul ales de noi. (de obicei dd.mm.yyyy).In fine...am lucrat (e mult spus!) si la o abordare de tip data la nivel de zile.
Explicatii:
- Interogarea de la baza raportului, intoarce inregistrarile unice ale unitatilor, care apar in perioadele selectate(am selectat UniqueValues din proprietatile interogarii), la care am adaugat controale aferente valorilor cerute (numarat & Procent);
- Formula de calcul, pentru valorile nominale, e scrisa in controalele aferente din raport.De exemplu, pentru Perioada curenta:

Cod: Selectaţi tot

=DCount("unitate";"Tblev";"unitate=" & [Reports]![rptSitComp]![ctlIDN] & " And [data]>=#" & Format([Reports]![rptSitComp]![rptctlDatastartR];"mm/dd/yyyy") & "# And [data]<=#" & Format([Reports]![rptSitComp]![rptctlDatastopR];"mm/dd/yyyy") & "#")
Se remarca faptul ca trebuie "adus" formatul de data din raport, la formatul acceptat de MsAcces.
Altfel, ramane problema prevenirii introducerii eronate a intervalelor (de exemplu Data din perioada de baza (N-1) sa fie mai mare decat Data din perioada Curenta..sau orice alta combinatie eronata dintre cele 4 campuri/casete).Respectivele erori pot duce la rezultate eronate, chiar si la eludarea cerintei de a nu afisa unitati care nu apar in "perioadele selectate".In screen shot am pus un exemplu.
Succes.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

malasorte
Mesaje: 337
Membru din: Lun Ian 23, 2012 5:56 pm
Localitate: Galati

Re: situatii comparative

Mesaj de malasorte » Dum Dec 13, 2015 11:53 am

Multumesc mult pentru ajutor. Nu am reusit in concret sa ma uit pe ceea ce ati facut si mai ales la erorile de care spuneati.In functie de timp am sa ma uit mai exact si am sa incerc sa-l si adaptez la baza mea.La prima vedere pare mai simplu decat cel din exemplul anterior cand faceam pe luna, trim, sem..Formulele am vazut ca sunt puse in controalelel din raport si nu mai are ale query care sa stea la baza raportului.MS

malasorte
Mesaje: 337
Membru din: Lun Ian 23, 2012 5:56 pm
Localitate: Galati

Re: situatii comparative

Mesaj de malasorte » Mar Feb 09, 2016 7:33 pm

as avea inca nevoie de ajutor.Am incercat sa fac situatia comparativa doar din tbleve si nu stiu unde gresesc si nu reusesc sa trec mai departe.Indraznesc sa te rog Tzica sa-mi dai explicatii la un nivel mai pentru incepatori daca se poate sa vad unde ma impotmolesc.MS.
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: situatii comparative

Mesaj de Tzica » Mie Feb 10, 2016 5:55 pm

Ca sa pot da explicatii, am nevoie de oarece ..indrumari.Concret...unde e / in ce consta impotmoleala ??

malasorte
Mesaje: 337
Membru din: Lun Ian 23, 2012 5:56 pm
Localitate: Galati

Re: situatii comparative

Mesaj de malasorte » Mie Feb 10, 2016 7:56 pm

Am incercat sa fac o situatie comparativa folosind doar datele don tbleve fara a mai implica si talelul cu care se afla in relatie.oricum la sursa raportului am creat un query bazat doar pe tbleve. Cand am incercat sa numar inregistarile am schimbat sa numere dupa idev dar nu imi numara inregistrarile de acelasi fel din aceiasi zi.Nu am inteles formula sa o pot reface sa numere si dupa alte campuri.Din pacate nu am acces la comp sa pot urca ce am lucrat sa se poate vedea unde am incercat sa fac modificari

Trimis de pe al meu SM-G355H folosind Tapatalk

malasorte
Mesaje: 337
Membru din: Lun Ian 23, 2012 5:56 pm
Localitate: Galati

Re: situatii comparative

Mesaj de malasorte » Sâm Feb 20, 2016 5:43 pm

incerc sa fac in aceasta sit comparativa un control in care sa am rezultatul interogarii intre doua date. Defapt e dupa ceea ce a facut Tzica doar ca culege date din formular si nu din raport. Ma impotmolesc din nou la semnele de punctuatie si imi da eroare ca nu am argument am scris asa in controlul in care vreau rezultatul /=DCount(“[idev]”;”[tblev]”;[data_sesizarii]=[Forms]![Frminterventii]![dataInceput] And [data_sesizarii]=[Forms]![Frminterventii]![dataSfirsit])/

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

Re: situatii comparative

Mesaj de Tzica » Lun Feb 22, 2016 7:26 pm

Doar de placerea socializarii:
1.Solutia e deja 5-6 "etaje" mai sus (comentariu din Mar Dec 08, 2015 8:49 pm );
2.Impotmoleala ? nici vorba..ar fi insemnat sa "vad" o virgula pusa eronat(se intampla!) ..dar aici..nu vad nici o virgula.Scopul forumului fiind sa invatam, nu trebuie sa ne sfiim sa punem un cod, o formula care nu ne iese.E de ajutor si pentru cei ce incearca sa raspunda, "invata" sa nu repete si ei aceeasi eroare.In fine..
Premisa:Deci, avem doua criterii, pe care dorim sa le concatenam, sa le unim in partea Criteria a unei functii globale:
Pasul1.
Criteriul 1 (il scriem ca si cand ar fi vorba numai de un criteriu):
”[data_sesizarii] = # " & [Forms]![Frminterventii]![dataInceput] & " # "
(am inrosit si bolduit ultimul pachet de ghilimele)
Criteriul2:
" [data_sesizarii] = # " & [Forms]![Frminterventii]![dataSfirsit] & " # "
Pentru a le imbrica/concatena etc, mai avem nevoie sa strecuram operatorul AND si sa "mutam" pachetul de ghilimele care inchide primul criteriu, in asa fel incat sa includa operatorul AND, si sa faca legatura cu al doilea criteriu. Deci, formula finala, parta Criteriu/Criteria va arata astfel, :
" [data_sesizarii] = # " & [Forms]![Frminterventii]![dataInceput] & " # And [data_sesizarii] = " # & [Forms]![Frminterventii]![dataSfirsit] & " # "
Cu alte cuvinte trebuie sa avem grija la "imperecherile " ghilimelelor (Double quote).

malasorte
Mesaje: 337
Membru din: Lun Ian 23, 2012 5:56 pm
Localitate: Galati

Re: situatii comparative

Mesaj de malasorte » Mie Feb 24, 2016 5:23 pm

revin si spun ca ori sunt prea incet la minte ori sunt sabotat de aplicatie.Glumeam bineinteles.Am tot incercat si variantele din etajele superioare am incercat sa scriu si dupa si explicatiile date uterior dar inca nu am dat de capat.Incusiv am inlocuit doar denumiri si tot nu am reusit imi tot da error.Uite am sa urc un mic ex si poate ai sa observi ceea ce imi scapa.Ms.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Închis

Înapoi la “Intrebari despre Access 2007”