Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Yksi toiminto, esimerkiksi siirtyminen objektin yhdestä ohjainsta toiseen ohjausobjektiin voi käynnistää useita eri tapahtumia, jotka tapahtuvat tietyssä järjestyksessä. On tärkeää tietää, milloin tapahtumat tapahtuvat ja missä järjestyksessä ne tapahtuvat, koska tämä voi vaikuttaa siihen, miten ja milloin makrot tai tapahtumatoimintosarjat suoritetaan. Jos esimerkiksi on kaksi tapahtumatoimintosarjaa, jotka halutaan suorittaa tietyssä järjestyksessä, tulee varmistaa, että niihin liittyvät tapahtumat tapahtuvat samassa järjestyksessä.

Artikkelin sisältö

Lomakkeissa olevien ohjausobjektien tapahtumien järjestys

Asioita tapahtuu lomakkeiden ohjausobjekteissa, kun aktiivisuus siirretään ohjausobjektiin ja kun muutat ja päivität ohjausobjektin tietoja.

Huomautus: Microsoft Office Access näyttää tapahtuman nimet hieman eri tavalla Visual Basic -editorissa kuin ominaisuusikkunassa ja Makron muodostimessa. Esimerkiksi tapahtuma nimeltä On Got Focus lomakkeen ominaisuusikkunassa ja Makron muodostimessa on Visual Basic -editorissa nimeltään GotFocus. Tämän artikkelin esimerkeissä käytetään Visual Basic for Applications (VBA) -muotoa tapahtuman nimien osalta.

Kohdistuksen siirtäminen ohjausobjektiin

Kun siirrät kohdistuksen lomakkeen ohjausobjektiin (esimerkiksi avaamalla lomakkeen, joka sisältää yhden tai usean aktiivisen ohjausobjektin tai siirtämällä kohdistuksen toiseen saman lomakkeen ohjausobjektiin), Enter- ja GotFocus-tapahtumat tapahtuvat seuraavassa järjestyksessä:

Enter nuoli GotFocus

Kun avaat lomakkeen, Enter- ja GotFocus-tapahtumat suoritetaan lomakkeen avaukseen liittyvien tapahtumien jälkeen (kuten Open, Activate ja Current) seuraavasti:

Avaa (lomake) nuoliActivate (lomake) nuoliCurrent (lomake) nuoliEnter (ohjausobjekti) nuoliGotFocus (ohjausobjekti)

Kun kohdistus poistuu lomakkeen ohjausobjektista (kun esimerkiksi suljet lomakkeen, joka sisältää yhden tai usean aktiivisen ohjausobjektin tai siirryt toiseen saman lomakkeen ohjausobjektiin), Exit- ja LostFocus-tapahtumat tapahtuvat seuraavassa järjestyksessä:

Exit nuoli LostFocus

Kun suljet lomakkeen, Exit- ja LostFocus-tapahtumat suoritetaan ennen lomakkeen sulkemiseen liittyviä tapahtumia (kuten Unload, Deactivate ja Close) seuraavasti:

Exit (control) nuoliLostFocus (ohjausobjekti) nuoliPura (lomake) nuoliDeactivate (lomake) nuoliSulje (lomake)

Tietojen muuttaminen ja päivittäminen ohjausobjektissa

Kun siirryt tai muutat tietoja lomakkeen ohjausobjektissa ja siirrät sitten kohdistuksen toiseen ohjausobjektiin, tapahtumat BeforeUpdate ja AfterUpdate tapahtuvat:

EnnenPäivun nuoli Afte rUpdate

Exit- ja LostFocus-tapahtumat ohjausobjektille, jonka arvo muuttuu BeforeUpdate- ja AfterUpdate -tapahtumien jälkeen:

BeforeUpdate nuoli AfterUpdate nuoli Exit nuoli LostFocus

Kun muutat tekstiä tekstiruudussa tai yhdistelmäruudun tekstiruutuosassa, Change-tapahtuma tapahtuu. Tämä tapahtuma toteutuu aina, kun ohjausobjektin sisältö muuttuu,mutta ennen kuin siirrät kohdistuksen toiseen ohjausobjektiin tai tietueeseen (ja näin ollen ennen kuin tapahtumat BeforeUpdate ja AfterUpdate tapahtuvat). Seuraava tapahtumasarja tapahtuu jokaisen näppäimen kohdalla, jota painat tekstiruudussa tai yhdistelmäruudun tekstiruutuosassa:

KeyDown nuoli KeyPress nuoli Dirty nuoli Change nuoli KeyUp

