Northwind 2.0 Developer Edition: Employees

Hatókör
Microsoft 365-höz készült Access Access 2021 Access 2019

Válassza ki az alábbi témakörök bármelyikét, ha többet szeretne megtudni a Northwind Developer Edition alkalmazottakról . 

Áttekintés

Az alkalmazottaknak egyetlen osztott űrlapja van, amely lista- és részletező űrlapként működik. 

Alkalmazottak használata

Az Alkalmazottak listával új alkalmazottakat vehet fel, és frissítheti a meglévő alkalmazottak adatait. 

Válassza a menüszalag Alkalmazottak lapját az alkalmazottak listájának megjelenítéséhez az "Alkalmazottak listája" űrlapon. Az űrlap az alábbi funkciókkal rendelkező osztott űrlap:

  • Az űrlap felső része egyetlen alkalmazott nézete.
  • Az űrlap alsó része az összes alkalmazott Adatlap nézete.
  • Ha valamelyik részen kiválaszt egy alkalmazottat, akkor a fókusz az adott alkalmazottra kerül az osztott űrlap másik részén is.
  • Az osztott űrlap mindkét részén hozzáadhat, szerkeszthet és törölhet alkalmazottakat.
  • Ha az Adatlap nézet részével használ egy osztott űrlapot, az űrlap rekordforrása több rekorddal rendelkezik.

Az osztott űrlapok hatása a teljesítményre

A legtöbb fejlesztő nem szeret szűrés nélküli táblákat vagy lekérdezéseket betölteni rekordforrásként egy űrlaphoz. Ha egyetlen rekordra szűri az űrlapot, azzal minimalizálhatja a táblából az űrlapra átvinni kívánt adatok mennyiségét. Helyi Access-táblák esetén a szűrt rekordforrás és a kis méretű szűretlen rekordforrás betöltése közötti különbség alig észrevehető. Ez a teljesítmény azonban elvész, ha az Access-táblákat egy távoli, kiszolgálóalapú adatbázisra cseréli, mint amilyen például az SQL Server. 

A Northwindben az alkalmazottakat tartalmazó táblázatnak nem szabad túl nagyra nőnie, ezért szűretlen rekordforrás használatát javasoljuk. A más táblákhoz kötött űrlapok, például a rendelés részletei – amelyek potenciálisan több ezer rekordra nőhetnek – nem alkalmasak szűrés nélküli rekordforrásra.
 

ALKALMAZOTTAK SZERKESZTÉSE

Az osztott űrlap rekordjainak hozzáadásakor és szerkesztésekor a felhasználók űrlap vagy adatlap nézetben is megadhatnak értékeket. Egyes mezők kötelezőek, mások kitöltése kötelező. Az űrlap ellenőrzi, hogy a kötelező mezőkben vannak-e értékek. Lásd alább a kötelező mezők érvényesítését .

Keresési táblázatok, értéklisták és legördülő menük

  • A Címek legördülő menü a bejegyzéseket az előre kiválasztott címek listájára korlátozza. A címek a Címek nevű keresésitáblázatban találhatók.

  • Néhány várt választási lehetőség már meg van adva a keresési táblában, de a felhasználók új címeket adhatnak a keresési táblához a kombinált lista alapértelmezett hozzáférési viselkedését használva, illetve a legördülő listákat használva.

    • A Cím kombinált lista Korlátozás listaelemre tulajdonsága Igen értékre van állítva, a Címek szerkesztési űrlapja pedig a Listaelemek szerkesztése űrlaptulajdonságban található. Az űrlap legördülő menüjének kiválasztásakor megjelenik a szerkesztés ikon a képernyő alsó részén. 
      Cím legördülő listája az úr, a feleség és a doktor beállításaival, valamint egy szerkesztési ikonnal

A szerkesztési ikonra kattintva megnyílik a Címek szerkesztési űrlap ( frmEmployeeTitles), amelyben módosíthatja a jóváhagyott munkaköröket, vagy bővítheti azokat. 

MEGJEGYZÉS: A legtöbb éles környezetben a címek szerkesztése és hozzáadása a kibővített jogosultságokkal rendelkező felhasználókra korlátozódik.
 

Önhivatkozó keresőmezők

Az alkalmazott függvény a Self-Referential azonosító mező fogalmát illusztrálja. Az alkalmazott felettesének kijelölését elősegíti a tábla SupervisorID (Felügyelőazonosító) mezője, amely a többi alkalmazott Alkalmazottkód mezőjét tartalmazza. Felettes kijelöléséhez egy másik alkalmazott Alkalmazottazonosító mezőjét kell ebbe a mezőbe írni. Az Access ennél a kapcsolatnál megőrzi a hivatkozási integritást.

