När du arbetar med relationsdata i Access behöver du ofta visa flera tabeller eller frågor i samma formulär. Du kanske till exempel vill se kunddata från en tabell och kundorderinformation från en annan tabell samtidigt. Med underformulär blir det enklare och du kan snabbt skapa dem på flera olika sätt i Access.
Vad vill du göra?
- Mer information om underformulär
- Skapa eller lägga till ett underformulär
- Skapa ett formulär som innehåller ett underformulär med hjälp av Formulärguiden
- Lägga till ett eller flera underformulär i ett befintligt formulär med hjälp av underformulärguiden
- Skapa ett underformulär genom att dra ett formulär till ett annat
- Öppna ett underformulär i ett nytt fönster i designvyn
- Ändra ett underformulärs standardvy
- Lägga till relaterade data i ett formulär utan att skapa ett underformulär
Mer information om underformulär
Ett underformulär är ett formulär som infogas i ett annat formulär. Det primära formuläret kallas för huvudformulär och det bifogade formuläret kallas för underformulär. En kombination av formulär/underformulär kallas ibland för ett hierarkiskt formulär, ett huvud-/detaljformulär eller ett överordnat/underordnat formulär.
Underformulär fungerar särskilt bra när du vill visa data från tabeller eller frågor som har en 1:N-relation. I den här typen av relation matchar primärnyckelvärdet för varje post i den primära tabellen värdet i matchande fält eller fält för många poster i den relaterade tabellen. Du kan till exempel skapa ett formulär som visar data för anställda och ett underformulär som visar varje anställds order. Informationen i tabellen Anställda utgör "1"-sidan i relationen. Data i tabellen Order är N-sidan av relationen, eftersom varje anställd kan ha mer än en order.
Huvudformuläret visar data från 1-sidan av relationen.
Underformuläret visar data från N-sidan av relationen.
Huvudformuläret och underformuläret i den här typen av formulär länkas så att underformuläret bara visar poster som är relaterade till den aktuella posten i huvudformuläret. När till exempel nancy Freehafers information visas i huvudformuläret visas endast hennes order i underformuläret. Om formuläret och underformuläret inte var länkade visar underformuläret alla order, inte bara Nancys.
I följande tabell definieras termer som är relaterade till underformulär. De flesta detaljer hanteras i Access om du använder procedurerna i den här artikeln, men det hjälper att veta vad som händer i bakgrunden om du behöver göra ändringar senare.
| Villkor | Definition |
|---|---|
| Underformulärkontroll | Kontrollen som bäddar in ett formulär i ett formulär. Du kan se ett formulär som en "vy" av ett annat objekt i databasen, oavsett om det är ett annat formulär, en tabell eller en fråga. Med underformulärkontrollen kan du länka data som visas i kontrollen till data i huvudformuläret. |
| Egenskapen Källobjekt | Den egenskap för underformulärkontrollen som bestämmer vilket objekt som visas i kontrollen. |
| Datablad | En enkel vy av data i rader och kolumner, ungefär som i ett kalkylblad. Underformulärkontrollen visar ett datablad när källobjektet är en tabell eller fråga, eller när dess källobjekt är ett formulär vars Default View egenskap är inställd på Datasheet. I dessa fall kallas underformuläret ibland för datablad eller underdatablad i stället för underformulär. |
| Egenskapen Länka underordnade fält | Egenskapen för underformulärkontrollen som anger vilket eller vilka fält i underformuläret som länkar den till huvudformuläret. |
| Egenskapen Länka huvudfält | Egenskapen för underformulärkontrollen som anger vilket eller vilka fält i huvudformuläret som länkar den till underformuläret. |
Obs
- Det bästa resultatet får du om du upprättar tabellrelationerna innan du följer procedurerna i den här artikeln. Om du gör det kan länkarna skapas automatiskt i Access mellan underformulären och huvudformulären. Om du vill visa, lägga till eller ändra relationer mellan tabellerna i databasen klickar du på Relationer i gruppen Relationer på fliken Databasverktyg.
- När en underformulärkontroll har ett formulär som källobjekt innehåller det fälten som du placerar i formuläret. Du kan visa det som ett enda formulär, kontinuerligt formulär eller datablad. En fördel med att basera ett underformulär på ett formulärobjekt är att du kan lägga till beräknade fält i underformuläret, till exempel
[Quantity] * [Unit price]. - Du kan infoga ett datablad eller en pivotvy i ett formulär genom att skapa en underformulärkontroll vars källobjekt är en tabell eller fråga. Mer information finns i avsnittet Lägga till relaterade data i ett formulär utan att skapa ett underformulär.
Skapa eller lägga till ett underformulär
Följande tabell hjälper dig att välja procedur för den aktuella situationen.
| Scenario | Rekommenderad procedur |
|---|---|
| Du vill skapa både ett huvudformulär och ett underformulär i Access och koppla underformuläret till huvudformuläret. | Skapa ett formulär som innehåller ett underformulär med hjälp av Formulärguiden |
| Du vill använda ett befintligt formulär som huvudformulär, men vill samtidigt skapa ett nytt underformulär och lägga till det i huvudformuläret. | Lägga till ett eller flera underformulär i ett befintligt formulär med hjälp av Underformulärguiden |
| Du vill använda ett befintligt formulär som huvudformulär och vill lägga till ett eller flera befintliga formulär som underformulär till huvudformuläret. | Skapa ett underformulär genom att dra ett formulär till ett annat |
Skapa ett formulär som innehåller ett underformulär med hjälp av Formulärguiden
I den här proceduren skapas en ny kombination av formulär och underformulär med hjälp av Formulärguiden. Det är också det snabbaste sättet att komma igång om du inte redan har skapat de formulär som du vill använda som huvudformulär eller underformulär.
På fliken Skapa i gruppen Formulär klickar du på Formulärguiden.
Välj en tabell eller fråga i den nedrullningsbara listan Tabeller/frågor på guidens första sida. Om du i det här exemplet vill skapa ett anställda-formulär som visar order för varje anställd i ett underformulär väljer du Tabell: Anställda (1-sidan av 1:N-relationen).
Obs
Det spelar ingen roll vilken tabell eller fråga du väljer först.
Dubbelklicka på fälten som du vill använda från denna tabell eller fråga.
Välj en annan tabell eller fråga i den nedrullningsbara listrutan Tabeller/frågor på samma sida i guiden. I det här exemplet väljer du tabellen Order (N-sidan av 1:N-relationen).
Dubbelklicka på fälten som du vill använda från denna tabell eller fråga.
Förutsatt att du angav relationerna korrekt innan du startade guiden visas frågan Hur ska informationen visas? – alltså efter vilken tabell eller fråga – när du klickar på Nästa. Välj tabellen på "1"-sidan i relationen en till många. Om du vill skapa formuläret Anställda i det här exemplet väljer du efter Anställda. I guiden visas en liten bild på ett formulär. Sidan liknar följande illustration:
Rutan i den nedre delen av formulärbilden representerar underformuläret.
Obs
Om frågan Hur ska informationen visas? inte visas i guiden innebär det att ingen en till många-relation har kunnat identifieras mellan de tabeller eller frågor du valde i Access. Guiden fortsätter men det läggs inte till något underformulär i formuläret. Kanske vill du klicka på Avbryt och undersöka tabellrelationerna innan du fortsätter.
Markera Formulär med underformulär längst ned på guidesidan och klicka på Nästa.
Klicka på önskat layoutalternativ på sidan Vilken layout vill du använda för underformuläret? och klicka sedan på Nästa. Båda layoutformaten ordnar underformulärdata i rader och kolumner, men med en tabellayout får du fler alternativ. Du kan lägga till färg, grafik och andra formatelement i ett tabellunderformulär, medan ett datablad är mer kompakt på samma sätt som en tabells databladsvy.
Välj en formatmall för formuläret på nästa sida i guiden och klicka sedan på Nästa. Om du valde Tabell på föregående sida används den formatmall som du väljer även i underformuläret.
Skriv rubrikerna för formuläret på den sista sidan i guiden. Formulär namnges utifrån vilka rubriker du skriver, och underformulär får etiketter utifrån rubriken du anger för underformuläret.
Ange om du vill öppna formuläret i formulärvyn så att du kan visa eller ange information, eller i designvyn, så att du kan ändra dess design och sedan klicka på Slutför. Access skapar två formulär – ett för huvudformuläret som innehåller underformulärkontrollen och ett för själva underformuläret.
Lägga till ett eller flera underformulär i ett befintligt formulär med hjälp av Underformulärguiden
Du kan använda den följande procedur lägga till ett eller flera underformulär i ett befintligt formulär. Du kan välja att skapa ett nytt formulär eller använda ett befintligt formulär för varje underformulär.
- Högerklicka på det befintliga formuläret i navigeringsfönstret och klicka sedan på Designvy.
- Klicka på nedåtpilen i gruppen Kontroller på fliken Formulärdesign för att visa galleriet Kontroller och kontrollera att Använd kontrollguider är markerat.
- Klicka på knappen Underformulär/underrapport i gruppen Kontroller på fliken Formulärdesign.
- Klicka på formuläret där du vill placera underformuläret.
- Följ anvisningarna i guiden. När du klickar på Slutför läggs en underformulärkontroll till i formuläret i Access. Om du väljer ett nytt i stället för befintligt formulär för underformuläret skapas det nya formulärobjektet och läggs till i navigeringsfönstret i Access.
Skapa ett underformulär genom att dra ett formulär till ett annat
Använd den här proceduren om du vill använda ett befintligt formulär som huvudformulär och lägga till ett eller flera befintliga formulär i det som underformulär.
- Högerklicka på formuläret i navigeringsfönstret som du vill använda som huvudformulär. Klicka sedan på Layoutvy.
- Dra formuläret som du vill använda som underformulär från navigeringsfönstret till huvudformuläret. En underformulärkontroll läggs till i huvudformuläret och kontrollen kopplas till formuläret som du drog från navigeringsfönstret. Det utförs även ett försök i Access att länka underformuläret till huvudformuläret, baserat på relationerna som du har definierat i databasen.
- Upprepa det här steget om du vill lägga till fler underformulär i huvudformuläret.
- Kontrollera att länkningen har genomförts genom att klicka på Visa, Formulärvy i gruppen Vyer på fliken Start, och gå sedan genom flera poster med hjälp av huvudformulärets postväljare. Om underformuläret filtreras på rätt sätt för de enskilda anställda har proceduren genomförts på rätt sätt.
Om det föregående testet inte fungerar kunde Access inte avgöra hur underformuläret ska länkas till huvudformuläret, och Link Child Fields underformulärkontrollens och Link Master Fields egenskaper är tomma. Du måste ange dessa egenskaper manuellt på följande sätt:
Högerklicka på huvudformuläret i navigeringsfönstret och klicka på Designvy.
Markera underformulärskontrollen genom att klicka en gång på den.
Om åtgärdsfönstret Egenskapssida inte visas trycker du på F4 för att visa det.
Klicka på fliken Data i egenskapsfönstret.
Klicka på knappen Skapa bredvid egenskapsrutan
Link Child Fields.
Dialogrutan Fältlänkar underformulär visas.Välj fälten som du vill länka formulären till i listrutorna Huvudfält och Underfält, och klicka sedan på OK. Om du inte vet vilka fält som ska användas klickar du på Föreslå så att det sker ett försök i Access att avgöra vilka länkfälten är.
Tips
Om du inte ser det fält som du vill använda för att länka formulären kan du behöva redigera datakällan för huvudformuläret eller det underordnade formuläret för att se till att länkningsfältet ingår. Om formuläret t.ex. baseras på en fråga kontrollerar du att länkfältet finns i frågeresultatet.
Spara huvudformuläret, växla till formulärvyn och kontrollera att formuläret fungerar som det ska.
Öppna ett underformulär i ett nytt fönster i designvyn
Om du vill göra designändringar i ett underformulär medan du arbetar med dess huvudformulär i designvyn kan du öppna underformuläret i ett eget fönster:
- Klicka på underformulär för att markera det.
- Klicka på Underformulär i nytt fönster i gruppen Verktyg på fliken Formulärdesign.
Ändra ett underformulärs standardvy
När du lägger till ett underformulär i ett formulär visar underformulärets/underrapportkontrollen underformuläret enligt underformulärets Default View egenskap. Denna egenskap kan anges till följande värden:
- Enstaka formulär
- Kontinuerliga formulär
- Datablad
- Delat formulär
När du först skapar ett underformulär kan den här egenskapen vara inställd på Kontinuerliga formulär eller Enskilt formulär. Om du däremot anger Default View egenskapen för ett underformulär till Datasheetvisas underformuläret som ett datablad i huvudformuläret.
Så här anger du egenskapen för Default View ett underformulär:
Stäng alla öppna objekt.
Högerklicka på underformuläret i navigeringsfönstret och klicka på Designvy.
Om egenskapssidan inte redan visas trycker du på F4 för att visa den.
Kontrollera att Formulär är markerat i den nedrullningsbara listan längst upp på egenskapssidan.
Ange önskat värde för egenskapen Standardvy på fliken Format på egenskapssidan.
Obs
Om den vy du vill använda inte finns med i listan kontrollerar du att egenskapen för den
Allow...Viewvyn är inställd på Ja. Om du t.ex. vill ange Datablad som formulärets standardvy ser du till att egenskapen Tillåt datablad har värdet Ja.Spara och stäng underformuläret och öppna sedan huvudformuläret och kontrollera resultatet.
Lägga till relaterade data i ett formulär utan att skapa ett underformulär
Du behöver inte alltid skapa ett separat formulärobjekt för att visa relaterade data. Om du t.ex. arbetar med ett formulär i layout- eller designvy och drar en tabell eller fråga från navigeringsfönstret till formuläret, skapas en underformulär/-rapportkontroll där data i objektet visas. Objektets Default View egenskap avgör hur data visas. Vanligtvis är detta inställt på databladsvyn, men du kan också ange Default View egenskapen för en tabell eller fråga till Enkelt formulär, Delat formulär eller Kontinuerliga formulär, vilket ger dig större flexibilitet när du visar relaterade data i formulär.
Obs
Default View Om du ändrar egenskapen för en tabell eller fråga avgör du hur den visas när den öppnas, oavsett om du öppnar den från navigeringsfönstret eller visar den i en underformulär-/underrapportkontroll. Eftersom det kan vara förvirrande att öppna en tabell med ändrade visningsinställningar i navigeringsfönstret, rekommenderar vi att du använder en fråga i stället för en tabell för den här proceduren.