När du arbetar med relationsdata i Access behöver du ofta visa flera tabeller eller frågor i samma formulär. Du kanske t.ex. vill visa 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.
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. Kombinationen formulär/underformulär kan ibland kallas för ett hierarkiskt formulär, ett översikts-/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 med 1:N-relationer. 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 i många poster i den relaterade tabellen. Du kan t.ex. skapa ett formulär med information om anställda och ett underformulär med de anställdas order. Informationen i tabellen Anställda utgör "1"-sidan i relationen. Informationen i tabellen Order är "N"-sidan i relationen, eftersom varje anställd kan ha fler än en order.
Huvudformuläret innehåller data från "1"-sidan av relationen.
Underformuläret innehåller data från relationens "N"-sida.
Huvudformuläret och underformuläret i den här typen av formulär är kopplade så att endast poster som är relaterade till den aktuella posten i huvudformuläret visas i underformuläret. Om t.ex. Lena Perssons information visas i huvudformuläret så visas endast hennes order i underformuläret. Om formuläret och underformuläret inte var länkade till varandra skulle alla order visas i underformuläret, inte bara Lenas.
I följande tabell definieras termer som hör till underformulär. De flesta detaljer hanteras i Access om du följer procedurerna i den här artikeln, men det kan vara bra att veta vad som egentligen händer om du skulle behöva ändra något vid ett senare tillfälle.
| 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 dess källobjekt är en tabell eller fråga, eller när källobjektet är ett formulär vars Default View egenskap anges till 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 | Den egenskap för underformulärkontrollen som anger vilket eller vilka fält i underformuläret som länkas till huvudformuläret. |
| Egenskapen Länka huvudfält | Den egenskap för underformulärkontrollen som anger vilket eller vilka fält i huvudformuläret som länkas 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. Du kan visa, lägga till och ändra relationerna mellan databasens tabeller genom att klicka 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 ett 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 formulären som du vill använda som huvud- och 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 där order visas för varje anställd i ett underformulär, väljer du Tabell: Anställda ("1"-sidan i förhållandet en till många).
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 (sidan "många" i relationen en till många).
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. I det här exemplet väljer du efter anställda för att skapa formuläret 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. I båda layoutformaten ordnas underformulärets data i rader och kolumner, men i 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 formuläret ska öppnas i formulärvy så att du kan visa och ange information, eller i designvy så att du kan ändra formulärets layout. Klicka sedan på Slutför. Två formulär skapas i Access – 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å nedpilen 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/-rapport 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 följande procedur om du vill använda ett befintligt formulär som huvudformulär och lägga till ett eller flera befintliga formulär till 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 föregående test inte fungerar har det inte gått att fastställa hur underformuläret ska länkas till huvudformuläret i Access, och egenskaperna och Link Child FieldsLink Master Fields för underformulärkontrollen ä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 så att det visas.
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 det fält som du vill använda för att länka formulären inte visas, kanske du måste redigera datakällan för huvudformuläret eller underformuläret för att se till att länkfältet finns med. 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 visas underformuläret enligt underformulärets eller underrapportens Default View egenskaper. Denna egenskap kan anges till följande värden:
- Enstaka formulär
- Kontinuerliga formulär
- Datablad
- Delat formulär
När du skapar ett underformulär för första gången kan den här egenskapen vara inställd på Kontinuerliga formulär eller Enstaka formulär. Om du anger ett underformulärs Default View egenskap visas Datasheetdock underformuläret som ett datablad i huvudformuläret.
Så här anger Default View du egenskapen för 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 vyn som du vill använda inte finns med i listan kontrollerar du att
Allow...Viewegenskapen för den vyn har värdet 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 har den värdet Datablad, men du kan även ange Default View egenskapen för en tabell eller fråga till Enstaka formulär, Delat formulär eller Kontinuerliga formulär, vilket ger större flexibilitet vid visning av relaterade data i formulär.
Obs
En tabells Default View eller en frågas egenskap avgör hur den visas när den öppnas, om den kan öppnas via navigeringsfönstret eller om den visas i en underformulär/-rapportkontroll. 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.