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