Access-tipsFinne ut om tall er delelig på 10 | Velge parameter ved hjelp av skjema | Skrive ut faktura fra skjema | Opptelling | I stedet for Teller/Autonummer | Summere data fra et underskjema | Nummerere linjer | Beregne plassering i en resultatliste | Oppdatere en lagerbeholdning | Beregne forfallsdato utfra frist i antall dager Finne ut om tall er delelig på 10Bruk følgende uttrykk som betingelse:
Den venstre delen av uttrykket gir som resultat et heltall hvis Et slikt uttrykk kan da brukes i f.eks. en Et eksempel: Et felt kan hete
Her får kunden 15 bonuspoeng for hvert 5te kjøp. Velge parameter ved hjelp av skjemaParameterspørringer er ofte lite brukervennlige: Brukeren må vanligvis oppgi en kode (f.eks. For å slippe begge disse ulempene kan man lage et skjema for valg av parameter. Dette skjemaet skal bare inneholde en kombinasjonsboks, for den parameteren man skal velge, og et par knapper, en for å utføre parameterspørringen (eller den rapporten som skal kjøres på grunnlag av slik spørring), og evt en for å gå ut av skjemaet uten noen handling. Den første knappen kan hete La oss anta at dette hjelpeskjemaet heter
der man ellers ville ha skrevet f.eks. I hendelsesprosedyren (eller makroen) som ligger i knappen som utfører spørringen (her knappen Hvis du vil vise informasjonen i en rapport, ikke i en spørring, er fremgangsmåten slik: I egenskapsarket for rapporten oppgir du under
og
Hendelsesprosedyren som ligger i Skrive ut faktura fra skjemaDet er mange situasjoner hvor det er nyttig å kunne hente verdien fra et felt i et skjema. Det kan alltid gjøres på tilsvarende måte som i forrige tips. Et eksempel er ved utskrift av faktura. Vi har gjerne et hoved/del-skjema for en faktura (med fakturalinjene i delskjemaet). Da er det fint å kunne legge inn en kommandoknapp i hovedskjemaet som skriver ut fakturaen. En slik kommandoknapp kan ganske enkelt åpne en rapport (i forhåndsvisning) som f.eks. heter Faktura_RP. I egenskapsarket for rapporten oppgir du under
og
I enkelte tilfeller er det behov for å få frem fakturaen utfra et fakturanr eller salgsnr som står i et delskjema. Da må knappen som åpner faktura-rapporten stå i delskjemaet. Delskjemaet må altså lages slik at det blir en tabell-visning, ikke en kolonnevisning. Tabell-visning er nødvendig for å få lagt inn en kommando-knapp i delskjemaet. Koden som står under
Husk fortsatt å bruke "Filtrering på"! OpptellingDet er ofte behov for å telle opp forekomster. Det kan f.eks. være antall ganger en kunde har handlet. Dette går lettest hvis koblingsfeltene har ulikt navn. (Det er tilstrekkelig at feltnavnet i skjemaet er ulikt, tabell-feltet under kan hete det samme). La oss anta at man i et Faktura-skjema vil ha et felt som viser antall ganger en kunde har handlet hos oss. Det kan da ordnes med en områdemengdefunksjon:
Det er viktig å legge merke til at parametrene i områdefunksjonene bruker anførselstegn; alle parametrene skal gis som tegnstrenger. Her er det tre parametre, i "ulogisk" rekkefølge.
Betingelsen i tredje parameter er følsom for feil. Det går best hvis man i en slik betingelse har ulike feltnavn på hver side av likhet/ulikhet. Venstre side refererer til det området (tabell) som står i andre parameter. Høyre side kan referere seg f.eks. til aktuelt skjermbilde (skjema). For å aktivere en slik oppslagsfunksjon, må skjermbildet oppdateres. Dette kan gjøres ved at brukeren trykker F9, eller ved at det legges inn en makro i
hvor I stedet for Teller/AutonummerDet er noen ulemper ved å bruke datatypen Begge disse behovene kan dekkes ved å velge datatypen Oppgaven blir nå å konstruere et uttrykk som finner hvor stor den største eksisterende verdien er for et felt i en tabell/spørring. Deretter skal dette tilpasses bruk i skjemaet. Et slikt uttrykk kan konstrueres ut i fra områdemengdefunksjonen
Dette gir den største verdien av feltet
Dette virker greit, bortsett i fra det tilfellet hvor man ønsker å angi en bestemt verdi som startverdi og sikre at denne kommer frem hvis det ikke er registrert noen poster. Da kan man teste på antall registrerte poster først ved å telle opp forekomster som vist under avsnittet Opptelling. Hvis det ikke er noen poster i tabellen vil
Dette plasseres inne i en betingelse som returnerer en bestemt verdi, f.eks.
Summere data fra et underskjemaUnderskjema har et summeringsfelt som er skjult i kolonnevisning, f.eks.
Dette feltet kan refereres fra hovedskjemaet slik:
Dette blir da alltid oppdatert! (Legg merke til syntaksen, rekkefølgen av skjemanavnet og Nummerering/opptelling av poster i en rapportOfte har man behov for å nummerere eller fortløpende telle poster i en rapport. Dette kan lett gjøres ved å sette inn et nytt, beregnet felt i detalj-linjen i rapporten. Feltet kan f.eks. hete "Teller". I egenskapsarket skal dette feltet ha følgende innstillinger:
og
Dermed får man en enkel opptelling av postene i rapporten. Hvis rapporten er sortert, kan dette bl.a. benyttes til å lage en ordnet liste, f.eks. en resultatliste. ResultatlisteSom resultatliste er det foregående ikke alltid helt tilfredsstillende, dette skyldes jo at man ønsker at to (eller flere) personer med samme resultat skal ha samme plassering, mens den neste skal ha en plassering som om disse også var nummerert. Slik:
Logikken her er at enhver deltakers plassering er lik antallet av de med bedre resultat + 1. Dette kan enkelt implementeres i en rapport, med f.eks. følgende formel i
Her er det forutsatt at det feltet som inneholder resultatet heter (Hvis det beste resultatet har den laveste verdien, skal rapporten sorteres stigende på Denne metoden for å beregne plassering kan også godt benyttes i et skjema, på helt tilsvarende vis. Da vil man i det beregnede feltet få opp den foreløpige plasseringen for hver deltaker etterhvert som resultatene registreres. Oppdatere lagerbeholdningDet er ofte behov for å oppdatere i en annen tabell fra et skjema. Et vanlig eksempel på dette er når man har et kombinert ordre/ordrelinjeskjema. Man vil da gjerne at lagerbeholdningen skal endres når ordren effektueres. En enkel måte å implementere dette på er ved hjelp av en oppdateringsspørring som kalles fra en knapp i ordreskjemaet. Forutsetningen her er at det i ordrelinjetabellen finnes et En aktuell oppdateringsspørring kan se slik ut:
Oppdateringsspørringen virker slik: Vilkårene settes for tabellen Med disse to vilkårene utføres da oppdateringene. For det første skal antall varer på lager reduseres. Det gjøres med uttrykket: Beregne forfallsdato utfra frist i antall dagerOfte har man bruk for å angi en forfallsfrist med en dato. Dette kan gjelde for betaling av en faktura, for innlevering av en bok el.l. Vanligvis er det i slike tilfeller en fast frist som kan beregnes utfra dagens dato. Eksempelvis betalingsfrist for en faktura på 30 dager. Fristen kan da angis i et felt ved å sette Hvis vi har tenkt å operere med ulike frister, blir det hele litt mer komplisert. Da har vi et eget felt, Eventuelt kan feltet Toppen av siden | Finne ut om tall er delelig på 10 | Velge parameter ved hjelp av skjema | Skrive ut faktura fra skjema | Opptelling | I stedet for Teller/Autonummer | Summere data fra et underskjema | Nummerere linjer | Beregne plassering i en resultatliste | Oppdatere en lagerbeholdning | Beregne forfallsdato utfra frist i antall dager kontakt: |