Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Selectați orice subiect de mai jos pentru a afla despre angajați în ediția Northwind Developer. 

Angajații au un formular scindat care funcționează ca formular listă și detalii. 

Utilizați Angajați pentru a adăuga angajați noi și a actualiza informațiile despre angajații existenți. 

Selectați fila Angajați de pe panglică pentru a afișa angajații în formularul Listă angajați, frmEmployeeList, care este un formular scindat cu următoarele caracteristici: 

  • Partea de sus a formularului este o vizualizare unică a unui angajat.

  • Partea de jos a formularului este o Vizualizare foaie de date pentru toți angajații.

  • Selectarea unui angajat din oricare parte setează, de asemenea, focalizarea la acel angajat în cealaltă parte a formularului scindat.

  • Puteți să adăugați, să editați sau să ștergeți angajați din oricare parte a formularului scindat.

  • Utilizarea unui formular scindat cu partea vizualizare foaie de date presupune că sursa de înregistrări a formularului are mai multe înregistrări.

Impactul potențial al performanței unui formular scindat 

Majoritatea dezvoltatorilor preferă să nu încarce un tabel sau o interogare nefiltrată ca sursă de înregistrări pentru un formular. Filtrarea unui formular într-o singură înregistrare minimizează volumul de date de transferat din tabel în formular. Cu un tabel Access local, diferența dintre încărcarea unei surse de înregistrări filtrate și a unei mici surse de înregistrări nefiltrate poate fi abia vizibilă. Această performanță se pierde însă atunci când tabelele Access sunt înlocuite cu o bază de date la distanță, bazată pe server, cum ar fi SQL Server. 

Tabelul angajaților din Northwind nu ar trebui să crească foarte mare, deci este un candidat pentru o sursă de înregistrări nefiltrată. Cu toate acestea, formularele legate la alte tabele, cum ar fi detaliile comenzii, care pot crește la multe mii de înregistrări, nu sunt candidați pentru o sursă de înregistrări nefiltrată.
 

EDITAREA ANGAJAȚILOR

Atunci când adăugați sau editați înregistrări într-un formular scindat, utilizatorii pot introduce valori în vizualizarea formular sau în vizualizarea foaie de date. Unele câmpuri sunt obligatorii, altele sunt opționale. Formularul validează prezența valorilor în câmpurile obligatorii. Consultați Validarea obligatorie a câmpurilor mai jos.

Tabele de căutare, liste de valori și controale verticale

  • Lista verticală Titluri limitează intrările la o listă de titluri preselectat. Titlurile se află într-un tabel de căutare denumit Titluri.

  • Unele opțiuni așteptate sunt stocate deja în tabelul de căutare, dar utilizatorii pot adăuga titluri noi la tabelul de căutare, utilizând comportamentul Access implicit pentru caseta combo sau controalele verticale.

    • Proprietatea Limită la listă a casetei combo Titlu este setată la Da și formularul de editare pentru titluri este identificat în proprietatea Editare formular elemente listă. Selectarea listei verticale din formular afișează pictograma de editare în marginea de jos. 
      ...

Dacă faceți clic pe pictograma de editare, se deschide formularul de editare Titluri , frmEmployeeTitles, unde puteți să modificați sau să adăugați la lista de titluri aprobate. 

NOTĂ:În majoritatea mediilor de producție, editarea sau adăugarea titlurilor ar fi limitată la utilizatorii cu privilegii îmbunătățite.
 

Self-Referential câmpurilor de căutare

Funcția de angajat ilustrează conceptul de câmp ID Self-Referential. Pentru a accepta desemnarea unui supraveghetor al unui angajat, tabelul are un câmp ID Supervizor cu IDAngajatpentru alți angajați. Pentru a desemna un supraveghetor, ID Angajat pentru alt angajat este introdus în acest câmp. Access impune Integritatea referențială pentru această relație.

SUPERVISORID este implementat sub formă de angajat sub formă de listă verticală sau casetă combo; sursa sa de rânduri este un set filtrat de înregistrări din tabelul Angajați. Deoarece este auto-referențială, interogarea trebuie să excludă ID Angajat al angajatului selectat. De exemplu, sursa de rânduri pentru SUPERVISORID pentru angajata Karen Finster nu include ID-ul de angajat al lui Karen. Nu poate fi propriul ei supraveghetor.