Luettelosta puuttuessa-tapahtuma tapahtuu, kun syötät arvon yhdistelmäruutuun, jota ei ole yhdistelmäruudun luettelossa ja yrität sitten siirtää kohdistuksen toiseen ohjausobjektiin tai tietueeseen. NotInList -tapahtuma tapahtuu näppäimistötapahtumien jälkeen ja Change-tapahtumien jälkeen yhdistelmäruudulle, mutta ennen muiden ohjausobjektien tai lomakkeen tapahtumia. Jos yhdistelmäruudun LimitToList-ominaisuus asetetaan tilaan Ye, lomakkeen Error-tapahtuma tapahtuu heti NotInList -tapahtuman jälkeen:

KeyDown nuoli KeyPress nuoli Dirty nuoli Change nuoli KeyUp nuoli NotInList 0 Error

Sivun alkuun

Lomakkeissa olevien tietueiden tapahtumien järjestys

Lomakkeissa olevien tietueiden tapahtumat toteutuvat, kun aktiivisuus siirretään toiseen tietueeseen, tietueen tiedot päivitetään, olemassa olevan tietue tai tietueet poistetaan tai uusi tietue luodaan.

Kohdistuksen siirtäminen tietueisiin ja tietueiden tietojen päivittäminen

Kun siirrät kohdistuksen olemassa olevaan tietueeseen lomakkeessa, lisäät tai muutat tietueen tietoja ja siirrät sitten kohdistuksen toiseen tietueeseen, seuraava tapahtumasarja tapahtuu lomakkeessa:

Nykyinen (lomake) nuoliBeforeUpdate (lomake) nuoliAfterUpdate (lomake) nuoliCurrent (lomake)

Kun poistut tietueesta, jonka tietoja on muutettu, mutta ennen kuin siirryt seuraavaan tietueeseen, Exit- ja LostFocus- tapahtumat tapahtuvat ohjausobjektille, jossa kohdistus on. Nämä tapahtumat tapahtuvat BeforeUpdate- ja AfterUpdate-tapahtumia lomakkeessa seuraavasti:

BeforeUpdate (lomake) nuoliAfterUpdate (lomake) nuoliExit (ohjausobjekti) nuoliLostFocus (ohjausobjekti) nuoliCurrent (lomake)

Kun siirrät kohdistuksen lomakkeen eri ohjausobjekteihin, kunkin ohjausobjektin kohdalla tapahtuu tapahtumia. Esimerkiksi seuraava tapahtumasarja tapahtuu, kun teet jonkin seuraavista:

  • Avaat lomakkeen ja muutat ohjausobjektin tietoja:

    Nykyinen (lomake) nuoliEnter (ohjausobjekti) nuoliGotFocus (ohjausobjekti) nuoliBeforeUpdate (ohjausobjekti) nuoliAfterUpdate (ohjausobjekti)

  • Siirrät kohdistuksen toiseen ohjausobjektiin:

    Exit (control1) nuoliLostFocus (control1) nuoliEnter (control2) nuoliGotFocus (control2)

  • Siirrät kohdistuksen toiseen tietueeseen:

    BeforeUpdate (lomake) nuoliAfterUpdate (lomake) nuoliExit (control2) nuoliLostFocus (control2) nuoliCurrent (lomake)

Tietueiden poistaminen

Kun poistat tietueen, seuraavat asiat tapahtuvat lomakkeessa ja Microsoft Office Accessissa näkyy valintaikkuna, jossa pyydetään vahvistamaan poisto:

Poista nuoli Ennen KuinDelConfirm nuoli DelConfirm

Jos peruutat Delete-tapahtuman, BeforeDelConfirm- ja AfterDelConfirm-tapahtumat eivät tapahdu eikä valintaikkunaa näytetä.

Uuden tietueen luominen

Kun siirrät kohdistuksen uuteen (tyhjään) tietueeseen lomakkeessa ja luot sitten uuden tietueen kirjoittamalla tietoja ohjausobjektiin, seuraava tapahtumasarja tapahtuu:

Nykyinen (lomake) nuoliEnter (ohjausobjekti) nuoliGotFocus (ohjausobjekti) nuoliBeforeInsert (lomake) nuoliAfterInsert (lomake)

BeforeInsert (lomake) -tapahtuma käynnistyy heti, kun alat kirjoittaa ohjausobjektiin. AfterInsert (lomake) -tapahtuma käynnistyy tietueesta poistumisen jälkeen.

BeforeUpdate- ja AfterUpdate-tapahtumat lomakkeen ohjausobjekteissa ja uudelle tietueelle tapahtuvat BeforeInsert- tapahtuman jälkeen ja ennen AfterInsert-tapahtumaa.

