ultimele inregistrari

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

ultimele inregistrari

Mesaj de malasorte » Joi Dec 17, 2015 9:51 am

vreau sa fac o lista in care sa pot vizualiza doar inregistrarie din ultimele 24 de ore .NU stiu cum sa pun criteriu. Mersi.
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: ultimele inregistrari

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

Avand in vedere ca informatiile sunt stocate la nivelul de data (zz.ll.aaaa), tot ce putem face este sa construim o interogare parametrizata (care va sta la baza formularului respectiv). Practic,putem folosi doua abordari :
1. Fie Day () - 1 (in functie de data curenta).In functie de data curenta va intoarce numai inregistrairle din ziua anterioara.Nu necesita dialog cu utilizatorul.
2. In cazul in care ne intereseaza, informatiile din anterioare cu o zi, intr-o anumita data sa folosim DateAdd('d';-1;[DataSelectata]).E necesar dialogul cu utilizatorul.Deci, interogare parametrizata (sau ..ma rog cu parametru, in care utilizatorul musai sa introduca o data.

1. Lectia 7 sau mai degraba 8
2. Parametres
3. UsingDatesMsAcces
4. DateAddFunction

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

Re: ultimele inregistrari

Mesaj de malasorte » Joi Dec 17, 2015 1:30 pm

Multumesc Eu as fi foosit Now() care este acelasi cu Date(), dar nu stiam sa-i dau cu minus 1. Trebuie sa ma mai gandesc cum am sa fac pana la sfarsit pentru ca vor fi si inregistrari dupa ora 00:00 si ar fi in ziua curenta. Ar merge cu un simpu between date()-1 and Date(), dar in urmatoarea zi imi apar si cele pe care le-am vizualizat azi si au fost inregistrate dupa ora 00:00.

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

Re: ultimele inregistrari

Mesaj de malasorte » Joi Dec 17, 2015 2:23 pm

Acum as avea nevoie sa am un control in care sa am ultimul numar inregistrat. In baza trebuie sa tin o numaratoare cronologica.Pentru ca ar putea fi situatii in care cineva sa greseasca si sa stearga o inregistrare, nu folosesc autonumber si am decis sa fie trecut manual nr de ordine.In prezent cand adaug o inregistrare noua, mai intai se deschide formuarul cu lista pentru a se vedea ultimul numar de inregistrare si ulterior formularul de adaugare. As vrea sa schimb un pic in sensul ca in formularul de adaugare sa am un camp in care sa-mi arate ultimul nr de inregistrare.

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

Re: ultimele inregistrari

Mesaj de Tzica » Joi Dec 17, 2015 8:43 pm

Pai cred ca functia Max e mai mult decat ok.Mai ramane sa fim siguri ca e vorba de camp tip number , nu text.
FindTopBottom

Eu am ales sa arate un fel de top 3. Pentru a intoarce doar o singura valoare, trebuie selectat fie uniqueValues , fie unique records ..si renuntat la campul ID ..(strict in acest caz).
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: ultimele inregistrari

Mesaj de malasorte » Vin Dec 18, 2015 1:58 pm

Nu m-am facut intees. In exempu pe care am sa-l urc in formularul "FrmAdauga Inregistrare"
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: ultimele inregistrari

Mesaj de Tzica » Sâm Dec 19, 2015 7:24 pm

Cod: Selectaţi tot

Private Sub Form_Current()
If IsNull(Me.id) Then
        Me.UltimulNumar = DCount("*", "Table1")
    Else
        Me.UltimulNumar = DCount("nrInregistrare", "Table1", "id < [Forms]![FrmAdauga Inregistrare]![id]")
  End If
    
End Sub

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

Re: ultimele inregistrari

Mesaj de Tzica » Sâm Dec 19, 2015 7:30 pm

Cod: Selectaţi tot

Private Sub Form_Current()
If IsNull(Me.id) Then
        Me.UltimulNumar = DCount("*", "Table1")
    Else
        Me.UltimulNumar = DCount("nrInregistrare", "Table1", "id < [Forms]![FrmAdauga Inregistrare]![id]")
  End If
    
End Sub
Cu alte cuvinte, la incarcarea formularului, se verifica id-ul inregistarii (MsAcces , in absenta unor comenzi specifice, nu salveaza o inregistrare, pana nu se trece la urmatoarea inregistrare).Fiind Null (nefiind salvata inregistrarea) afiseaza Numarul inregistrarilor existente (deci noul numar va fi cel afisat plus 1).Daca id-ul exista , in cazul vizualizarii inregistrarilor anterioare, afiseaza numarul inregistarilor in care id-ul din tabel este strict mai mic decat cel din formular. ( Haiti ! Nu stiu cum..dar vad ca l-am dublat....rog moderatorul/moderatorii sa stearga mesajul anterior) :oops:

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

Re: ultimele inregistrari

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

Tot a trebuit sa revin.Formula de mai sus, nu tine cont de an.De aceea propun urmatoarea :

Cod: Selectaţi tot

DCount("nrInregistrare";"Table1";"[id]<" & [Forms]![FrmAdauga Inregistrare]![id] & " And Year(data) =" & Year([Forms]![FrmAdauga Inregistrare]![data]) & " And [data] <=#" & Format([Forms]![FrmAdauga Inregistrare]![data];'mm/dd/yyyy') & "# ")
Formula se introduce in campul din formular, precedata de semnul egal.Va afisa ultimul numarinregistrat dupa introducerea datei.
Astfel, completand campul data, MsAcces recunoaste o inregistrare si astfel aloca un id.
(Fireste, asta inseamna ca cei care introduc numere de inregistare, sa aiba grija sa incrementeze ei cu o unitate, pentru ca formula de fapt, numara randurile care indeplinesc criteriile : id strict mai mic decat cel din formular, anul acelasi iar data mai mica sau egala cu cea din formular)

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

Re: ultimele inregistrari

Mesaj de malasorte » Lun Dec 28, 2015 3:18 pm

scuze ca nu am postat pana acum dar am fost plecat de acasa si nu am mai avut acces la internet.In situatia mea este mai buna varianta penultima deoarece la deschiderea formularului am nevoie de nr anterior.Asa o vad in situatia in care prefer ca primul camp ce urmeaza a fi completata la deschiderea formuatuui aR fi nr crt.Totusi cu punina instruire si poate un mesaj se poate completa campul data si ulterior nr crt.Oricum multumesc de raspunsuri si pentru timpul acordat.

Închis

Înapoi la “Intrebari despre Access 2007”