Välj frågor i Access. Skapa frågor i Microsoft Access

Ämne: Skapa relationer mellan bord. Skapa en urvalsfråga, med en parameter och en sista fråga.

Öppna databasen som skapades i föregående labb Dekanus för TF .

Skapa relationer mellan bord

Välj ett objekt i databasfönstret Tabeller . Klicka på knappen " Schema data " på verktygsfältet eller kör kommandot " Service »  « Schema data " med hjälp av kommandomenyn. Ett fönster visas på skärmen: Schema data "och fönster" Tillägg tabeller "(Fig. 18).

Ris. 18. Dialogrutan Dataschema och dialogrutan Lägg till tabell

I fönstret " Tillägg tabeller "på fliken" Tabeller » listar alla databastabeller. För att skapa relationer mellan tabeller måste du flytta dem från " Tillägg tabeller "ut genom fönstret" Schema data " För att överföra en tabell, välj den med ett musklick och klicka på knappen " Lägg till " När du har överfört de nödvändiga tabellerna, stäng fönstret " Tillägg tabeller ».

Flytta alla bord till fönstret " Schema data " Ändra storlek på tabellfönstren så att all text är synlig (Fig. 19).

För att skapa en relation mellan tabeller Studenter Och Betyg i enlighet med Dataschema du måste flytta muspekaren till fältet Studentkod i bordet Studenter och med musknappen nedtryckt, dra detta fält till fältet Studentkod i bordet Betyg , och släpp sedan musknappen. Fönstret " Förändra anslutningar "(Fig. 20).

Kontrollera fastigheten " säkerhet integritet data " genom att klicka på den. Markera kryssrutorna i egenskaperna " Kaskad uppdatering relaterad fält "och" Kaskad radering relaterad fält " Detta gör att du bara kan redigera poster i tabellen Studenter , och i tabellen Betyg dessa åtgärder på länkade poster kommer att utföras automatiskt.

För att skapa en anslutning, klicka på knappen " Skapa ».

Ris. 19. Utseende på databasdataschemat " Dekanus för TF» innan du gör anslutningar

Ris. 20. Dialogruta för att ange anslutningsparametrar mellan tabellfält

Likaså enligt Dataschema anslutningar skapas mellan de återstående tabellerna (fig. 21).

Ris. 21. Databasdataschema " Dekanus för TF»

Svara när du stänger datadiagramfönstret Ja på frågan om att spara layouten.

Skapade relationer mellan databastabeller kan ändras.

För att ändra anslutningar måste du ringa fönstret " Schema data " Efter detta placerar du muspekaren på anslutningen som behöver ändras och högerklickar. En snabbmeny visas (bild 22):

Ris. 22. Kommunikationskontextmeny

Om du väljer kommandot " Radera ", efter bekräftelse kommer anslutningen att raderas. Om du behöver ändra anslutningen, välj kommandot " Förändra förbindelse " Efter det, i fönstret som visas " Förändra anslutningar " (överst i den) välj fälten i tabellerna som du vill länka och klicka på knappen " Skapa ».

Förfrågningar

Frågor används för att välja eller söka data från en eller flera tabeller. Du kan använda frågor för att visa, analysera och ändra data från flera tabeller. De används också som datakälla för formulär och rapporter. Frågor låter dig beräkna totaler och visa dem i ett kompakt format, samt utföra beräkningar på grupper av poster.

Vi kommer att utveckla förfrågningar i läget Designer .

I Tillgång Du kan skapa följande typer av frågor:

    Provförfrågan . Detta är den vanligaste typen av begäran. Den här typen av fråga returnerar data från en eller flera tabeller och visar den som en tabell. Utvalda frågor kan också användas för att gruppera poster och beräkna summor, medelvärden, räkna poster och hitta andra typer av totaler. För att ändra urvalsvillkoren måste du ändra begäran.

    Begäran med parametrar . Detta är en prompt som, när den körs, visar en egen dialogruta som uppmanar dig att ange data eller värde som du vill infoga i ett fält. Dessa data eller värde kan ändras varje gång begäran görs.

    Korsförfrågan . Används för beräkningar och presentation av data i en struktur som underlättar deras analys. En tvärsnittsfråga beräknar summan, medelvärdet, antalet värden eller utför andra statistiska beräkningar och grupperar sedan resultaten i en tabell över två uppsättningar data, en definierar kolumnrubrikerna och den andra definierar radrubrikerna.

    Ändringsbegäran . Detta är en fråga som ändrar eller flyttar flera poster i en operation. Det finns fyra typer av ändringsförfrågningar:

