הפונקציה DLookup

חל על
Access של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

במסדי נתונים שולחניים של Access, באפשרותך להשתמש בפונקציה DLookup כדי לקבל ערך של שדה מסוים מתוך קבוצה מוגדרת של רשומות (תחום). באפשרותך להשתמש DLookup במודול Visual Basic for Applications (VBA), במאקרו, בביטוי שאילתה או בפקד מחושב בטופס או בדוח.

באפשרותך להשתמש בפונקציה DLookup כדי להציג ערך של שדה שאינו נמצא במקור הרשומה עבור הטופס או הדוח שלך. לדוגמה, נניח שיש לך טופס המבוסס על טבלת Order Details. הטופס מציג את , ProductIDOrderID, UnitPrice, Quantity, והשדותDiscount. עם זאת, השדה ProductName נמצא בטבלה אחרת, הטבלה Products . באפשרותך להשתמש DLookup בפונקציה בפקד מחושב כדי להציג ProductName אותה באותו טופס.

תחביר

DLookup(expr, domain [, criteria])

הפונקציה DLookup מכילה את הארגומנטים הבאים:

ארגומנט תיאור
expr נדרש. ביטוי המזהה את השדה שאת הערך שלו אתה מעוניין להחזיר. הוא יכול להיות ביטוי מחרוזת המזהה שדה בטבלה או בשאילתה, או ביטוי המבצע חישוב בנתונים בשדה זה. ב- expr, באפשרותך לכלול שם של שדה בטבלה, של פקד בטופס, של קבוע או של פונקציה. אם expr היא כוללת פונקציה, היא יכולה להיות מוכללת או מוגדרת על-ידי המשתמש, אך לא צבירה המופעלת על תחום אחר או SQL פונקציית צבירה המופעלת על-ידי המשתמש.
domain נדרש. ביטוי מחרוזת המזהה את קבוצת הרשומות המרכיבה את התחום. הוא יכול להיות שם טבלה או שם שאילתה עבור שאילתה שאינה דורשת פרמטר.
criteria אופציונלי. ביטוי מחרוזת המשמש כדי להגביל את טווח הנתונים שבו פועלת הפונקציה DLookup . לדוגמה, criteria לעתים קרובות שווה ערך למשפט WHERE בביטוי SQL , ללא המילה WHERE. אם תשמיט criteriaאת , הפונקציה DLookup תבצע expr הערכה מול התחום כולו. כל שדה הכלול ב criteria - חייב להיות גם שדה ב domain- . אחרת, הפונקציה DLookup מחזירה Null.

הערות

הפונקציה DLookup מחזירה ערך שדה יחיד בהתבסס על המידע שצוין ב- criteria. למרות שהיא criteria אופציונלית, אם אינך מספק ערך עבורה, הפונקציה DLookup מחזירה ערך אקראי בתחום.

אם אף רשומה לא עומדת criteriaבדרישות , או אם domain לא מכילה רשומות, הפונקציה DLookup מחזירה Null.

אם יותר משדה אחד נפגש criteria, הפונקציה DLookup מחזירה את המופע הראשון. עליך לציין קריטריונים המבטיחים שערך השדה המוחזר על-ידי DLookup הוא ייחודי. מומלץ להשתמש בערך מפתח ראשי עבור הקריטריונים שלך, כמו [EmployeeID] בדוגמה הבאה, כדי להבטיח שהחזרת DLookup ערך ייחודי:

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

בין שאתה משתמש DLookup בפונקציה במאקרו או במודול, ביטוי שאילתה או פקד מחושב, בנה את הארגומנט criteria בקפידה כך ש- Access יעריך אותו נכון.

ניתן להשתמש בפונקציה כדי לציין קריטריונים בשורה 'קריטריונים' של שאילתהDLookup, בתוך ביטוי שדה מחושב בשאילתה, או בשורה 'עדכן ל' בשאילתת עדכון.

ניתן גם להשתמש DLookup בפונקציה בביטוי בפקד מחושב בטופס או בדוח אם השדה שעליך להציג לא נמצא במקור הרשומה שעליו מבוססים הטופס או הדוח שלך. לדוגמה, נניח שיש לך טופס Order Details המבוסס על טבלה בשם Order Details עם תיבת טקסט שנקראת ProductID ומציגה את השדה ProductID . כדי לבדוק מידע ProductName מטבלה Products בהתבסס על ערך בתיבת הטקסט, צור תיבת טקסט אחרת והגדר את המאפיין ControlSource שלה כביטוי הבא:

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

טיפים

  • למרות שניתן להשתמש בפונקציה DLookup כדי להציג ערך משדה בטבלה זרה, ייתכן שיהיה יעיל יותר ליצור שאילתה המכילה את השדות הדרושים לך משתי הטבלאות ולאחר מכן לבסס את הטופס או הדוח על השאילתה.
  • תוכל גם להשתמש באשף בדיקת המידע כדי למצוא ערכים בטבלה זרה.

הערה

שינויים שלא נשמרו ברשומות ב domain אינם נכללים בעת השימוש בפונקציה זו. אם ברצונך DLookup להשתמש בערכים שהשתנו, שמור תחילה את השינויים על-ידי לחיצה על Save Record תחת Records בכרטיסיה Data , תוך העברת המוקד לרשומה אחרת, או באמצעות השיטה Update .

דוגמה

הערה

הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול Visual Basic for Applications‏ (VBA). לקבלת מידע נוסף אודות עבודה עם VBA, עיין בחומר עזר בנושא Access VBA.

הדוגמה הבאה מחזירה פרטי שם משדה CompanyName של הרשומה העומד בדרישות criteria. התחום הוא Shippers טבלה. הארגומנט criteria מגביל את קבוצת הרשומות המתקבלת לאלה שעבורן ShipperID שווה 1ל- .

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

הדוגמה הבאה מהטבלה Shippers משתמשת בפקד ShipperID הטופס כדי לספק קריטריונים עבור הפונקציה DLookup . ההפניה לפקד אינה כלולה במרכאות המציינות את המחרוזות. פעולה זו מבטיחה שבכל פעם DLookup שמופעל, Access מקבל את הערך הנוכחי מהפקד.

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

הדוגמה הבאה משתמשת במשתנה, intSearch, כדי לקבל את הערך.

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