Câmpuri și controale atașare

Imaginile angajaților sunt stocate într-un câmp atașare din tabel. Puteți să adăugați imagini noi sau să modificați imaginile existente, utilizând comportamentul Access implicit pentru câmpurile atașare. 
...

NOTĂ: Am inclus un câmp atașare în tabelul Angajați pentru a ilustra caracteristica din Access. Imaginile încorporate măresc dimensiunea aderențelor și, prin urmare, nu sunt considerate exemple de bună practică. Evaluați cu atenție mediul înainte de a-l implementa într-o aplicație de producție. Alternativa preferată este un folder de rețea care stochează toate imaginile și un link într-un câmp text din tabelul care conține calea către imagine, nu câmpul Atașare.

Subformular cu informații asociate

Subformularul Comenzi (în partea dreaptă a formularului Angajat) afișează comenzile recente (dacă există) gestionate de angajat. Subformularul listează comenzile în Vizualizare foaie de date, sortate de la cele mai noi la cele mai vechi. Pentru a edita o comandă existentă pentru angajatul respectiv, faceți clic pe ID comandă cu hyperlink din subformularul Comenzi.

Sursa de înregistrări a formularului angajaților

O interogare numită qryEmployees returnează înregistrările din formular. Utilizarea unei interogări, nu a tabelului, este considerată de obicei un exemplu de bună practică. Interogarea returnează înregistrări dintr-un singur tabel. În plus, o interogare poate fi parametrizată pentru a limita numărul de înregistrări returnate. 

  • Clauza Select a acestei interogări utilizează metacaracterul '*' pentru a returna toate câmpurile din tabelul Employee (Angajat).

  • Două câmpuri calculate din interogare returnează Prenume Nume și Nume, Prenume.
     

Valori calculate în controale

NOTĂ: Câmpurile calculate nu sunt stocate în tabel. Cu toate acestea, acestea sunt disponibile în sursa de înregistrări a formularului.

Majoritatea controalelor din formularul Angajați sunt activate, astfel încât le puteți selecta cu mouse-ul sau tab și nu sunt blocate , astfel încât să fie editabile. 

În plus față de comportamentul Access încorporat, subs și funcții VBA în formulare, în controalele din formulare și în modulele independente efectuează logica de bază necesară pentru angajați. Următoarea secțiune descrie funcțiile și codul care implementează acele funcții. 

Acțiune de control încorporată

Comportamentul implicit al selectorului de înregistrare al formularului: 

  • Clic stânga pe selectorul de înregistrare din partea stângă a unui formular într-o singură vizualizare salvează înregistrarea curentă cu orice editări. Salvarea făcând clic stânga pe selectorul de înregistrare declanșează subs și funcții VBA corespunzătoare.

  • Clic dreapta pe selectorul de înregistrare din partea stângă a unui formular într-o singură vizualizare afișează un meniu pentru a efectua acțiuni cum ar fi Decuparea, Copierea sau Lipirea unei înregistrări. Ștergerea sau decuparea unei înregistrări declanșează funcția EmployeeCanBeDeleted descrisă mai jos.

  • Selectorii de înregistrări trebuie activați pentru ca acest comportament implicit să fie disponibil.
     

Integritate referențială pentru înregistrările din formular

Integritatea referențială împiedică ștergerea angajaților care au înregistrări Fiu în tabelele asociate. Prin urmare, Access ridică o eroare dacă un utilizator încearcă să șteargă o înregistrare cu înregistrări fiu. Access formular Northwind Employee înlocuiește mesajele de eroare generice, implicite, cu privire la integritatea referențială cu mesaje particularizate.

Codul din procedura Delete a formularului răspunde la încercările de decupare a unei înregistrări din meniul contextual sau de ștergere a unei înregistrări utilizând tasta Delete

O funcție privată, EmployeeCanBeDeleted, verifică înregistrările asociate pentru acel angajat în tabelele Comenzi, Comenzi de achiziție, Angajați și Privilegii angajat