1. För att radera en post. Denna fråga tar bort en grupp poster från en eller flera tabeller.

2. För att uppdatera posten. Gör allmänna ändringar i en grupp poster i en eller flera tabeller. Låter dig ändra data i tabeller.

3. För att lägga till poster. Lägger till en grupp poster från en eller flera tabeller i slutet av en eller flera tabeller.

4. För att skapa en tabell. Skapar en ny tabell från hela eller delar av data från en eller flera tabeller.

    Förfrågningar SQL . Skapad med hjälp av språkinstruktioner SQL , Använd i DB .

Jag skulle vilja kunna skapa en parametriserad fråga i MS Access 2003 och skicka värdena för vissa formulärelement till den frågan, och sedan få motsvarande resultatuppsättning och göra några grundläggande beräkningar med dem. Jag kommer kort att gå igenom hur du får frågeparametrar att fylla med formulärelement. Om jag behöver använda VBA går det bra.

5 svar

Referenser till kontroller på ett formulär kan användas direkt i Access-frågor, även om det är viktigt att definiera dem som parametrar (annars resulterar i senaste versionerna Tillgången kan vara oförutsägbar om den en gång var pålitlig).

Till exempel, om du vill filtrera en fråga med efternamnskontrollen i MyForm, skulle du använda detta som kriterium:

Efternamn = Forms!MyForm!LastName

PARAMETRAR [!MyForm!] Text (255); SELECT tblCustomers.* FROM tblCustomers WHERE tblCustomers.LastName=!;

Jag skulle dock vilja fråga varför du behöver en lagrad fråga för detta ändamål. Vad gör du med resultatet? Visa dem i ett formulär eller rapport? Om så är fallet kan du göra detta i formulär-/rapportpostkällan och lämna den sparade frågan oförändrad med parametrarna så att den kan användas i andra sammanhang utan att visa en uppmaning att fylla i parametrarna.

Å andra sidan, om du gör något i kod, skriv bara SQL i farten och använd det bokstavliga värdet av formulärkontrollen för att skapa WHERE-satsen.

Här är ett kodavsnitt. Uppdaterar tabellen med parametern txtHospital:

Set db = CurrentDb Set qdf = db.QueryDefs("AddHospital") qdf.Parameters!txtHospital = Trim(Me.HospName) qdf.ReturnsRecords = Falskt qdf.Execute dbFailOnError intResult = qAffected.Record

Här är ett exempel på SQL:

PARAMETRAR txtHospital Text(255); INSERT INTO tblHospitals() VALUES()

Det finns tre traditionella sätt att komma runt detta problem:

  1. Ställ in parametern till ett värde så att användaren uppmanas att ange ett värde när frågan körs.
  2. Länkfält i formuläret (eventuellt dolt)
  3. Skapa frågan i farten och använd inte parametrar.

Jag tycker att det är helt fel för mig att du skulle behöva ange något som [?ange ISO-kod för landet] eller länkar till fält i ditt formulär som: !! .

Det betyder att vi inte kan återanvända samma fråga på mer än ett ställe eftersom olika fält tillhandahåller data, eller så måste vi förlita oss på att användaren inte förväxlar datainmatningen när frågan körs. Vad jag minns kan det vara svårt att använda samma värde mer än en gång med en användarinmatad parameter.

Vanligtvis skulle jag välja det senare alternativet, skapa frågan i farten och uppdatera frågeobjektet efter behov. Detta är dock en vanlig SQL-injektionsattack (antingen av misstag eller med avsikt att känna till mina användare) och det är bara obscent.