A SupervisorID az alkalmazott űrlapján legördülő menüként vagy kombinált listaként van implementálva; a sorforrása az Alkalmazott tábla rekordjainak szűrt halmaza. Mivel a lekérdezés önreferencia, ki kell zárnia a kijelölt alkalmazott saját Alkalmazottazonosító mezőjét. Karen Finster alkalmazott SupervisorID sorforrása például nem tartalmazza Karen saját EmployeeID értékét. Nem lehet a saját maga felettese.

Mellékletmezők és -vezérlők

Az alkalmazottak képét a tábla mellékletmezője tárolja. Új képeket adhat hozzá, vagy módosíthatja a meglévőket, a hozzáférés alapértelmezett viselkedését alkalmazva a mellékletmezőkre. 
Az Alkalmazottak űrlap üres mellékletmezővel

MEGJEGYZÉS: Az Alkalmazottak táblában egy mellékletmezőt vettünk fel, amely szemlélteti az Access szolgáltatását. A beágyazott képek megnövelik az accdb-k méretét, ezért nem tekinthetők ajánlott eljárásnak. Gondosan értékelje ki a környezetet, mielőtt éles környezetben lévő alkalmazásba implementálná. Az előnyben részesített módszer egy olyan hálózati mappa, amely tárolja az összes képet, és nem a Melléklet mezőt, hanem egy hivatkozást helyez el a kép elérési útját tartalmazó táblázat egyik szövegmezőjében.

Segédűrlap kapcsolódó információkkal

Az Alkalmazottak űrlap jobb oldalán található Rendelések segédűrlap megjeleníti az alkalmazott által kezelt legutóbbi megrendeléseket (ha vannak ilyenek). A segédűrlap felsorolja a megrendeléseket Adatlap nézetben, a legújabbtól a legrégebbiig rendezve. Az adott alkalmazott már meglévő megrendelésének szerkesztéséhez kattintson a Rendelések segédűrlap hivatkozással ellátott Rendelésazonosító # mezőjére.

Employee Form's Recordsource

A qryEmployees nevű lekérdezés az űrlap rekordjait adja vissza. A tábla helyett inkább lekérdezés használatát javasoljuk. A lekérdezés csak egy táblából ad vissza rekordokat. Ezenkívül a lekérdezés paraméterezhető a visszaadott rekordok számának korlátozása érdekében. 

  • A lekérdezés Select záradéka a "*" helyettesítő karaktert használja az Alkalmazott tábla összes mezőjének visszaadására.
  • A lekérdezés két számított mezője Vezetéknév, Vezetéknév és Vezetéknév, Utónév mezőt ad vissza.
     

Számított értékek vezérlőkben

MEGJEGYZÉS: A tábla nem tárolja a számított mezőket. Az űrlap rekordforrásában azonban rendelkezésre állnak.

Az alkalmazottak űrlapjain a legtöbb vezérlőelem engedélyezve van, így az egérrel vagy a Tab billentyűvel kijelölheti őket, és nincsenek zárolva , így szerkeszthetők. 

Alkalmazottak programozása

Az Access beépített viselkedése mellett az űrlapokban, az űrlapok vezérlőelemeiben és az önálló modulokban lévő VBA-alfunkciók és -függvények az alkalmazottak számára megkövetelt logikát is elvégzik. A következő szakasz a függvényeket és az azokat megvalósító kódot ismerteti. 

Beépített vezérlőművelet

Az űrlap rekordkijelölőjének alapértelmezett viselkedése:

  • Ha egy űrlap bal oldalán lévő rekordválasztóra kattint egyetlen nézetben, az alkalmazás menti az aktuális rekordot a módosításokkal együtt. Ha a rekordkijelölőre kattint a bal gombbal, az elindítja a megfelelő VBA-alkaraktereket és -függvényeket.
  • Ha a jobb gombbal egy űrlap bal oldalán lévő rekordválasztóra kattint egyetlen nézetben, megjelenik egy menü olyan műveletek végrehajtásához, mint a rekord kivágása, másolása vagy beillesztése. Egy rekord törlése vagy kivágása aktiválja az alábbiakban ismertetett EmployeeCanBeDeleted függvényt.
  • Ahhoz, hogy ez az alapértelmezett viselkedés elérhető legyen, engedélyezni kell a rekordkijelölőket egy űrlapon.
     

Az űrlap rekordjainak hivatkozási integritása

A hivatkozási integritás megakadályozza a kapcsolódó táblákban gyermekrekordokkal rendelkező alkalmazottak törlését. Ezért az Access hibát küld, ha egy felhasználó gyermekrekordokat tartalmazó rekordot próbál törölni. A Northwind alkalmazotti űrlap Az Access a hivatkozási integritással kapcsolatos általános, alapértelmezett hibaüzeneteket egyéni üzenetekre cseréli.

Az űrlap Delete eljárásában szereplő kód válaszol a rekordok kivágására a helyi menüből, vagy a rekordok törlésére irányuló kísérletekre a Delete billentyűvel. 

