Se aplică la
Access pentru Microsoft 365 Access 2021 Access 2019

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

Notă: Această pagină este menționată în Access Developer Showcase Edition

În ediția Northwind Starter, Clientul este singurul tip de firmă. În ediția pentru dezvoltatori, am extins această opțiune pentru a include clienți, expeditori și distribuitori

De asemenea, am extins Produsele pentru a include mai mulți furnizori pentru un produs.   

Fiecare companie poate fi de un singur tip: client, expeditor sau furnizor. Cazul de afaceri pentru momentul în care tipul de firmă poate fi modificat este descris în secțiunea frmCompanyDetail a acestui articol. '

Tipurile de firmă și locul în care sunt utilizate 

  • Client pentru o comandă

  • Expeditor pentru o comandă

  • Furnizor pentru o comandă de cumpărare

  • Distribuitor pentru un produs

În plus, firmele din versiunea Northwind Developer pot avea mai multe persoane de contact. '

Firme în Panglică

Selectarea firmelor din panglică afișează Firme în Northwind în frmCompanyList

Listă de firme - frmCompanyList

În versiunea de dezvoltator Northwind, frmCompanyList este un formular scindat. Un formular scindat vă oferă două vizualizări ale datelor în același timp, Vizualizare formular și Vizualizare foaie de date. De asemenea, are un antet și un subsol.  În această implementare nu vom afișa vizualizarea formularului. Dacă nu se afișează vizualizarea formular, vom avea o foaie de date cu un antet și un subsol.  

Iată cum realizăm acest lucru:  

În frmCompanyList, bara de scindare dintre antet și foaia de date nu este vizibilă. Bara de scindare a proprietății formular scindat este setată la Nu, ascunzând astfel vizualizarea formular. 

Formularele scindate și formularele foaie de date sunt ca foile de lucru Excel. Acestea acceptă filtrarea și sortarea și puteți să afișați, să ascundeți sau să mutați câmpuri sau coloane. De asemenea, coloanele pot fi totalificate. 

Secțiunile de antet și subsol dintr-un formular scindat vă permit să utilizați butoane de comandă, imagini, text(etichete) și orice alte controale formular de acces pe care doriți să le îmbunătățiți experiența utilizatorului. Pentru a afla mai multe despre formulare și formulare scindate, puteți începe de aici. Foile de date nu afișează secțiunile de antet și subsol.

Aflați mai multe prin Introducere în formulare și Crearea unui formular scindat '

Formularul Listă firmă acceptă aceste cinci acțiuni:

  • Aplicarea unui filtru particularizat, predefinesc, de filtrare la cerere sau a ambelor

  • Afișare/ascundere câmpuri

  • Creare etichete

  • Afișare filtru

  • Adăugați o firmă nouă

Faceți dublu clic oriunde în rândul de detalii pentru a deschide formularul Detalii firmă (nu doar pe ID ca în alte formulare).  '

Filtre predefiniți și filtrare la cerere

Formularul frmCompanyList este bogat în oportunități de filtrare a firmelor din Northwind.  În partea de sus a ecranului, puteți filtra utilizând aceste butoane radio:

  • Toate firmele (setarea implicită)

  • Numai clienți

  • Numai expeditori

  • Numai distribuitori

În plus, sunt disponibile opțiunile de filtrare predefinite, la cerere și din foaia de date. Toate filtrele aplicate la formularul Listă firmă (predefinite sau la cerere) sunt transmise și aplicate la frmCompanyDetail atunci când este deschis.  

Pentru a trece filtrele de la un formular la altul, trebuie mai întâi să curățați șirul de filtrare al formularului pentru a conține numai nume de câmpuri. Uitați-vă la modulul de cod Open_frmCompanyDetail pentru o explicație mai detaliată a modului în care se face acest lucru și în frmCompanyDetail la comentariile pentru Form_Load pentru a vedea cum se aplică.

Transmitem informațiile despre filtru la formularul Detalii firmă prin proprietatea OpenArgs a formularului, în loc să deschidem formularul cu condiția Where .  Puteți afla mai multe despre OpenArgs aici.