"Ed. Start - för komplettering av exemplet dim qryStartDate as date dim qryEndDate as date qryStartDate = #2001-01-01# qryEndDate = #2010-01-01# "Ed. Avsluta "CITERA "hingst": Att skicka parametrar till en fråga i VBA " är egentligen ganska enkelt: "Först ställer vi in ​​några variabler: Dim qdf As Querydef Dim rst As Recordset "då öppnar vi frågan: Set qdf = CurrentDB.QueryDefs(qryname) "Nu kommer vi att tilldela värden till frågan med hjälp av parameteralternativet: qdf.Parameters(0) = qryStartDate qdf.Parameters(1) = qryEndDate "Nu konverterar vi querydef till en recordset och kör det Set rst = qdf.OpenRecordset "Kör lite kod på postsetet "Stäng alla objekt rst.Close qdf.Close Set rst = Nothing Set qdf = Ingenting

(Jag har inte testat det här själv, bara något jag har samlat på mig på mina resor eftersom jag då och då har velat göra det här men slutade med att använda en av mina tidigare nämnda klumpar)

edit Jag hade äntligen en anledning att använda detta. Här är den faktiska koden.

"... Dim qdf As DAO.QueryDef Dim prmOne As DAO.Parameter Dim prmTwo As DAO.Parameter Dim rst as recordset "... "öppna upp frågan: Ange qdf = db.QueryDefs("my_two_param_query") "params kallas param_one och "param_two" länkar dina DAP.Parameters till frågan Set prmOne = qdf.Parameters!param_one Set prmTwo = qdf.Parameters!param_two "ställ in värdena för parametrarna prmOne = 1 prmTwo = 2 Set df.Op = 2 Set df.Op (dbOpenDynaset , _ dbSeeChanges) "... behandla postuppsättningen som vanligt "se till att du städar efter dig själv Set rst = Ingenting Set prmOne = Ingenting Set prmTwo = Ingenting Set qdf = Ingenting

DoCmd.SetParameter "frontMthOffset", -3 DoCmd.SetParameter "endMthOffset", -2 DoCmd.OpenQuery "QryShowDifference_ValuesChangedBetweenSELECTEDMonths"

Var SQL-fråga Access inkluderar faktiskt SQL. Till exempel

"välj bla från mytable where dateoffset="

Allt bara fungerar!

Låt oss ta ett exempel. den parameteriserade begäran ser ut så här:

Välj Tbl_Country.* Från Tbl_Country WHERE id_Country = _ [?ange ISO-koden för landet]

och du skulle vilja kunna få detta värde ([? ange... land] ett) från ett formulär där du har kontroller och lite data i den. Tja... det kanske är möjligt, men det kräver viss normalisering av koden.

En lösning skulle vara att tilldela viss logik till formulärkontrollerna, såsom fid_Country för kontrollen, som skulle hålla värdet id_Country. Din fråga kan sedan representeras som en sträng:

Qr = "Välj Tbl_Country.* Från Tbl_Country WHERE id_Country = "

När du har angett alla begärda uppgifter i formuläret klickar du på knappen "begäran". Logiken kommer att gå igenom alla kontroller och kontrollera om de finns i begäran, och så småningom ersätter parametern med kontrollens värde:

Dim ctl som kontroll För varje ctl i Me.controls Om instr(qr,"[" & ctl.name & "]") > 0 Då är qr = replace(qr,"[" & ctl.name & "]",ctl .value) End if Next i

I det här fallet kommer du att ha en helt uppdaterad fråga, där parametrarna ersätts med riktiga data. Beroende på typen fid_country (sträng, GUID, datum, etc.) kan du behöva lägga till ytterligare dubbla citattecken eller inte för att få den slutliga begäran som:

Qr = "Välj Tbl_Country.* Från Tbl_Country WHERE id_Country = ""GB"""

Det här är en helt Access-kompatibel fråga som du kan använda för att öppna en postuppsättning:

Ange rsQuery = currentDb.openRecordset(qr)

Jag tror att du är klar här.

Det här ämnet är avgörande när ditt mål är att utveckla Access-applikationer. Du måste erbjuda användarna standardsätt begära uppgifter från dem GUI inte bara för att köra frågor, utan också för att filtrera kontinuerliga formulär (precis som Excel gör med alternativet AutoFilter) och hantera rapportalternativ. Lycka till!