Sivun alkuun

Lomakkeiden ja alilomakkeiden tapahtumien järjestys

Tapahtumia tapahtuu lomakkeille, kun avaat tai suljet lomakkeen, siirryt lomakkeiden välillä tai työskentelet lomakkeella tai alilomakkeella olevien tietojen parissa.

Lomakkeen avaaminen ja sulkeminen

Kun avaat lomakkeen, lomakkeessa tapahtuu seuraava tapahtumasarja:

Avaa nuoli Load nuoli Resize nuoli Activate nuoli Current

Jos lomakkeessa ei ole aktiivisia ohjausobjekteja, GotFocus-tapahtuma tapahtuu lomakkeessa Activate-tapahtuman jälkeen, mutta ennen Current-tapahtumaa.

Kun suljet lomakkeen, lomakkeessa tapahtuu seuraava tapahtumasarja:

Poista nuoli poista aktivointi nuoli Sulje

Jos lomakkeessa ei ole aktiivisia ohjausobjekteja, LostFocus-tapahtuma tapahtuu lomakkeessa Unload-tapahtuman jälkeen, mutta ennen Deactivate-tapahtumaa.

Siirtyminen lomakkeiden välillä

Kun vaihdat kahden avoimen lomakkeen välillä, Deactivate-tapahtuma tapahtuu ensimmäisessä lomakkeessa, ja Activate-tapahtuma tapahtuu toisessa lomakkeessa:

Aktivoinnin poistaminen (lomake1) nuoliActivate (lomake2)

Deactivate-tapahtuma tapahtuu lomakkeessa myös, kun vaihdat lomakkeesta toiseen ohjausobjektivälilehteen Accessissa. Deactivate-tapahtumaa ei kuitenkaan tapahdu, kun vaihdat valintaikkunaan, lomakkeeseen, jonka PopUp-ominaisuus on asetettu tilaan Yes, tai johonkin ikkunaan toisessa ohjelmassa.

Huomautus:  Open-tapahtumaa ei tapahdu, jos siirrät kohdistuksen lomakkeeseen, joka on jo auki, vaikka olisitkin siirtänyt kohdistuksen kyseiseen lomakkeeseen tekemällä OpenForm-toiminnon.

Lomakkeen tietojen käsitteleminen

Lomake- ja ohjausobjektitapahtumia tapahtuu, kun siirryt tietueiden välillä lomakkeessa ja muutat tietoja. Kun esimerkiksi avaat lomakkeen ensi kertaa, tapahtuu seuraava tapahtumasarja:

Avaa (lomake) nuoliLataa (lomake) nuoliMuuta kokoa (lomake) nuoliActivate (lomake) nuoliCurrent (lomake) nuoliEnter (ohjausobjekti)0 GotFocus (ohjausobjekti)

Vastaavasti kun suljet lomakkeen, tapahtuu seuraava tapahtumasarja:

Exit (control) nuoliLostFocus (control) nuoliPura (lomake) nuoliDeactivate (lomake) nuoliSulje (lomake)

Jos olet muuttanut ohjausobjektin tietoja, BeforeUpdate- ja AfterUpdate-tapahtumat sekä lomakkeessa että ohjausobjektissa tapahtuvat ennen ohjausobjektin Exit-tapahtumaa.

Alilomakkeiden käyttäminen

Kun avaat alilomakkeen sisältävän lomakkeen, alilomake ja sen tietueet ladataan ennen päälomaketta. Näin ollen alilomakkeen ja sen ohjausobjektien tapahtumat (kuten Open, Current, Enter ja GotFocus) tapahtuvat ennen lomakkeen tapahtumia. Kuitenkin Activate-tapahtumaa ei tapahdu alilomakkeissa. Näin ollen päälomakkeen avaaminen käynnistää Activate-tapahtuman vain päälomakkeessa.

Samoin kun suljet alilomakkeen sisältävän lomakkeen, alilomake ja sen tietueet poistetaan muistista lomakkeen jälkeen. Deactivate -tapahtumaa ei tapahdu alilomakkeissa. Näin ollen päälomakkeen sulkeminen käynnistää Deactivate -tapahtuman vain päälomakkeessa. Ohjausobjektien, lomakkeen ja alilomakkeen tapahtumat tapahtuvat seuraavassa järjestyksessä:

  1. Alilomakkeen ohjausobjektien tapahtumat (kuten Exit ja LostFocus)

  2. Lomakkeen ohjausobjektien (mukaan lukien alilomakkeen ohjausobjekti) tapahtumat

  3. Lomakkeen tapahtumat (kuten Deactivate ja Close)

  4. Alilomakkeen tapahtumat