Afișare/ascundere câmpuri

Selectați Afișare/Ascundere câmpuri pentru a deschide o casetă de dialog cu o listă cu toate câmpurile disponibile; puteți să bifați sau să debifați una sau mai multe coloane. Aspectul selectat persistă de la o sesiune la alta până când se implementează o versiune nouă a aplicației. Consultați Afișarea sau ascunderea coloanelor într-o foaie de date. 

Creare etichete

Butonul Creare etichete deschide Expertul etichetă Access. Aflați mai multe despre expertul etichetă aici: Crearea etichetelor poștale în Access. 

Deschideți detaliile firmei

Faceți dublu clic oriunde într-un rând de detalii pentru a deschide frmCompanyDetail

Faceți clic pe câmpul ID (configurat ca hyperlink) sau faceți dublu clic pe orice alt câmp din rândul de detalii pentru a deschide frmCompanyDetail la firma selectată și treceți orice filtru de formular aplicat listei de firme la frmCompanyDetail.

Detalii firmă - frmCompanyDetail

La prima vedere , frmCompanyDetail poate arăta relativ simplu.  Cu toate acestea, nu este.  În codul din spatele formularului, se întâmplă multe!  Formularul evidențiază următoarele acțiuni și caracteristici:

  • Mai multe butoane de comandă și linkuri

    • Adăugare firmă

    • Listă de firme de e-mail

    • Afișare filtru

    • Ștergere firmă

    • Deschiderea unei hărți pe baza unei adrese

    • Deschiderea unui site web dintr-un hyperlink

  • Anularea sau salvarea acțiunilor în modul adăugare/editare

  • Reguli de afaceri pentru a controla când poate fi modificat un tip de firmă

  • Verificarea integrității referențiale înaintea evenimentului de ștergere '

Evenimentul Form_Load include următoarele acțiuni:

  • Utilizați mai mulți parametri transmiși formularului prin OpenArgs și funcția particularizată StringToDictionary Northwind

  • Utilizați proprietatea formular OpenArgs pentru a permite unui utilizator să adauge o firmă nouă în timp ce preia o comandă

  • Utilizați tehnica GoToRecord pentru a adăuga o firmă nouă

  • Utilizați tehnica SearchForRecord pentru a trece la firma selectată pe frmCompanyList

  • Opțiuni de ramificare/Executare condiționată (Consultați Form_Load eveniment)

    • Opțiunea 1 - Instrucțiunea cazului

    • Opțiunea 2 - Imbricată dacă altfel

    • Opțiunea 3 – ElseIf

    • Opțiunea 4 - Imbricată dacă altfel și ElseIf '

În evenimentul Form_Current, au loc următoarele: 

  • Modificați o legendă de subformular și un obiect sursă la momentul rulării, apelând sub ManageFormOptions(). Această subrutină este apelată din mai multe locuri din acest formular.  '

Anulați sau salvați acțiunile atunci când sunteți în modul de adăugare sau editare. 

Formularele noastre Access sunt legate.  Ce înseamnă aceasta?  De la Microsoft: "Un formular "legat" este unul care este conectat direct la o sursă de date, cum ar fi un tabel sau o interogare, și poate fi utilizat pentru a introduce, a edita sau a afișa date din acea sursă de date."

În cazul formularelor legate, Access nu vă solicită să "salvați" în mod explicit datele.  Atunci când treceți de la o înregistrare la următoarea, Access vă salvează automat datele.  Adesea, aceasta funcționează așa cum doriți.  Dar ce se întâmplă dacă un utilizator trebuie să efectueze o acțiune pentru a indica faptul că este gata să salveze? 

De exemplu, form frmCompanyDetail are un sub formular pentru Persoane de contact (sfrmCompanyDetail_Contacts).  Așadar, ce se întâmplă dacă începeți să adăugați sau să editați datele firmei - să spunem număr de telefon - și să vă opriți pentru a remedia o greșeală de ortografie pe care o observați în informațiile unei persoane de contact?  În mod implicit, Access va salva toate modificările efectuate în înregistrarea firmei atunci când faceți clic pe înregistrarea persoanei de contact, ceea ce nu este ceea ce doriți. 