Ämne: Skapa relationer mellan bord. Skapa en urvalsfråga, med en parameter och en sista fråga.

Öppna databasen som skapades i föregående labb Dekanus för TF .

Skapa relationer mellan bord

Välj ett objekt i databasfönstret Tabeller . Klicka på knappen " Schema data " på verktygsfältet eller kör kommandot " Service »  « Schema data " med hjälp av kommandomenyn. Ett fönster visas på skärmen: Schema data "och fönster" Tillägg tabeller "(Fig. 18).

Ris. 18. Dialogrutan Dataschema och dialogrutan Lägg till tabell

I fönstret " Tillägg tabeller "på fliken" Tabeller » listar alla databastabeller. För att skapa relationer mellan tabeller måste du flytta dem från " Tillägg tabeller "ut genom fönstret" Schema data " För att överföra en tabell, välj den med ett musklick och klicka på knappen " Lägg till " När du har överfört de nödvändiga tabellerna, stäng fönstret " Tillägg tabeller ».

Flytta alla bord till fönstret " Schema data " Ändra storlek på tabellfönstren så att all text är synlig (Fig. 19).

För att skapa en relation mellan tabeller Studenter Och Betyg i enlighet med Dataschema du måste flytta muspekaren till fältet Studentkod i bordet Studenter och med musknappen nedtryckt, dra detta fält till fältet Studentkod i bordet Betyg , och släpp sedan musknappen. Fönstret " Förändra anslutningar "(Fig. 20).

Kontrollera fastigheten " säkerhet integritet data " genom att klicka på den. Markera kryssrutorna i egenskaperna " Kaskad uppdatering relaterad fält "och" Kaskad radering relaterad fält " Detta gör att du bara kan redigera poster i tabellen Studenter , och i tabellen Betyg dessa åtgärder på länkade poster kommer att utföras automatiskt.

För att skapa en anslutning, klicka på knappen " Skapa ».

Ris. 19. Utseende på databasdataschemat " Dekanus för TF» innan du gör anslutningar

Ris. 20. Dialogruta för att ange anslutningsparametrar mellan tabellfält

Likaså enligt Dataschema anslutningar skapas mellan de återstående tabellerna (fig. 21).

Ris. 21. Databasdataschema " Dekanus för TF»

Svara när du stänger datadiagramfönstret Ja på frågan om att spara layouten.

Skapade relationer mellan databastabeller kan ändras.

För att ändra anslutningar måste du ringa fönstret " Schema data " Efter detta placerar du muspekaren på anslutningen som behöver ändras och högerklickar. En snabbmeny visas (bild 22):

Ris. 22. Kommunikationskontextmeny

Om du väljer kommandot " Radera ", efter bekräftelse kommer anslutningen att raderas. Om du behöver ändra anslutningen, välj kommandot " Förändra förbindelse " Efter det, i fönstret som visas " Förändra anslutningar " (överst i den) välj fälten i tabellerna som du vill länka och klicka på knappen " Skapa ».

Förfrågningar

Frågor används för att välja eller söka data från en eller flera tabeller. Du kan använda frågor för att visa, analysera och ändra data från flera tabeller. De används också som datakälla för formulär och rapporter. Frågor låter dig beräkna totaler och visa dem i ett kompakt format, samt utföra beräkningar på grupper av poster.

Vi kommer att utveckla förfrågningar i läget Designer .

I Tillgång Du kan skapa följande typer av frågor:

    Provförfrågan . Detta är den vanligaste typen av begäran. Den här typen av fråga returnerar data från en eller flera tabeller och visar den som en tabell. Utvalda frågor kan också användas för att gruppera poster och beräkna summor, medelvärden, räkna poster och hitta andra typer av totaler. För att ändra urvalsvillkoren måste du ändra begäran.

    Begäran med parametrar . Detta är en prompt som, när den körs, visar en egen dialogruta som uppmanar dig att ange data eller värde som du vill infoga i ett fält. Dessa data eller värde kan ändras varje gång begäran görs.

    Korsförfrågan . Används för beräkningar och presentation av data i en struktur som underlättar deras analys. En tvärsnittsfråga beräknar summan, medelvärdet, antalet värden eller utför andra statistiska beräkningar och grupperar sedan resultaten i en tabell över två uppsättningar data, en definierar kolumnrubrikerna och den andra definierar radrubrikerna.

    Ändringsbegäran . Detta är en fråga som ändrar eller flyttar flera poster i en operation. Det finns fyra typer av ändringsförfrågningar:

