AutoExec Macro - Schimbare Status Automat

Ce este nou in Microsoft Access 2010?
Informatii despre cum se utilizeaza Microsoft Access 2010.
Baze de date, Interogari, Formulare, Rapoarte, etc
Închis
SharQue99
Mesaje: 72
Membru din: Vin Noi 02, 2012 3:06 pm

AutoExec Macro - Schimbare Status Automat

Mesaj de SharQue99 » Mar Mai 31, 2016 10:17 am

Dragi prieteni,
Asa cum v-am obisnuit, revin cu una din obisnuitele mele provocari. Cum nevoia m-a impins, am zis sa fac un macro care sa imi modifice automat statusul clientilor. Doar ca nu pot singur si am nevoie de sfatul vostru.
Speta suna cam asa :

Avem tabelele - care contin, printre altele, urmatoarele campuri:
- tblClienti - id_client, status_client
- tblComenzi - id_comanda, data_comanda, id_client
- tblCereri - id_cerere, data_adaugare_cerere, id_client
- tblIstoric_client - id_nota, data_adaugare_nota, id_client
- tblStatus - id_status, status

Ce vreau sa faca este :

Cod: Selectaţi tot

Selectare  fiecare client in parte si :
        a.	 Daca status_client = 5 atunci nu face nimic 
        b.	Altfel se verifica in tblCcomenzi fiecare record. 
                 i.	Daca exista o comanda cu id_client egal cu al celui selectat si cu data_comanda mai mica de 180 zile atunci tblClienti!status_client  = 1 ;
                 ii.	Daca nu exista atunci se verifica in tblCereri fiecare record.
                            1.	Daca exista o Cerere cu id_client egal cu al celui selectat si data adaugare_cerere mai mica de 120 zile atunci tblClienti!status_client  = 2 ;                                          
                            2.	Daca nu exista atunci se verifica in tblIstoric_client.
                                     a.	Daca exista o nota id_client egal cu cel selectat si cu data_adaugare_nota mai mica de 90 zile atunci tblClienti!status_client  = 3 ;
                                     b.	Daca nu exista o nota cu data adaugare mai mica de 90 atunci tblClienti!status_client  = 4 ;
1. Se poate realiza asa ceva in Access ?
2. Daca da, sa zicem ca If-urile, else-urile, stiu sa le fac. Nu stiu insa care este comanda prin care macro-ul cauta in fiecare record din tabele, pana la ultimul ?
3. Oare la 2000 de clienti si 1000 de comenzi, cereri si note, o sa dureze foarte mult rularea lui ? Daca da atunci o sa il pun sa il faca o data pe zi, la prima deschidere.

Sper sa aveti timp sa va ganditi putin la aceasta mica provocare ( nu stiu pentru voi dar pentru mine cu siguranta este ) .

Va multumesc mult.

PS: Nu cersesc coduri gratis, provocarea este sa le fac singur. Am nevoie doar de mici "hint"-uri.:))

cvmircea
Moderator
Moderator
Mesaje: 403
Membru din: Lun Aug 03, 2009 7:25 pm
Localitate: Alba Iulia
Contact:

Re: AutoExec Macro - Schimbare Status Automat

Mesaj de cvmircea » Mar Iun 14, 2016 11:39 pm

Am facut ceva asemanator, o comanda continea mai multe produse iar fiecare produs trecea prin mai multe faze (manopere). Trebuia sa verific daca toate produsele au trecut de toate fazele si sa trec statusul comenzii ca "Terminata in productie".Nu stiu cum este organizata baza ta de date dar banuiesc ca intre tebelele clienti si comenzi exista relatie "one to many".Statusul initial al comenzii este 0 ? O comanda care are deja un status de exemplu 3 mai poate sa isi schimbe acest status in 2 sau 1 sau 4 ?
Ai putea face cu interogari de tip update. Pt primul punct faci o interogare in care selectezi id_client,status_client din tblClienti si data_comanda din tblComenzi care sa arate doar clientii care au comenzi si pui conditia cu data_comanda mai mica de 180 zile ,verifica daca ai rezultatele dorite iar apoi transformi interogarea in interogare de tip update si alegi campul status pentru a fi actualizat cu valoarea 1.
La fel poti face si penrru celelalte puncte.

Închis

Înapoi la “Intrebari despre Access 2010”