În acest formular, vă arătăm o modalitate de a realiza acest lucru cu o singură înregistrare pentru o firmă.

Care este motivul pentru care aveți butonul Anulare ? Tasta escape anulează toate datele introduse sau modificate (dar nesalvate) dintr-un control din formular. În această stare, pictograma creion apare în selectorul de înregistrare (o bară verticală gri în partea stângă a rândului).

Totuși, după ce faceți clic pe butonul Adăugare firmă , veți observa că nu există nicio pictogramă creion până când nu începeți să introduceți date în noua înregistrare de firmă. Ce se întâmplă dacă vă răzgândiți cu privire la adăugarea unei firme noi în acest moment? Dacă apăsați tasta Escape, nu se întâmplă nimic, deoarece nu ați introdus încă date. De aceea avem butonul de anulare.

Clicul pe butonul Anulare funcționează întotdeauna; tasta escape funcționează doar după ce ați introdus sau ați modificat datele.  

Dacă începeți să adăugați sau să modificați date, apoi închideți formularul fără a face clic pe salvare sau anulare, Access va salva implicit datele.  

Regulă de afaceri: Ca regulă de afaceri Northwind pentru Firme, dorim să indicați în mod explicit că doriți să "Salvați".  Pentru a ne asigura că, trebuie să verificăm dacă utilizatorul a făcut clic pe salvare în evenimentul Form_BeforeUpdate și dacă nu a făcut clic pe salvare, solicitați utilizatorului să indice dacă dorește să salveze sau să anuleze modificările. '

Modificare tip firmă

Regulă de afaceri: Dacă o firmă are comenzi, comenzi de cumpărare sau este furnizor pentru un produs, utilizatorul nu poate modifica Tipul firmei. Am creat o funcție, CompanyIsActive(), pentru a determina dacă există oricare dintre condițiile de mai sus. În acest caz, utilizatorul nu poate modifica tipul firmei până când nu sunt șterse aceste referințe. 

Această regulă este impusă numai în acest formular.  Într-o aplicație gata de producție, nu le-ați permite utilizatorilor să modifice datele deschizând direct tabelul.  În Northwind, vă permitem să deschideți tabelele și să faceți ce doriți.  Aceasta este o modalitate foarte bună de a învăța, dar, de asemenea, vă lasă liberi să faceți modificări care ar putea încălca regulile. 

Trebuie să programați mereu în apărare. Planificați pentru neașteptate. Chiar dacă Compania este în prezent un Expeditor, asta nu înseamnă că nu au fost la un moment dat un furnizor sau un client. ID-ul său poate fi găsit în înregistrările mai vechi din tabelele ProductVendor sau PurchaseOrder . '

Formular de dialog particularizat.

Pentru a afișa concluziile, cboCompanyTypeID_BeforeUpdate utilizează un formular de dialog, frmGenericDialog. Aceasta poate fi o alternativă foarte bună la caseta de mesaje standard atunci când aveți multe informații de afișat. De asemenea, este utilizat împreună cu formularul de angajat pentru un scop similar.'  Ștergere verificare integritate referențială

În ediția Northwind Starter, permitem comportamentului implicit Access să vă anunțe că o firmă nu poate fi ștearsă atunci când are înregistrări asociate.  

În ediția Northwind developer, vă anunțăm înainte de ștergere, în loc să acceptăm comportamentul implicit Access.  Facem acest lucru utilizând aceeași funcție ca și modificarea tipului de firmă; funcție CompanyIsActive().

Diferența este că ne interesează doar comenzile sau comenzile de cumpărare. Dacă nu există Comenzi sau Comenzi de cumpărare, confirmăm intenția dvs. de a șterge și vom șterge Furnizorul și persoanele de contact pentru produs, dacă există pentru dvs. 

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.