Huomautus: Alilomakkeen tapahtumat tapahtuvat päälomakkeen sulkemisen jälkeen, joten tietyt tapahtumat eivät toteudu, kuten päälomakkeen sulkemisen peruuttaminen alilomakkeen tapahtuman kautta. Tämäntyyppiset kelpoisuustarkistukset on ehkä siirrettävä päälomakkeen tapahtumaan.

Sivun alkuun

Näppäinpainallusten ja hiiren napsautusten tapahtumien järjestys

Näppäimistön tapahtumat tapahtuvat lomakkeissa ja ohjausobjekteissa, kun painat näppäimiä tai lähetät näppäinpainalluksia silloin, kun aktiivisuus on lomakkeessa tai ohjausobjektissa. Hiiren tapahtumat tapahtuvat lomakkeissa, lomakkeen osissa ja lomakkeiden ohjausobjekteissa, kun napsautat hiiren painikkeita, kun hiiriosoitin on lomakkeessa, osassa tai ohjausobjektissa. Hiiren tapahtumat tapahtuvat myös silloin, kun siirrät hiiriosoittimen lomakkeen, osan tai ohjausobjektin ylle.

Näppäimistötapahtumat

Kun painat ja vapautat näppäintä, kun kohdistus on lomakkeen ohjausobjektissa (tai käytät SendKeys-toimintoa tai lauseke näppäinpainalluksen lähettämiseksi), tapahtuu seuraava tapahtumasarja:

KeyDown nuoli KeyPress nuoli KeyUp

Kun painat ja vapautat näppäimen tai lähetät näppäinpainalluksen ANSI-merkistö, kaikki KeyDown-, KeyPress- ja KeyUp-tapahtumat tapahtuvat. Jos painat ANSI-näppäintä pitkään, KeyDown- ja KeyPress-tapahtumat vuorottelevat toistuvasti (KeyDown, KeyPress, KeyDown, KeyPress jne.), kunnes vapautat näppäimen; sitten KeyUp-tapahtuma tapahtuu.

Jo painat ei-ANSI-näppäintä ja vapautat sen, KeyDown- ja KeyUp-tapahtumat toteutuvat. Jo painat ei-ANSI-näppäintä ja pidät sitä painettuna, KeyDown-tapahtuma toteutuu toistuvasti, kunnes vapautat näppäimen, jolloin KeyUp-tapahtuma toteutuu.

Jos näppäimen painaminen käynnistää toisen tapahtuman ohjausobjektille, kyseinen tapahtuma toteutuu KeyPress-tapahtuman jälkeen, mutta ennen KeyUp-tapahtumaa. Jos esimerkiksi näppäinpainallus muuttaa tekstiä tekstiruudussa, joka käynnistää Change-tapahtuman, tapahtuu seuraava tapahtumasarja:

KeyDown nuoli KeyPress nuoli Change nuoli KeyUp

Jos näppäinpainallus aiheuttaa kohdistuksen siirtymisen yhdestä ohjausobjektista toiseen ohjausobjektiin, KeyDown-tapahtuma tapahtuu ensimmäisessä ohjausobjektissa, kun taas KeyPress- ja KeyUp-tapahtumat tapahtuvat toisessa ohjausobjektissa. Jos esimerkiksi muutat tietoja ohjausobjektissa ja siirryt sitten SARKAIMELLA seuraavaan ohjausobjektiin, seuraavat tapahtumasarjat tapahtuvat:

  • Ensimmäinen ohjausobjekti:

    KeyDown nuoli BeforeUpdate nuoli AfterUpdate nuoli Exit nuoli LostFocus

  • Toinen ohjausobjekti:

    Enter nuoli GotFocus nuoli KeyPress nuoli KeyUp

Hiiren tapahtumat

Kun napsautat ja vapautat hiiren painikkeen hiiriosoittimen ollessa lomakkeen ohjausobjektissa, ohjausobjektissa tapahtuu seuraavassa tapahtumasarja:

MouseDown nuoli MouseUp nuoli Valitse

Jos kohdistus on ohjausobjektissa ja napsautat toista ohjausobjektia kohdistuksen siirtämiseksi tähän toiseen ohjausobjektiin, seuraavat tapahtumasarjat tapahtuvat:

  • Ensimmäinen ohjausobjekti:

    Exit nuoli LostFocus

  • Toinen ohjausobjekti:

    Enter nuoli GotFocus nuoli MouseDown nuoli MouseUp nuoli Click

Jos siirryt toiseen tietueeseen ja napsautat sitten ohjainta, lomakkeen Current-tapahtuma tapahtuu ennen ohjausobjektin Enter-tapahtumaa.

