הפונקציה DLookup

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

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

באפשרותך להשתמש בפונקציה DLookup כדי להציג את הערך של שדה שאינו נמצא במקור הרשומה עבור הטופס או הדוח. לדוגמה, נניח שיש לך טופס המבוסס על טבלת Order Details. הטופס מציג את השדות OrderID, ProductID, 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 השדה. כדי לחפש מטבלה ProductNameProducts בהתבסס על הערך בתיבת הטקסט, צור תיבת טקסט נוספת והגדר את המאפיין ControlSource שלה לביטוי הבא:

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

טיפים

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

הערה

שינויים שלא נשמרו לרשומות ב domain - אינם נכללים בעת השימוש בפונקציה זו. אם ברצונך להשתמש DLookup בערכים שהשתנו, שמור תחילה את השינויים על-ידי לחיצה על שמור רשומה תחת רשומות בכרטיסיה נתונים, 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)