DLookup-funktio

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Accessin työpöytätietokannoissa voit funktion avulla DLookup noutaa tietyn kentän arvon määritetystä tietuejoukosta (toimialueesta). Voit käyttää DLookup Visual Basic for Applications (VBA) -moduulissa makroa, kyselylauseketta tai laskettua ohjausobjektia lomakkeessa tai raportissa.

Voit näyttää funktion avulla DLookup sellaisen kentän arvon, jota ei ole lomakkeen tai raportin tietuelähteessä. Oletetaan esimerkiksi, että sinulla on Order Details (Tilaustiedot) -taulukkoon perustuva lomake. Lomakkeessa OrderIDnäkyvät , ProductID, UnitPrice, Quantityja Discount kentät. Kenttä on kuitenkin ProductName toisessa taulukossa eli taulukossa Products . Voit käyttää DLookup funktiota lasketussa ohjausobjektissa näyttämään ProductName sen samassa lomakkeessa.

Syntaksi

DLookup(expr, domain [, criteria])

DLookup Funktiolla on seuraavat argumentit:

Argumentti Kuvaus
expr Pakollinen. Lauseke, joka määrittää kentän, jonka arvon haluat palauttaa. Se voi olla merkkijonolauseke, joka määrittää taulukon tai kyselyn kentän, tai se voi olla lauseke, joka suorittaa laskutoimituksen kyseisen kentän tiedoilla. Voit sisällyttää exprtaulukon kentän, lomakkeen ohjausobjektin, vakion tai funktion nimen. Jos expr funktio sisältää funktion, se voi olla valmis tai käyttäjän määrittämä funktio, mutta ei toinen ryhmäkooste- tai SQL koostefunktio.
domain Pakollinen. Merkkijonolauseke, joka määrittää toimialueen muodostavan tietuejoukon. Se voi olla taulukon nimi tai sellaisen kyselyn nimi, joka ei vaadi parametria.
criteria Valinnainen. Merkkijonolauseke, jonka avulla rajoitetaan funktion suorittamisessa käytettävää tietoaluetta DLookup . Esimerkiksi criteria on usein vastaava WHERE kuin lausekkeen SQL lause ilman sanaa WHERE. Jos jätät sen criteriapois, DLookup funktio suorittaa expr arvioinnin koko ryhmän perusteella. Ehtoon criteria sisältyvän kentän on oltava myös .domain Muussa tapauksessa DLookup funktio palauttaa .Null

Huomautuksia

Funktio DLookup palauttaa yhden kentän arvon criteria. Vaikka criteria se on valinnainen, funktio palauttaa satunnaisen arvon ryhmässä, jos et anna sille DLookup arvoa.

Jos mikään tietue ei täytä , criteriatai jos domain se ei sisällä mitään tietueita, DLookup funktio palauttaa .Null

Jos useat kentät vastaavat ehtoja criteria, DLookup funktio palauttaa ensimmäisen esiintymän. Määritä ehdot, joilla varmistetaan, että palauttama DLookup kentän arvo on yksilöllinen. Voit käyttää ehdolle perusavainarvoa, kuten [EmployeeID] seuraavassa esimerkissä, jos haluat varmistaa, että DLookup tämä palauttaa yksilöllisen arvon:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
    "[EmployeeID] = 1")

Riippumatta siitä, käytätkö DLookup funktiota makrossa, moduulissa, kyselyn lausekkeessa vai lasketussa ohjausobjektissa, muodosta criteria argumentti huolellisesti, jotta Access arvioi sen oikein.

Voit käyttää DLookup funktiota ehtojen määrittämiseen kyselyn Ehdot-rivillä , kyselyn lausekkeen lasketun kentän sisällä tai päivityskyselyn Päivitä-rivillä .

Voit käyttää DLookup funktiota myös lomakkeen tai raportin lasketun ohjausobjektin lausekkeessa, jos näytettävä kenttä ei ole lomakkeen tai raportin perustana olevassa tietuelähteessä. Oletetaan esimerkiksi, että sinulla on Order Details -taulukkoon perustuva Order Details -lomake, jonka nimi näyttää kentän tekstiruudussa ProductIDProductID . Jos haluat hakea taulukosta ProductNameProducts tekstiruudussa olevan arvon perusteella, luo toinen tekstiruutu ja aseta sen OhjausobjektinLähde-ominaisuudeksi seuraava lauseke:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Vinkkejä

  • Vaikka THookup-funktiolla voidaan näyttää viitetaulukon kentän arvo, voi olla tehokkaampaa luoda kysely, joka sisältää tarvitsemasi kentät molemmista taulukoista, ja käyttää sitten lomakkeen tai raportin perustana kyseistä kyselyä.
  • Voit etsiä viitetaulukosta arvoja myös ohjatun haun avulla.

Huomautus

Tietueiden domain tallentamattomia muutoksia ei oteta mukaan käytettäessä tätä funktiota. Jos haluat DLookup käyttää muuttuneita arvoja, tallenna ensin muutokset valitsemalla Tiedot-välilehdenTietueet -kohdassa Tallenna tietue, jolloin kohdistus siirtyy toiseen tietueeseen, tai käyttämällä tätä Update menetelmää.

Esimerkki

Huomautus

Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Lisätietoja VBA-koodin käyttämisestä on Accessin VBA-viittauksessa.

Seuraava esimerkki palauttaa nimitiedot CompanyName sen tietueen kentästä, joka täyttää criteria. Ryhmä on Shippers taulukko. Argumentti criteria rajoittaa tuloksena olevan tietuejoukon tietueisiin, joiden ShipperID luku on 1yhtä suuri kuin .

Dim varX As Variant
varX = DLookup("[CompanyName]", _
    "Shippers", "[ShipperID] = 1")

Seuraavassa taulukon esimerkissä Shippers lomakeohjausobjektia ShipperID käytetään funktion ehtojen DLookup määrittämiseen. Merkkijonoja osoittavien lainausmerkkien sisällä ei ole viittausta ohjausobjektiin. Näin varmistetaan, että Access saa jokaisen suorituskerran DLookup kohdalla ohjausobjektista nykyisen arvon.

Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
    "[ShipperID] = " & Forms!Shippers!ShipperID)

Seuraavassa esimerkissä arvo saadaan muuttujalla intSearch.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
    "[ShipperID] = " & intSearch)