Egy privát függvény, az EmployeeCanBeDeleted, ellenőrzi az adott alkalmazotthoz kapcsolódó rekordokat a Rendelések, a Beszerzési rendelések, az Alkalmazottak és az Alkalmazottak jogosultságai táblában. 

Ha igen, a függvény nem jeleníti meg az alapértelmezett hibaüzenetet, és tájékoztatja a felhasználót arról, hogy miért nem lehet a rekordot törölni. Ugyanazon az általános párbeszédpanelen tájékoztatja a felhasználót, mint amellyel értesíti a felhasználót arról, hogy miért nem lehet ügyfelet törölni.

Ellenőrzés

Az alkalmazottak érvényesítést és standard hibakezelést alkalmaznak. A vezérlőelemek érvényességének két típusa létezik.

  • Kötelezően kitöltendő mezők
  • Szabványos formátumok

Kötelező mező érvényesítése

 Minden alkalmazotthoz három mezőt kell megadnia:

  • Vezetéknév
  • Utónév
  • Beosztás

Ebben a fejlesztői verzióban az űrlap Frissítés előtti eseménye ellenőrzi a kötelező mezőket. Ha egy felhasználó olyan alkalmazotti rekordot próbál menteni, amelynek értéke nincs legalább egy kötelező mezőnél, de nincs érték, az érvényesítés megszakítja a mentést, és kiemeli az érték nélküli kötelező mezőket. A Northwindben az Alkalmazott űrlapon a kötelező mezők érvényesítését az űrlap Frissítés előtt eseménye kezeli, nem pedig az egyes vezérlők.

Az Alkalmazott űrlap Módosítás előtti eseménye ellenőrzi, hogy a három kötelező mezőben vannak-e értékek. Egy új vagy szerkesztett alkalmazotti rekord mentésekor aktiválódik az űrlap Frissítés előtti eseménye, amely meghívja azokat a nyilvános függvényeket, amelyek ellenőrzik a szükséges értékek meglétét vagy hiányát, és reagálnak azokra.

A modValidation modul a következő függvényeket tartalmazza:

  • ValidateForm
  • IsValidForm
  • HighlightInvalidControls
  • HighlightControl
  • ValidateForm_RemoveHighlights

Új alkalmazottak kezelése

Az Add Employee (Alkalmazott hozzáadása ) gombra kattintva futtathatja a Private Sub btnNewEmployee_Click a következő műveletek elvégzéséhez:

  • mentse az aktuális rekordot, és
  • Az űrlap fókuszának beállítása Új rekordra
    '

Helyettesítő karakterek és elnevezett mezők választó lekérdezésben

A qryEmployeesSELECT záradéka a "*" helyettesítő karaktert használja a tábla ÖSSZES mezőjének kijelöléséhez. A helyettesítő lekérdezések automatikusan tartalmazzák az alapul szolgáló táblából az újonnan hozzáadott mezőket, ami adott mezők listájával nem lehetséges. Másrészről is listázhat adott mezőket, hogy a visszaadott rekordhalmaz csak egy csak megjelenítendő űrlap szükséges mezőire korlátozható, például.

Megfelelő tervezési lehetőségek

A terveknek a követelményeknek megfelelő megközelítésen kell alapulniuk. Bár ha megvalósítható, általában azt a megközelítést részesítik előnyben, amely a legkevésbé valószínű, hogy jövőbeli karbantartást igényel (azaz a helyettesítő karakteres megközelítést). 

Keresőtáblákhoz kötött ComboBoxes – Two Approaches

A kapcsolódó elemek, például az alkalmazott felettese, legördülő listákban vagy kombinált listákban jelennek meg az űrlapokon. Csak a SupervisorID mező idegen kulcsára van szükség az űrlap rekordforrás-lekérdezésében , mert ez a mező hozzá van kötve az idegen kulcs mezőhöz (SupervisorID). A kombinált lista a megfelelő szöveges értéket is megjeleníti.

Ezt egy rejtett azonosítóoszloppal és egy látható Leírás oszloppal megjelenítő kétoszlopos kombinált listával teheti meg. Az Alkalmazott űrlapon a Felügyelő kombinált lista egy egyszerű kétoszlopos lekérdezéshez kötött. Lásd a Supervisor RowSource tulajdonságát.

Bizonyos esetekben azonban a keresési táblának nincs külön elsődleges kulcsa, ezért maga a szöveges érték az elsődleges kulcs.

Ha a lehetséges értékek listája kicsi és nagymértékben stabil, mint például egy alkalmazott beosztása, azt gyakran zárt tartománynak nevezik. A Cím mező értékeinek módosítása vagy hozzáadása ritkán fordul elő. A zárt tartományok keresési táblái az egyoszlopos lekérdezés jelöltjei.

Az Alkalmazott űrlapon a Cím kombinált lista egy beosztásokból álló egyoszlopos lekérdezéshez kötött. A Címek tulajdonságban a RowSource tulajdonságot találja. 

További információ