Dacă sunt găsite, această funcție suprimă mesajul de eroare implicit și informează utilizatorul despre motivul pentru care înregistrarea nu poate fi ștearsă utilizând aceeași casetă de dialog generică pe care o utilizează formularul Client pentru a notifica utilizatorul cu privire la motivul pentru care clientul nu poate fi șters.

Validare

Angajații implementează validarea și gestionarea standard a erorilor. Există două tipuri de validare pentru controale.

  • Câmpuri obligatorii

  • Formate standard

Validare câmp obligatoriu

 Sunt necesare trei câmpuri pentru toți angajații:

  • Prenume

  • Nume

  • Funcție

În această versiune de dezvoltator, evenimentul Înainte de actualizare al formularului validează câmpurile obligatorii. Dacă un utilizator încearcă să salveze o înregistrare de angajat fără valori pentru unul sau mai multe câmpuri obligatorii care nu au o validare de valoare anulează salvarea și evidențiază toate câmpurile obligatorii care nu au o valoare. În formularul Angajat din Northwind, validarea de câmp necesară este gestionată de evenimentul Înainte de actualizare al formularului, nu de controalele individuale.

Evenimentul Before Update al formularului Employee validează prezența valorilor pentru cele trei câmpuri obligatorii. Salvarea unei înregistrări de angajat noi sau editate declanșează evenimentul Înainte de actualizare al formularului, care apelează Funcții publice care verifică și răspunde la prezența sau absența valorilor necesare.

Modulul modValidation conține aceste funcții:

  • Validare formular

  • FormăValid

  • HighlightInvalidControls

  • Control evidențiere

  • ValidateForm_RemoveHighlights

Gestionarea angajaților noi

Dacă faceți clic pe butonul Adăugare angajat, rulați btnNewEmployee_Click Sub privat pentru: 

  • salvați înregistrarea curentă și

  • setarea focalizării formularului la o înregistrare
    nouă '

Wildcard vs Named Fields in a Select query

Clauza SELECT din qryEmployees utilizează caracterul wildcard "*" pentru a selecta TOATE câmpurile din tabel. Proiectarea interogării cu metacaractere include automat toate câmpurile nou adăugate dintr-un tabel subiacent, ceea ce nu este posibil cu o listă de câmpuri specifice. Pe de altă parte, este posibil să listați câmpuri specifice pentru a restricționa setul de înregistrări returnat doar la acele câmpuri necesare într-un formular de afișare, de exemplu.

Opțiuni de proiectare potrivite

Desenele dvs. trebuie să se bazeze pe abordarea potrivită pentru cerințele dvs. Deși, atunci când este posibil, preferința ar merge în mod normal la abordarea care este cel mai puțin probabil să necesite întreținerea viitoare (de exemplu, abordarea privind metacaracterele). 

ComboBoxes bound to Lookup Tables - Two Approachs

Elementele asociate, cum ar fi Supervizorul unui angajat, sunt afișate în listele verticale sau în casetele combo din formulare. Doar cheia străină pentru SupervisorID este necesară în interogarea sursei de înregistrări a formularului, deoarece câmpul este legat la câmpul Cheie străină (SupervisorID). De asemenea, caseta combo afișează valoarea text corespunzătoare.

O casetă combo cu două coloane cu o coloană ID ascunsă și o coloană Descriere vizibilă face să funcționeze. În formularul angajat, caseta combo Supervizor este legată la o interogare simplă pe două coloane. Consultați proprietatea RowSource pentru Supervisor.

Totuși, în unele cazuri, un tabel de căutare nu are o cheie primară separată și, prin urmare, valoarea text în sine este cheia primară.

Atunci când o listă de valori posibile este mică și foarte stabilă, cum ar fi titlul unui angajat, aceasta se numește adesea Domeniu închis. Modificarea sau adăugarea valorilor pentru Titlu nu sunt comune. Tabelele de căutare de domeniu închise sunt candidați pentru abordarea interogării cu o singură coloană.

În formularul Angajat, caseta combo Titlu este legată la o interogare de titluri cu o coloană. Consultați proprietatea RowSource pentru Titluri. 

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×