Välj ett ämne nedan om du vill veta mer om anställda i Northwind Developer Edition.
Översikt
Anställda har ett delat formulär som fungerar som ett list- och detaljformulär.
Använda anställda
Använd Anställda för att lägga till nya medarbetare och uppdatera information om befintliga anställda.
Välj fliken Anställda i menyfliksområdet för att visa formuläret Lista över anställda, frmEmployeeList, som är ett delat formulär med följande funktioner:
- Den övre delen av formuläret är en enskild vy för en anställd.
- Den nedre delen av formuläret är en databladsvy över alla anställda.
- Om du markerar en anställd i någon av delarna hamnar fokus även på den anställde i den andra delen av det delade formuläret.
- Du kan lägga till, redigera eller ta bort anställda i endera delen av det delade formuläret.
- Om du använder ett delat formulär med databladsvydelen förutsätts det att formulärets datakälla har flera poster.
Potentiell prestandapåverkan av ett delat formulär
De flesta utvecklare föredrar att inte läsa in en ofiltrerad tabell eller fråga som datakälla för ett formulär. När du filtrerar ett formulär till en enskild post minimeras mängden data som ska överföras från tabellen till formuläret. Med en lokal Access-tabell kanske skillnaden mellan att läsa in en filtrerad datakälla och en liten ofiltrerad datakälla knappt märks. Denna prestanda går dock förlorad när Access-tabellerna ersätts med en fjärrserverbaserad databas som SQL Server.
Tabellen för anställda i Northwind bör inte växa sig så stor och kan därför vara lämplig för en ofiltrerad datakälla. Formulär som är bundna till andra tabeller, till exempel orderinformation – som kan växa till flera tusen poster – är dock inte kandidater för en ofiltrerad datakälla.
REDIGERA ANSTÄLLDA
När användare lägger till eller redigerar poster i ett delat formulär kan de ange värden i formulärvyn eller databladsvyn. Vissa fält är obligatoriska, andra är valfria. Formuläret verifierar förekomsten av värden i obligatoriska fält. Se Verifiering av obligatoriska fält nedan.
Uppslagstabeller, värdelistor och listrutor
I listrutan Titlar begränsas posterna till en lista med förvalda titlar. Rubriker finns i en uppslagstabell med namnet Rubriker.
Vissa förväntade val finns redan i uppslagstabellen, men användarna kan lägga till nya rubriker i uppslagstabellen med standardbeteendet för kombinationsrutan eller med listrutekontrollerna.
-
Egenskapen Begränsa till lista för kombinationsrutan Titel är inställd på Ja och redigeringsformuläret för Rubriker identifieras i egenskapen Redigeringsformulär för listobjekt. Om du väljer listrutan i formuläret visas redigeringsikonen i nederkanten.
-
Egenskapen Begränsa till lista för kombinationsrutan Titel är inställd på Ja och redigeringsformuläret för Rubriker identifieras i egenskapen Redigeringsformulär för listobjekt. Om du väljer listrutan i formuläret visas redigeringsikonen i nederkanten.
Om du klickar på redigeringsikonen öppnas redigeringsformuläret Titlar , frmEmployeeTitles, där du kan ändra eller lägga till i listan över godkända titlar.
NOTERA: I de flesta produktionsmiljöer är redigering eller tillägg av titlar begränsade till användare med utökade privilegier.
Självrefererande uppslagsfält
Funktionen anställd illustrerar begreppet Self-Referential ID-fält. Som stöd för beteckningen av en anställds chef har tabellen fältet SupervisorID med EmployeeIDs för andra anställda. För att utse en chef anges Anställnings-ID för en annan anställd i det här fältet. I Access används referensintegritet för den här relationen.
SupervisorID implementeras i medarbetarformuläret som en rullgardinsmeny eller kombinationsruta. dess radkälla är en filtrerad uppsättning poster från tabellen Anställda. Eftersom frågan är självrefererande måste den utesluta den valda medarbetarens eget EmployeeID. Exempelvis innehåller inte radkällan för SupervisorID för EmployeeKaren Finster Karens eget EmployeeID. Hon kan inte vara sin egen handledare.
Fält och kontroller för bifogade filer
Bilder på anställda lagras i ett fält för bifogade filer i tabellen. Du lägger till nya bilder, eller ändrar befintliga bilder, med standardbeteendet i Access för fält för bifogade filer.
NOTERA: Vi har lagt till ett fält för bifogade filer i tabellen Anställda för att illustrera funktionen i Access. Inbäddade bilder ökar storleken på accdbs och anses därför inte vara bästa praxis. Utvärdera din miljö noggrant innan du implementerar den i ett produktionsprogram. Det rekommenderade alternativet är en nätverksmapp som lagrar alla bilder och en länk i ett textfält i tabellen som innehåller sökvägen till bilden, istället för fältet Bifogad fil.
Underformulär med relaterad information
Underformuläret Order (på höger sida av formuläret Anställd) visar de senaste order (om det finns några) som har hanterats av den anställde. Underformuläret visar order i databladsvyn, sorterade från nyaste till äldsta. Om du vill redigera en befintlig order för den anställda klickar du på det hyperlänkade Order-ID:t # i underformuläret Order.
Datakälla för medarbetarformulär
En fråga med namnet qryEmployees returnerar posterna i formuläret. Vi rekommenderar vanligtvis att du använder en fråga i stället för en tabell. Frågan returnerar poster från endast en tabell. Dessutom kan en fråga parametriseras för att begränsa antalet poster som returneras.
- Select-satsen i den här frågan använder jokertecknet "*" för att returnera alla fält från tabellen Employee.
- Två beräknade fält i frågan returnerar Förnamn Efternamn och Efternamn, Förnamn.
Beräknade värden i kontroller
NOTERA: De beräknade fälten lagras inte i tabellen. De är dock tillgängliga i formulärets datakälla.
De flesta kontroller i formuläret för anställda är aktiverade , så att du kan markera dem med musen eller tabbtangenten, och de är inte låsta , så de kan redigeras.
Programmering Anställda
Förutom inbyggda Access-funktioner utför VBA-prenumeranter och -funktioner i formulär, kontroller i formulär och i fristående moduler den grundläggande logik som krävs för anställda. I följande avsnitt beskrivs funktioner och koden som implementerar dessa funktioner.
Inbyggd kontrollåtgärd
Standardbeteende för formulärets postväljare:
- Om du vänsterklickar på postväljaren till vänster om ett formulär i en enda vy sparas den aktuella posten med eventuella ändringar. Om du sparar genom att vänsterklicka på postväljaren aktiveras lämpliga VBA-prenumerationer och -funktioner.
- Om du högerklickar på postväljaren till vänster om ett formulär visas en meny där du kan utföra åtgärder som att klippa ut, kopiera eller klistra in en post. Om du tar bort eller klipper ut en post utlöses funktionen EmployeeCanBeDeleted som beskrivs nedan.
- Postväljare måste vara aktiverade för att ett formulär ska vara tillgängligt om den här standardfunktionen ska vara tillgänglig.
Referensintegritet för poster i formuläret
Referensintegritet förhindrar borttagning av anställda som har underordnade poster i relaterade tabeller. Därför genererar Access ett fel om en användare försöker ta bort en post med underordnade poster. I Northwind Employee-formuläret Access ersätts allmänna standardfelmeddelanden om referensintegritet med anpassade meddelanden.
Koden i proceduren Ta bort i formuläret svarar på försök att antingen klippa ut en post från snabbmenyn eller att ta bort en post med hjälp av Delete-tangenten .
En privat funktion, EmployeeCanBeDeleted, söker efter relaterade poster för den anställde i tabellerna Orders, Purchase Orders, Employees och Employee Privileges .
Om de hittas utelämnar den här funktionen standardfelmeddelandet och informerar användaren om orsaken till att posten inte kan tas bort med hjälp av samma allmänna dialogruta som kundformuläret använder för att meddela användaren om orsaken till att kunden inte kan tas bort.
Validering
Medarbetarna implementerar validering och standardfelhantering. Det finns två typer av validering för kontroller.
- Obligatoriska fält
- Standardformat
Fältverifiering som krävs
Tre fält är obligatoriska för alla anställda:
- Förnamn
- Efternamn
- Befattning
I den här utvecklarversionen verifieras obligatoriska fält i formulärets före uppdatering-händelse . Om en användare försöker spara en anställds post utan värden för ett eller flera obligatoriska fält som inte har ett värde, avbryts sparandet och alla obligatoriska fält som inte har något värde markeras. I formuläret Anställd i Northwind hanteras den obligatoriska fältverifieringen av händelsen Före uppdatering i formuläret, inte av de enskilda kontrollerna.
Händelsen Före uppdatering i formuläret Anställd verifierar förekomsten av värden för de tre obligatoriska fälten. Om du sparar en ny eller redigerad medarbetarpost utlöses formulärets Före uppdatering-händelse som anropar offentliga funktioner som söker efter och svarar på närvaron eller frånvaron av de obligatoriska värdena.
Modulen modValidation innehåller följande funktioner:
- ValidateForm (på engelska)
- IsValidForm
- HighlightInvalidControls
- MarkeraKontroll
- ValidateForm_RemoveHighlights
Hantera nya medarbetare
Om du klickar på knappen Lägg till anställd körs btnNewEmployee_Click Private Sub för att:
- Spara den aktuella posten och
- Ställ in formulärets fokus på en ny post
'
Jokertecken jämfört med namngivna fält i en urvalsfråga
SELECT-satsen i qryEmployees använder jokertecknet "*" för att välja ALLA fält i tabellen. Jokerteckenfrågans design inkluderar automatiskt alla nyligen tillagda fält från en underliggande tabell, vilket inte är möjligt med en lista med specifika fält. Å andra sidan kan man lista specifika fält för att begränsa den returnerade postmängden till endast de fält som behövs i ett formulär med endast visning, till exempel.
Lämpliga designval
Din design bör baseras på lämpligt tillvägagångssätt för dina krav. Även om företräde, när det är möjligt, normalt skulle föredra den metod som minst sannolikt kommer att kräva framtida underhåll (dvs. jokerteckenmetoden).
Kombinationsrutor bundna till uppslagstabeller – två metoder
Relaterade objekt, till exempel en anställds chef, visas i listrutor eller kombinationsrutor i formulär. Endast sekundärnyckeln för SupervisorID behövs i formulärets datakällfråga eftersom det fältet är bundet till sekundärnyckelfältet (SupervisorID). Kombinationsrutan visar även motsvarande textvärde.
En kombinationsruta med två kolumner med en dold ID-kolumn och en synlig beskrivningskolumn gör detta. I formuläret Anställd är kombinationsrutan Arbetsledare bunden till en enkel tvåkolumnsfråga. Se egenskapen RowSource för Supervisor.
I vissa fall har dock en uppslagstabell ingen separat primärnyckel, och därför är själva textvärdet primärnyckeln.
När en lista med möjliga värden är liten och mycket stabil, till exempel en anställds titel, kallas den ofta för en stängd domän. Det är inte vanligt att ändra eller lägga till värden för rubrik. Stängda uppslagstabeller för domäner är kandidater för enkolumnsfrågemetoden.
I formuläret Anställd är kombinationsrutan Titel bunden till en enkolumnsfråga med Titlar. Se egenskapen RowSource för rubriker.
Läs mer
- Läs mer om delade formulär
- Lär dig mer om referensintegritet
- Northwind 2.0 Developer Edition: Alla ämnen
- Northwind 2.0 Developer Edition: Saker du bör veta