1. För att radera en post. Denna fråga tar bort en grupp poster från en eller flera tabeller.

2. För att uppdatera posten. Gör allmänna ändringar i en grupp poster i en eller flera tabeller. Låter dig ändra data i tabeller.

3. För att lägga till poster. Lägger till en grupp poster från en eller flera tabeller i slutet av en eller flera tabeller.

4. För att skapa en tabell. Skapar en ny tabell från hela eller delar av data från en eller flera tabeller.

    Förfrågningar SQL . Skapad med hjälp av språkinstruktioner SQL , Använd i DB .

Idag ska vi börja titta på en applikation som − Microsoft Access 2003 , som kan skapa sina egna databaser ( mdb-format), samt skapa klientapplikationer för befintliga MS-baserade databaser SQL Server. Ämnet för dagens artikel kommer att vara att skapa nya frågor från Access, vilket innebär både enkla frågor och olika funktioner, vyer och procedurer. Här hänvisar en fråga till databasobjekt.

Om Microsoft Access

Microsoft Accessprogramvara Microsoft-företag, som är ett relationellt DBMS. Den har enorma möjligheter när man organiserar en databas och skapar en separat applikation som kan interagera med många andra DBMS. Den vanligaste klient-serverlösningen, där klienten är en applikation skriven i Access ( VBA-språk, formulär och mycket mer), och servern är en DBMS Microsoft SQL Server. Access stöder dock även interaktion med andra DBMS, till exempel MySql eller PostgreSQL. Vi kan prata om Access länge, men syftet med dagens artikel är just att skapa frågor ( föremål) från Access.

Låt oss gå vidare till övningen och börja med en enkel mdb-databas, d.v.s. hur man skapar just dessa frågor.

Skapa frågor i Microsoft Access 2003 - MDB-databas

Öppna först databasen och klicka sedan på objekt "Förfrågningar" och tryck på knappen "Skapa".

Notera! Det betyder att du redan har en databas.

Och ett nytt fönster för att välja typ av begäran öppnas framför dig.

Låt oss titta på var och en av dessa begärandetyper mer i detalj.

Frågetyper i Access 2003 - MDB

Konstruktör- det här skapar en begäran baserad på konstruktören, så att säga grafisk redaktör, men i den kan du byta till sql-läge och skriva frågetexten som vanligt. Omedelbart efter lanseringen öppnas ett fönster där du kan välja de nödvändiga tabellerna eller befintliga frågorna, eftersom befintliga frågor också kan användas för att välja nödvändiga data, det är som om "prestanda".

Om du inte gillar att göra detta i en grafisk redigerare kan du byta till SQL-läge genom att klicka på menyalternativet "Se", då "SQL-läge".

Enkel begäran– det här kan man säga är samma byggsats, bara en lite annan typ och färre möjligheter.

Korsförfrågan– detta är den så kallade transponeringen av tabellen, med andra ord, utmatningen av data som finns i horisontella kolumner, dvs. Varje värde från en kolumn kommer att visas horisontellt i en separat kolumn. Allt detta görs med hjälp av en guide, så det borde inte vara några problem.

Dubblettposter– som namnet antyder är detta en sökning efter dubbletter av poster.

Records utan underordnade– detta är en sökning efter de poster som saknas i en viss tabell.

Med mdb-databaser räcker det, eftersom de sällan används i företag, använder de vanligtvis följande schema - de skriver en separat klient och all data lagras på servern med hjälp av en DBMS i vårt fall - det här är MS SQL Server, och klienten är Access (.adp).

Skapa frågor i Microsoft Access 2003 - MS SQL Server-databas

