Applies To„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

„Access“ kompiuterio duomenų bazėse galite naudoti funkciją DLookup , kad gautumėte konkretaus lauko reikšmę iš nurodyto įrašų rinkinio ( domenas ). Funkciją DLookup naudokite „Visual Basic for Applications“ (VBA) modulyje, makrokomanda, užklausos reiškinyje arba apskaičiuojamasis valdiklis, 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( reiškinys, 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 išraiška, identifikuojanti lauką lentelėje ar užklausą, arba reiškinys, atliekantis duomenų skaičiavimus tame lauke. Reiškinyje 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 informaciją, nurodytą argumente kriterijai. Nors argumentas kriterijai yra pasirinktinis argumentas, nenurodžius argumento kriterijai reikšmės, funkcija DLookup grąžina atsitiktinę domeno reikšmę.

Jei joks įrašas neatitinka argumento kriterijai arba argumente domenas nėra įrašų, funkcija DLookup grąžina Neapibrėžtą reikšmę (Null).

Jei daugiau nei vienas laukas atitinka kriterijus, 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. Šiame pavyzdyje, siekiant užtikrinti, kad funkcija DLookup grąžintų unikalią reikšmę, kriterijams naudojama pirminis raktas reikšmė, pvz., [EmployeeID].

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

Nesvarbu, ar funkciją DLookup naudojate makrokomandoje ar modulyje, užklausos reiškinyje ar skaičiavimų valdiklyje, argumentą kriterijai 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 ar eilutėje naujinimo užklausa 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 galite naudoti funkciją DLookup norėdami gauti lauko, esančio išorinė lentelė, reikšmę, 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 žr. "Access" VBA nuoroda.

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

Dim varX As VariantvarX = 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 kaskart iškvietus funkciją DLookup„Access“ gaus dabartinę reikšmę iš valdiklio.

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

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

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

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.