Inhoudsopgave
Types query’s en actiequery’s
Selectiequery’s zoals we die tot nu gebruikten, vertellen slechts maar een deel van het verhaal. Je ziet dat goed wanneer je een query opent in de ontwerpweergave.
In het lint zie je op de tab ontwerp in de groep querytype dat bij al onze query’s tot nu het type selecteren wordt aangeduid.
Maar er zijn dus nog types.
Ik ga ze in deze inleidende uitleg niet allemaal volledig bespreken, maar ik pik er zo hier en daar iets uit.
Tabelmaakquery: maak een tabel van het resultaat van je selectie
Dit type van query maakt een selectie zoals een selectiequery, maar met het resultaat wordt een tabel gemaakt.
Hoe doe je het? In queryontwerp maak je gewoon je query zoals je dat vroeger al deed, maar klik daarna op de knop tabel maken in de groep querytype.
Geef de tabel een naam in het venstertje dat opent en klik op ok.
Wanneer je de query nu uitvoert, krijg je een melding te zien die je waarschuwt dat je een tabel zal bijmaken.
Als je die melding wegklikt, wordt een extra tabel gemaakt die alleen die records en velden bevat zoals weergegeven in de query.
Toevoegquery: records van de ene tabel kopiëren naar de andere
Met een toevoegquery voeg je de records van 1 tabel toe aan een andere. Voorwaarde is dat de veldtypes in de 2 tabellen gelijk zijn. Dus als je in de ene tabel een tekstveld hebt, dan moet dat veld in de andere tabel ook een tekstveld zijn.
Je gebruikt deze actiequery dus om gegevens te kopiëren, bijvoorbeeld wanneer je een nieuwe gegevensbron wil integreren in je database, of wanneer je gewoon een kopie wil maken van je data.
Hoe doe je het? Open opnieuw queryontwerp bij maken.
Selecteer de brontabel voor je gegevens, dus de tabel waaruit je de data wil kopiëren.
Dubbelklik op de velden die je wil overnemen. Ze worden nu zoals altijd toegevoegd aan het raster.
Klik nu op de knop toevoegen in de groep querytype op de tab queryontwerp. Zo maak je duidelijk dat je een toevoegquery nodig hebt. Selecteer met het keuzelijstje de tabel waaraan je de gegevens wil toevoegen. Dat is dus je doeltabel.
Merk op dat nu in het raster een extra rij zichtbaar is, met naam toevoegen aan.
Wat je nu doet is voor elk van de velden die je wil kopiëren op deze nieuwe rij de overeenkomstige velden selecteren in de doeltabel.
Als je nu op uitvoeren klikt, worden de records toegevoegd. Je kan natuurlijk met ctrl s de query ook eerst weer bewaren.
Bijwerkquery: gegevens aanpassen
Met een bijwerkquery kan je snel bepaalde gegevens aanpassen.
Stel dat ik bijvoorbeeld de verkoopprijs van mijn producten met 10% wil verhogen.
Ik zou mijn verkoopprijzen manueel kunnen verhogen, maar met een bijwerkquery gaat dat sneller en gemakkelijker. En dat vind ik fijn. ????️
Als ik ze met 10% wil verhogen, betekent dat dat mijn nieuwe verkoopprijs = oude verkoopprijs + 10% van de oude verkoopprijs. Dat is min of meer de formule die ik zodadelijk nodig heb.
Ik sluit eerst alle tabellen, en maak dan een nieuwe query via queryontwerp, en selecteer de tabel met de data voor de producten. Het enige veld dat ik nu nodig heb is de verkoopprijs.
Wat je dan moet doen is in de groep querytype op bijwerken klikken om van mijn query een bijwerkquery te maken.
Het raster ziet er nu anders uit dan daarstraks. Je ziet immers de rij wijzigen in staan.
Bij wijzigen in zou ik nu een vast nieuw getal kunnen plaatsen, maar dan wordt de verkoopprijs overal gelijk. Ik heb daarom die formule van hierboven nodig en typ [Verkoopprijs]+0,1*[Verkoopprijs]. Dat zorgt ervoor dat er 10 procent bijkomt.
Als je het lastig vindt typen zou je ook met de rechtermuisknop kunnen kiezen voor opbouwen en daar gebruik maken van alle opties.
Als je nu de query opslaat en dan uitvoert (bij queryontwerp en dan uitvoeren), dan krijg je een waarschuwing te zien die meldt dat je op het punt staat om de data te wijzigen. Dat vinden we OK want dat was net de bedoeling.
Je merkt dat het getal nu overal is gewijzigd.
Tip | Goed opletten met bijwerkquery’s
Deze query’s wijzigen je data. Kijk alles dus goed na vooraleer je ermee aan de slag gaat. Je kan natuurlijk ook altijd een nieuwe query maken die de situatie terugdraait.
Merk op dat ook bij bijwerkquery’s met criteria zou kunnen werken. In dat geval wordt een waarde alleen bijgewerkt als aan het criterium wordt voldaan. Je zou bijv. enkel de prijzen kunnen verhogen voor die producten met meer dan (>) 3 verkopen.
Verwijderquery: verwijder bepaalde records
Met een verwijderquery kan je natuurlijk records verwijderen.
Stel dat ik alle producten van een bepaalde leverancier wil verwijderen, dan kan ik dat doen met een verwijderquery.
Voor dit voorbeeld voerde ik een nieuwe leverancier toe met de vreemde naam Verwijdermij BV. Ik voegde ook 2 nieuwe producten toe, zogezegd van deze leverancier. (Verwijder 1 & Verwijder 2).
Ik klik op maken > queryontwerp.
Vervolgens dubbelklik ik op de tabel van de leveranciers. Het is immers daarin dat ik records wil wissen.
Ik klik nu op de knop verwijderen in de groep querytype.
Ik voeg het veld leverancierID toe aan het raster door erop te dubbelklikken. Ik wil immers beslissen of ik een leverancier wil verwijderen
In het raster typ ik bij criteria 4. Het ID van mijn te verwijderen leverancier is 4.
Ik sla nu de query op, sluit vervolgens alle tabellen en query’s en dubbelklik dan op de naam van de query. Je moet nu even bevestigen vooraleer er effectief iets wordt verwijderd.
Krijg je een foutmelding over een sleutelconflict? Dan moet je de relatie van de betrokken tabel eens bekijken op de tab hulpmiddelen voor databases.
Ik moest bijvoorbeeld het vinkje bij gerelateerde records trapsgewijs verwijderen nog zetten om de verwijderquery te kunnen uitvoeren.
Samenvoegquery: items samenvoegen
Hoe combineer je 2 selecties in 1 tabel? Daar heb je een samenvoegquery voor nodig.
Omdat we in dat geval echter de SQL-weergave nodig hebben, laat ik dat in deze basiscursus niet aan bod komen.
Het is zo al ingewikkeld genoeg, hé.
Kruistabelquery
Met een kruistabelquery maak je een … kruistabel. Dat is een samenvatting van gegevens, met eventueel een paar berekeningen (de som, het gemiddelde etc.)
Je kan dat opnieuw via queryontwerp maken, of de wizard. Ik zal hier de wizard nog eens een keertje gebruiken.
Ik klik op maken en kies voor wizard query. Natuurlijk kies je dan voor de wizard kruistabelquery.
Nu moet je kiezen op basis van welke tabel of query je de kruistabel wil maken. Belangrijk is dat alle data die je gebruikt in die ene tabel of query moeten zitten. Het kan dus zo zijn dat je eerst nog een samenvat-query moet maken die je als bron voor je kruistabel gebruikt.
In de wizard moet je daarna bepalen welke data er getoond worden. Eerst selecteer je de data voor de rijen, dan voor de kolommen, en dan voor de waarden en de bewerking (een som, gemiddelde, etc.)
Hieronder zie je een voorbeeld van een query die ik zo gemaakt heb.
Je moet met al die query’s maar zoveel mogelijk experimenteren.
In het volgende deel schakelen we over naar formulieren.