Låt oss titta på att skapa nya frågor från en Access-klient baserad på MS SQL Server ( Det antas att du redan har en adp-klient och en databas baserad på MS SQL Server).

Notera! Den här artikeln innebär inte att du ska lära dig SQL, så när du läser den här artikeln borde du redan förstå grunderna i SQL och konceptet med grundläggande objekt i databasen såsom: vy, funktion, procedur. Om du är helt ny på detta, så rekommenderas det naturligtvis först att behärska SQL, eftersom många av termerna nedan inte kommer att vara tydliga för dig. Rekommenderade artiklar:

  • Vad är VIEWS-vyer i databaser? Och varför behövs de?

Början är densamma, öppnar projektet, klicka sedan på objekt "Förfrågningar" och tryck på knappen "Skapa".

Och nu mer i detalj.

Typer av frågor i Access 2003 - MS SQL Server-databas

Inbyggd funktionskonstruktör- detta, kan man säga, är en vanlig vy, bara parametrar kan skickas in i den, sedan körs vissa frågor på servern och en tabell returneras. Det är en sorts funktion som returnerar data i form av en tabell. Det behandlas enligt följande ( om vi pratar om sql):

SELECT * FROM my_test_tabl_func(par1, par2 ……)

Efter att ha klickat på "OK" För att skapa den här funktionen kommer du att se det redan bekanta fönstret för att lägga till befintliga tabeller och vyer. Men jag brukar stänga det här fönstret och skriva förfrågan manuellt i ett specialfält. För att detta fält ska visas klickar du på följande på panelen:

Sedan, om du vill lägga till inkommande parametrar, kan du helt enkelt sätta @-tecknet och namnet på variabeln i villkoret, till exempel så här:

VÄLJ * FRÅN tabell WHERE kod = @par

Efter på panelen i funktionsegenskaper

på fliken "funktionsparametrar" de parametrar som du angett kommer att visas och de måste överföras i den ordning som de anges här.

Visa konstruktör- det här är skapandet av en vanlig idé bland vanliga människor "Vyuha".

Konstruktör för lagrad procedur– skapa en procedur med en konstruktor, principen är densamma som i ovanstående funktioner. Låt mig påminna er om att proceduren är en uppsättning sql uttalanden, både för att ta prov och ändra data.

Gå in i en lagrad procedur– detta är skapandet av en procedur med hjälp av en textredigerare, dvs. skapande av en procedur rent manuellt. I slutändan samma sak som att använda konstruktorn. När du skapar objekt i textredigerare Skapandemallen skapas redan automatiskt av åtkomst.

Ange en skalär funktion skapar en funktion som returnerar ett värde. Skapat med en textredigerare.

Gå in i en tabellfunktion skapar en funktion som returnerar en uppsättning poster. Ser ut som en inbyggd funktion.

För att särskilja dem i åtkomstklienten har de olika ikoner, samma som du ser när du skapar det här eller det objektet.

När alla dessa objekt har skapats sparas de på servern och du kan använda dem inte bara från ditt adp-projekt utan även från andra klienter.

Naturligtvis kan du skapa alla dessa objekt på servern med till exempel Enterprise Manager ( utfasad, nu SQL Server Management Studio ), men idag överväger vi möjligheten att skapa dessa objekt från åtkomstklienten.

För grunderna tror jag att detta är tillräckligt, om vi pratar om detta mer i detalj kommer det inte att passa i en artikel, men det verkar för mig att detta är tillräckligt för att skapa vissa förfrågningar. Men om du har frågor om att skapa en viss funktion eller procedur, ställ dem i kommentarerna, jag ska försöka hjälpa.

Syfte med arbetet: Studera tekniker för att konstruera och använda frågor för att välja data.

Innan avrättningen laboratoriearbete Du måste studera följande avsnitt:

Typer av förfrågningar;

Skapa frågor i designläge;

Regler för registrering av dataurvalsvillkor;

Använda inbyggda funktioner;

Skapa beräknade fält;

Använda datainmatnings-/utdataformulär;

Skapande av kors- och aktiva frågor.

Uppgift 1: Skapa en enkel fråga.