Ohjausobjektin kaksoisnapsauttaminen aiheuttaa sekä Click- että DblClick-tapahtumien tapahtumisen. Kun esimerkiksi kaksoisnapsautat ohjausobjektia, joka ei ole komentopainike, ohjausobjektille tapahtuu seuraava tapahtumasarja:

MouseD:n oma nuoli MouseUp nuoli Click nuoli DblClick nuoli MouseUp

Kun kaksoisnapsautat komentopainiketta, edellinen tapahtumasarja tapahtuu, jonka jälkeen seuraa toinen Click-tapahtuma.

MouseMove-tapahtuma tapahtuu lomakkeessa, osassa tai ohjausobjektissa, kun siirrät hiiriosoittimen lomakkeen, osan tai ohjausobjektin päälle. Tämä tapahtuma on riippumaton muista hiiren tapahtumista.

Sivun alkuun

Raporttien ja raporttiosien tapahtumien järjestys

Raporttien ja raporttiosien tapahtumat tapahtuvat, kun avaat raportin sen tulostamiseksi tai esikatselemiseksi tai kun suljet raportin.

Raporttien tapahtumat

Kun avaat raportin sen tulostamiseksi tai esikatselemiseksi ja sitten myöhemmin suljet raportin tai siirryt toiseen ohjausobjektivälilehteen Accessissa, seuraava tapahtumasarja tapahtuu raportissa:

Avaa nuoli Activate nuoli Close nuoli Deactivate

Kun vaihdat kahden avoimen raportin välillä, Deactivate-tapahtuma tapahtuu ensimmäisessä raportissa, ja Activate-tapahtuma tapahtuu toisessa raportissa:

Aktivoinnin poistaminen (raportti1) nuoliActivate (raportti2)

Deactivate-tapahtuma tapahtuu raportissa myös, kun vaihdat raportista toiseen ohjausobjektivälilehteen Accessissa. Deactivate-tapahtumaa ei kuitenkaan tapahdu, kun vaihdat valintaikkunaan, lomakkeeseen, jonka PopUp-ominaisuus on asetettu tilaan Yes, tai johonkin ikkunaan toisessa ohjelmassa.

Kun avaat raportin, joka perustuu kyselyn, Access käynnistää Open-tapahtuman raportille ennen kyselyn suorittamista. Tällöin voit määrittää raportin ehdot käyttämällä makroa tai toimintosarjan, joka reagoi Open-tapahtumaan. Makro tai toimintosarja voi esimerkiksi avata mukautetun valintaikkunan, johon voit kirjoittaa raportin ehtoja.

Raporttiosien tapahtumat

Kun tulostat tai esikatselet raporttia, Format- ja Print-tapahtumat tapahtuvat raporttiosissa raportin Open- ja Activate-tapahtumien jälkeen ja ennen raportin Close- tai Deactivate-tapahtumia:

Avaa (raportti) nuoliActivate (raportti) nuoliFormat (raporttiosa) nuoliTulosta (raporttiosa) nuoliSulje (raportti) nuoliDeactivate (raportti)

Tietoturva    Raporttinäkymän avulla voit ottaa käyttöön käyttäjien raporttien suodatuksen. Toisin kuin tulostuksen esikatselussa, minkä tahansa osan Muotoile - ja Tulosta-tapahtumat eivät näy raporttinäkymässä. Tämä koskee myös VBA-funktion tuloksia ja käyttäjän määrittämiä menetelmiä, jotka näkyvät ohjausobjekteissa (kuten otsikkotekstitys, näytön tila, ehdollinen muotoilu, ohjausobjektien koon muuttaminen jne.) näissä tapahtumissa. Älä siis käytä tässä tapahtumassa koodia luottamuksellisten tietojen muotoilemiseen, piilottamiseen tai tulostamiseen, mikä saattaa paljastua. Suosittelemme tietojen esisuodatusta tai raportin esikatselun poistamista käytöstä määrittämällä SalliRaporttinäkymä-ominaisuuden arvoksi Ei.

Lisäksi seuraavat tapahtumat voivat tapahtua muotoilun aikana tai sen jälkeen, mutta ennen Print-tapahtumaa:

  • Retreat-tapahtuma tapahtuu, kun Access palaa edelliseen osaan raportin muotoilun aikana.

  • NoData-tapahtuma tapahtuu, jos raportissa ei ole tietueita.

  • Page-tapahtuma tapahtuu muotoilun jälkeen, mutta ennen tulostamista. Voit mukauttaa tulostetun raportin ulkoasua tämän tapahtuman avulla.

Sivun alkuun

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.