Funkcija DLookup

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Funkciją DLookup naudokite "Access" kompiuterio duomenų bazėse norėdami gauti tam tikro lauko, esančio nurodytame įrašų rinkinyje (domene), reikšmę. Funkciją DLookup naudokite "Visual Basic for Applications" (VBA) modulyje, makrokomandoje, užklausos reiškinyje arba skaičiavimų valdiklyje, esančiame formoje arba ataskaitoje.

Funkciją DLookup galite naudoti norėdami parodyti lauko, kurio nėra jūsų formos arba ataskaitos įrašo šaltinyje, reikšmę. Pavyzdžiui, turite formą, pagrįstą lentele Užsakymo išsami informacija. Formoje rodomi laukai UžsakymoID, ProduktoID, Vieneto_kaina, Kiekis ir Nuolaida. Tačiau laukas Produkto_pavadinimas yra kitoje lentelėje, lentelėje Produktai. Skaičiavimų valdiklyje galėtumėte pasinaudoti funkcija DLookup, kad laukas Produkto_pavadinimas būtų rodomas toje pačioje formoje.

Sintaksė

DLookup(išraiška, domenas [, kriterijai] )

DLookup funkcijos sintaksę sudaro šie argumentai:

Argumentas Aprašas
reiškinys Būtinas. Reiškinys, identifikuojantis lauką, kurio reikšmę norite grąžinti. Tai gali būti eilutės reiškinys, identifikuojantis lauką lentelėje ar užklausoje, arba reiškinys, atliekantis duomenų skaičiavimus tame lauke. Išraiškoje galite įtraukti lentelės lauko pavadinimą, formos valdiklį, konstantą arba funkciją. Reiškinyje esanti funkcija gali būti įtaisytoji arba apibrėžta vartotojo, tačiau negali būti kito domeno agregavimo ar SQL agregavimo funkcija.
domenas Būtinas. Eilutės reiškinys, identifikuojantis domeną sudarančių įrašų rinkinį. Tai gali būti lentelės pavadinimas arba užklausos, kuriai nebūtinas parametras, pavadinimas.
kriterijai Pasirenkamas. Eilutės reiškinys, naudojamas apriboti duomenų diapazoną, kuriame atliekama funkcija DLookup. Pvz., kriterijai dažnai yra sąlygos WHERE atitikmuo SQL užklausoje, be žodžio WHERE. Jei kriterijai nenurodyti, funkcija DLookup apskaičiuoja reiškinį pagal visą domeną. Bet koks laukas, nenurodytas kriterijuose taip pat turi būti domene; priešingu atveju funkcija DLookup funkcija grąžina Null.

Pastabos

Funkcija DLookup grąžina vieno lauko reikšmę pagal kriterijuose nurodytą informaciją. Nors kriterijai yra pasirinktinis argumentas, jei nepateiksite kriterijų reikšmės, funkcija DLookup domene grąžins atsitiktinę reikšmę.

Jei joks įrašas neatitinka kriterijų arba domene nėra įrašų, funkcija DLookup grąžina Null.

Jei kriterijus atitinka daugiau nei vienas laukas, funkcija DLookup grąžina pirmąjį atitikmenį. Turėtumėte nurodyti kriterijus, kurie užtikrins, kad funkcijos DLookup grąžinama lauko reikšmė yra unikali. Galite naudoti pirminio rakto reikšmę savo kriterijams, pvz. [EmployeeID] , kaip šiame pavyzdyje, kad užtikrintumėte, jog funkcija DLookup grąžina unikalią reikšmę:

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

Nesvarbu, ar funkciją DLookup naudojate makrokomandoje ar modulyje, užklausos reiškinyje ar skaičiavimų valdiklyje, kriterijų argumentą turėtumėte sudaryti atidžiai, siekdami užtikrinti, kad jis bus įvertintas teisingai.

Funkciją DLookup galite naudoti norėdami nurodyti kriterijus užklausos eilutėje Kriterijai, užklausos apskaičiavimo lauko reiškinyje arba naujinimo užklausos eilutėje Naujinti į.

Funkciją DLookup taip pat galite naudoti reiškinyje skaičiavimų valdiklyje, esančiame formoje arba ataskaitoje, jei reikalingo rodyti lauko nėra įrašo šaltinyje, kuriuo pagrįsta jūsų forma arba ataskaita. Pavyzdžiui, turite formą Užsakymo išsami informacija, paremtą lentele Užsakymo išsami informacija, kurioje yra teksto laukelis ProduktoID, rodantis lauką Produkto_ID. Norėdami iš lentelės Produktai, paremtos teksto laukelio reikšme, gauti lauko Produkto_pavadinimas reikšmę, galite sukurti kitą teksto laukelį ir nustatyti jo ypatybę Valdiklio šaltinis (ControlSource) kaip šį reiškinį:

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

Patarimai

  • Nors funkciją DLookup galite naudoti norėdami rodyti lauko reikšmę išorinėje lentelėje, būtų efektyviau sukurti užklausą su reikalingais laukais iš abiejų lentelių ir savo formoje ar ataskaitoje naudoti šią užklausą.
  • Norėdami rasti reikšmes, esančias išorinėje lentelėje, taip pat galite naudoti Peržvalgos vedlį.

Pastaba

Naudojant šią funkciją, neįrašyti domeno įrašų pakeitimai neįtraukiami. Jei norite, kad funkcijos DLookup rezultatai būtų pagrįsti pakeistomis reikšmėmis, pirmiausia pakeitimus turite įrašyti skirtuko Duomenys dalyje Įrašai spustelėdami Įrašyti įrašą, pereidami į kitą įrašą, ar naudodami metodą Naujinimas.

Pavyzdys

Pastaba

Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite "Access" VBA nuorodoje.

Pateiktame pavyzdyje grąžinama pavadinimo informacija iš įrašo lauke Įmonės_pavadinimas, atitinkanti kriterijus. Domenas yra lentelė Siuntėjai. Kriterijų argumentas apriboja gaunamą įrašų rinkinį iki tų, kurių SiuntėjoID reikšmė lygi 1.

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

Kitame pavyzdyje, lentelėje Siuntėjai naudojamas formos valdiklis SiuntėjoID, pateikiantis funkcijai DLookup kriterijus. Atkreipkite dėmesį, kad nuoroda į valdiklį rašoma be kabučių, žyminčių eilutes. Tai užtikrina, kad kiekvieną kartą iškvietus funkciją DLookup, „Access“ gaus iš valdiklio esamą reikšmę.

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

Kitame pavyzdyje reikšmė gaunama naudojant kintamąjį intSearch,.

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