1. Öppna databasen Inleda.

2. Klicka i databasfönstret på Queries-objektet.

3. Klicka på knappen Skapa i fönstret Queries.

4. I fönstret Ny fråga väljer du Design och klickar på Ok.

5. Lägg till alla fyra tabellerna i fönstret Lägg till tabell och stäng fönstret.

6. Justera storleken och placeringen av tabellfönstren i datadiagrammet.

7. Dra motsvarande fältnamn (fakultetsnamn, grupp N, specialitetsnamn, betygsbok N, fullständigt namn) från tabellfönstren till förfrågningsformuläret som finns under dataschemat, och observera deras angivna ordning. Använd en formulärkolumn för varje fält som måste ingå i urvalet.

8. Visa valet genom att utföra kommandot VIEW/Table Mode eller genom att klicka på knappen Visa i verktygsfältet.

9. Återgå till frågedesignerläget om urvalet innehåller fel och korrigera frågan.

10. Stäng begäran. En dialogruta visas som ber dig bekräfta om du vill spara den. Namnge frågan Välj1.

Uppgift 2. Skapa en enkel fråga för att hämta information från databasen, inklusive samma fält som den föregående frågan, men innehållande endast information om handelsstudenter. En sådan begäran kallas villkorlig begäran.

1. I databasfönstret kopierar du Select1-frågan genom att dra frågeikonen samtidigt som du trycker på Ctrl-tangenten.

2. Byt namn på frågan till Välj efter reklam. För att göra detta, högerklicka på förfrågans namn och välj innehållsmeny Byt namn på objektet.

3. Öppna frågan i designvy. Lägg till fältet Kommersiell i din förfrågan.

4. Ange värdet Ja i fältet Urvalsvillkor för fältet Kommersiell.

5. Inaktivera visning när du uppmanas att ange värdet i fältet Kommersiell. För att göra detta, stäng av kryssrutan för visning för det här fältet.

6. Bläddra i urvalet genom att klicka på knappen Kör i verktygsfältet.

7. Stäng begäran och spara layouten för begäran.

Uppgift 3. Skapa en fråga för att hitta efternamn och postnummer för den yngsta studenten i en av grupperna.


1. I databasfönstret klickar du på knappen Skapa och väljer alternativet Design.

2. I fönstret Lägg till tabell väljer du tabellen Student. Infoga alla fält i denna tabell i förfrågningsformuläret. För att göra detta, välj först alla fält i datadiagrammet med Shift-tangenten och dra dem sedan till den första raden i formuläret för begäranbeskrivning.

3. Ange ett formeluttryck i fältet Urvalsvillkor för fältet Födelsedatum i enlighet med uppgiften. Använd verktyget Access Expression Builder. För att göra detta, placera markören i motsvarande cell i beskrivningstabellen för begäran och klicka på knappen Bygg i verktygsfältet.

4. I fönstret Expression Builder anger du namnet på funktionen DMax. För att göra detta, expandera listan Funktioner i byggarens vänstra ruta och välj Inbyggda funktioner. Välj sedan funktionskategorin Efter delmängd i det mittersta underfönstret och välj funktionen DMax() i det högra underfönstret. Motsvarande funktion kommer att visas i huvudbyggarens fönster med dess argument indikerade.

5. Ta bort det första argumentet för funktionen och infoga i dess plats namnet på fältet Födelsedatum, antingen genom direkt tangentbordsinmatning eller genom att klicka på listan Tabeller i den vänstra rutan och sedan välja Elevtabellen och fältet i det. I det senare fallet måste du ta bort den oanvända delen av Expression-linjen. Ange sedan värdena för de återstående funktionsargumenten, så att funktionen får följande slutliga form: DMax("[Födelsedatum]";"Student";"=851")

6. För att skriva funktionen i cellen för begärandebeskrivningstabellen, klicka på OK-knappen. Stäng begäran genom att spara layouten och döpa om den till Youngest Student Sample. Se resultatet av en fråga genom att dubbelklicka på dess namn i databasfönstret.

7. Demonstrera resultatet av ditt arbete för läraren.

