במסדי 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 הוא ארגומנט אופציונלי, אם לא תספק ערך עבור criteria, הפונקציה DLookup מחזירה ערך אקראי בתחום.
אם אף רשומה אינה עומדת ב- criteria או אם domain אינו מכיל רשומות, הפונקציה DLookup מחזירה ערך Null.
אם יותר משדה אחד עומד ב- criteria, הפונקציה DLookup מחזירה את המופע הראשון. עליך לציין קריטריונים אשר יבטיחו כי ערך השדה המוחזר על-ידי הפונקציה DLookup הוא ייחודי. מומלץ להשתמש בערך מפתח ראשי עבור הקריטריונים שלך, כגון [EmployeeID] בדוגמה הבאה, כדי להבטיח שהפונקציה DLookup מחזירה ערך ייחודי:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
בין שאתה משתמש בפונקציה DLookup במאקרו או במודול, ביטוי שאילתה או פקד מחושב, עליך לבנות את הארגומנט criteria בקפידה כדי לוודא שהוא יוערך כראוי.
באפשרותך להשתמש בפונקציה DLookup כדי לציין קריטריונים בשורה 'קריטריונים' של שאילתה, בתוך ביטוי שדה מחושב בשאילתה, או בשורה 'עדכן ל' בשאילתת עדכון.
ניתן גם להשתמש בפונקציה DLookup בביטוי בפקד מחושב בטופס או בדוח אם השדה שעליך להציג לא נמצא במקור הרשומה שעליו מבוססים הטופס או הדוח שלך. לדוגמה, נניח שיש לך טופס Order Details המבוסס על טבלה בשם Order Details עם תיבת טקסט הנקראת ProductID המציגה את השדה ProductID. כדי לחפש ProductName מטבלה בשם Products בהתבסס על ערך בתיבת הטקסט, תוכל ליצור תיבת טקסט אחרת ולהגדיר את המאפיין ControlSource שלה לביטוי הבא:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
עצות
-
על אף שניתן להשתמש בפונקציה DLookup כדי להציג ערך משדה טבלה זרה, ייתכן שיהיה יעיל יותר ליצור שאילתה המכילה את השדות הדרושים לך משתי הטבלאות ולאחר מכן לבסס את הטופס או הדוח על השאילתה.
-
תוכל גם להשתמש באשף בדיקת המידע כדי למצוא ערכים בטבלה זרה.
הערה: שינויים שלא נשמרו ברשומות ב- domain אינם נכללים בעת השימוש בפונקציה זו. אם אתה מעוניין שהפונקציה DLookup תהיה מבוססת על הערכים שהשתנו, תחילה עליך לשמור את השינויים על-ידי לחיצה על שמור רשומה תחת רשומות בכרטיסיה נתונים, תוך העברת המוקד לרשומה אחרת, או באמצעות פעולת השירות עדכון.
דוגמה
הערה: הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול 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)