Uppgift 4. Skapa en fråga för att räkna antalet kommersiella studenter i varje grupp.

1. Skapa ny förfrågan med hjälp av tabeller Fakultet, Grupp, Student.

3. Ställ in valvillkoret för den tredje kolumnen till Ja.

4. Ställ in den första och andra kolumnen i formuläret för att sortera i stigande ordning.

5. Inaktivera visning av 3:e kolumndata.

6. Ange fältet Kommersiell i den fjärde kolumnen och ersätt kolumnnamnet med Nummer på reklam. För att göra detta måste cellen med fältnamnet innehålla: Antal kommersiella: Kommersiella (nya och gamla kolumnnamn separeras med kolon)

7. Genom att klicka på knappen Group Operations i verktygsfältet, lägg till raden Group Operations i formuläret och välj Count-operationen från listan för den fjärde kolumnen.

8. Se det totala urvalet genom att klicka på knappen Kör i verktygsfältet eller genom att utföra kommandot QUERY/Run.

9. Återgå till frågedesignläge genom att klicka på knappen Dashboard View.

10. Spara begäran och ge den namnet Counting commercial by groups.

Uppgift 5. Skapa en fråga som låter dig se ett urval som återspeglar antalet kommersiella studenter för varje fakultet och varje grupp. Kolumnrubrikerna ska motsvara namnen på fakulteterna, radrubrikerna ska motsvara gruppnummer. Urvalet bör även innehålla en sammanfattande kolumn med det totala antalet handelsstudenter vid varje institution. Denna typ av sampling kan implementeras med en korsfråga. För att tillämpa en sådan fråga är det önskvärt att i databasen ha information om 5-6 grupper av studenter som studerar vid 3 fakulteter.

1. Använd designern och skapa en ny fråga med hjälp av fakultet-, grupp-, studenttabellerna.

2. Ange fältet Fakultetens namn i den första kolumnen i förfrågningsformuläret, fältet Grupp N i den andra kolumnen och fältet Kommersiellt i den tredje kolumnen.

3. Kör kommandot QUERY/Cross eller klicka på knappen Frågetyp i verktygsfältet och välj Cross från listan.

4. Välj värdena i raden i korstabellformuläret genom att expandera listan i cellerna: för den första kolumnen Radrubriker, för den andra kolumnen – Kolumnrubriker, för den tredje kolumnen – Värde.

5. Välj funktionen Räkna för gruppoperationen i den tredje kolumnen.

6. Visa korsprovet genom att klicka på knappen Kör.

7. För att skapa en sammanfattningskolumn, gå tillbaka till designläge och infoga ett annat kommersiellt fält i förfrågningsformuläret. Ange namnet på kolumnen Totalt före namnet på det här fältet: Välj Räkna på raden Gruppoperation och välj Radrubriker i korstabellraden.

8. I tabellläge minskar du bredden på kolumnerna i urvalstabellen. För att göra detta, välj kolumnerna med data i grupper och kör kommandot FORMAT/Kolumnbredd/Anpassa till databredd.

9. Visa det redigerade urvalet och spara förfrågan, ge den namnet Antal kommersiella efter grupper och fakulteter.

10. En ungefärlig vy av ett tvärsnittsprov visas i fig. 1.

Figur 1. - Korsurval av antalet handelsstudenter efter grupper och fakulteter.

Uppgift 6. Skriv en fråga för att lista listor över grupper, med gruppnumret som begärs som en del av frågan. En sådan begäran kallas begäran med parameter. Parametern är gruppnumret. Parametervärdet anges i dialogrutan. För att skapa en begäran måste du ange texten för urvalsvillkoret inom hakparenteser i cellen med villkoret.

1. Använd designern och skapa en ny fråga med en studenttabell.

2. Fyll i alla fält i tabellen på första raden i förfrågningsformuläret.

3. Skriv in texten i cellen på raden Urvalsvillkor för N-gruppfältet: [Ange gruppnumret]

4. Kör begäran och ange numret på en av grupperna i dialogrutan som visas. Bläddra i urvalet. Spara begäran och namnge den Fråga med parameter.

5. Demonstrera resultatet av ditt arbete för läraren.




Topp