שימוש בפרמטרים בשאילתות ובדוחות

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

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

  • מתן אפשרות לשימוש בפקדים ייחודיים לסוג הנתונים
  • הפעלת ההתמדה של ערכי פרמטר
  • מתן אפשרות לשימוש בפקדי תיבה משולבת (כך שתוכל לבחור ערך מתוך רשימה במקום להקלידו)
  • מתן אפשרות לשימוש בפקדים אחרים הזמינים בטפסים

במאמר זה מוסבר כיצד להשתמש בפרמטרים בשאילתות ובדוחות וכיצד להשתמש בטפסים כדי לשפר את אופן השימוש בפרמטרים.

במאמר זה


מבוא

באפשרותך להשתמש בקריטריונים בשאילתה ב- Microsoft Office Access 2007 כדי להגביל את קבוצת הרשומות שהשאילתה מחזירה. שים לב לתרחיש הבא.

נניח שיש ברשותך שאילתה הנקראת Last Order (הזמנה אחרונה), המחזירה את השמות והכתובות של לקוחותיך יחד עם התאריך בו שלחת את ההזמנה האחרונה שלהם. לאחרונה הוספת כמה מוצרים חדשים ומעניינים לרשימת המלאי ולקטלוג. בכל פעם שתשלח הזמנה, תכלול עותק של הקטלוג הנוכחי. אתה צופה שהמוצרים החדשים יהיו פופולריים מאד וברצונך לוודא שכל לקוחותיך שמעו עליהם. ברצונך לשלוח בדואר קטלוג חדש לכל הלקוחות שטרם קיבלו אותו במשלוח.

לכן ברצונך ליצור רשימת דיוור המכילה את השמות והכתובות של הלקוחות שהזמנתם האחרונה נשלחה לפני שהפקת את הקטלוג החדש. כדי לבצע זאת, תוכל להחיל קריטריון על שדה תאריך המשלוח של השאילתה Last Order. הקריטריון מציין כי התאריך בשדה תאריך המשלוח קודם לתאריך התחלת הפצת הקטלוג החדש, לדוגמה, 31/3/2006. בעת הפעלת השאילתה, תקבל רשימת דיוור המכילה רק את הלקוחות שלא קיבלו קטלוג חדש.

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

כמו כן, באפשרותך להשתמש בפרמטרים עם דוחות — פעולה זו מאפשרת למשתמשי הדוח להעביר קריטריונים לדוח בעת הפעלתו. במאמר זה מוסבר כיצד להשתמש ב- Office Access 2007 כדי ליצור דוחות המקבלים פרמטרים.

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

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

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

במאמר זה מובאות דוגמאות לשימוש בפרמטרים בשאילתות ובדוחות. מאמר זה אינו מהווה דיון מקיף אודות ציון קריטריונים.

לקבלת מידע נוסף אודות ציון קריטריונים, עיין במאמר דוגמאות לקריטריוני שאילתה.

לראש הדף לראש הדף

שימוש בפרמטרים בשאילתות

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

יצירת שאילתת פרמטר

  1. צור שאילתת בחירה ולאחר מכן פתח את השאילתה בתצוגת עיצוב (תצוגת עיצוב: תצוגה המציגה את העיצוב של אובייקטי מסד נתונים אלה: טבלאות, שאילתות, טפסים, דוחות ופקודות מאקרו. בתצוגת עיצוב, באפשרותך ליצור אובייקטי מסד נתונים חדשים ולשנות את העיצוב של אובייקטים קיימים.).
  2. בשורה קריטריונים של השדה שעליו ברצונך להחיל פרמטר, הקלד את הטקסט שברצונך להציג בתיבת הדו-שיח של הפרמטר והקף אותו בסוגריים מרובעים, לדוגמה:

[מדינה/אזור מוצא:]

בעת הפעלת שאילתת הפרמטר, הבקשה מופיעה בתיבת דו-שיח ללא הסוגריים המרובעים.

  1. חזור על שלב 2 עבור כל פרמטר אותו ברצונך שהשאילתה תאסוף ותחיל.

באפשרותך להשתמש בשלבים הקודמים כדי ליצור שאילתת פרמטר מכל סוגי השאילתות הבאים:

  • בחירה
  • הצלבה
  • הוספה
  • יצירת טבלה
  • עדכון

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

  1. פתח את שאילתת האיחוד בתצוגת SQL.
  2. הוסף משפט WHERE המכיל את כל אחד מהשדות שעבורם ברצונך להציג בקשה לפרמטר.

אם משפט WHERE כבר קיים, בדוק אם השדות שעבורם ברצונך בקשה לפרמטר נמצאים כבר במשפט, ואם הם אינם כלולים במשפט, הוסף אותם.

  1. במקום להשתמש בקריטריונים במשפט WHERE, הוסף בקשות פרמטר בהן נעשה שימוש באותו התחביר בו היית משתמש עבור פרמטרים בסוגי שאילתות אחרים.

התאמת חלק של ערך שדה למחרוזת פרמטר

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

  1. צור שאילתת בחירה ולאחר מכן פתח את השאילתה בתצוגת עיצוב.
  2. בשורה קריטריונים של השדה שעליו ברצונך להחיל את הפרמטר, הקלד Like "*"&[‎, הקלד את הטקסט בו ברצונך להשתמש כבקשה ולאחר מכן הקלד ‎]&"*"‎.

בעת הפעלת שאילתת הפרמטר, הבקשה מופיעה בתיבת הדו-שיח ללא הסוגריים המרובעים וללא מילת המפתח Like או התווים הכלליים.

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

כמו כן, באפשרותך להשתמש במילת המפתח Like ובתווים כלליים כדי לציין שפרמטר אמור להתאים להתחלה או לסוף של ערך שדה. כדי לבצע התאמה להתחלה של ערך שדה, השמט את המרכאות, את התווים הכלליים ואת האמפרסנד (&) הקודמים לסוגר המרובע הפותח. כדי לבצע התאמה לסוף של ערך שדה, השמט את האמפרסנד, את המרכאות ואת התווים הכלליים שאחרי הסוגר המרובע המסיים.

התאמה המתבססת על ערכים לא שווים

ייתכן שתרצה לאסוף פרמטר, אך במקום שהשאילתה תחזיר שורות בעלות ערך תואם, תרצה שהשאילתה תחזיר שורות שעבורן השוואה אחרת תוערך כאמיתית. לדוגמה, אולי תרצה להציג בקשה לשנה ולאחר מכן להחזיר שורות בהן ערך השנה גדול ממחרוזת הפרמטר. כדי לבצע זאת, הקלד אופרטור השוואה משמאל לסוגר המרובע הראשון המקיף את בקשת הפרמטר, לדוגמה, ‎>[Year:]‎.

לראש הדף לראש הדף

שימוש בפרמטרים בדוחות

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

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

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

לאחר שתסיים להוסיף פרמטרים לשאילתת המקור, שמור (הקש CTRL+S) ולאחר מכן סגור את השאילתה.

לראש הדף לראש הדף

יצירת טופס האוסף פרמטרים של דוח

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

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

פעל לפי שלבים 1 עד 7 כדי ליצור טופס שאוסף פרמטרים של דוח.

שלב 1: יצירת טופס לא מאוגד המציג בקשה לפרמטרים של דוח

  1. בכרטיסיה יצירה, בקבוצה טפסים, לחץ על עיצוב טופס.
  1. בתצוגת עיצוב, הקש F4 כדי להציג את גליון המאפיינים ולאחר מכן הגדר את מאפייני הטופס, כפי שמוצג בטבלה הבאה.
מאפיין הגדרה
כיתוב הזן את השם שברצונך שיופיע בפס הכותרת של הטופס.
תצוגת ברירת מחדל טופס יחיד
אפשר תצוגת טופס כן
אפשר תצוגת גליון נתונים לא
אפשר תצוגת PivotTable לא
אפשר תצוגת PivotChart לא
פסי גלילה ללא
בוררי רשומות לא
לחצני ניווט לא
סגנון גבול דו-שיח
  1. עבור כל פרמטר שברצונך שהטופס יאסוף, לחץ על תיבת טקסט בקבוצה פקדים בכרטיסיה עיצוב אובייקט.
  2. הגדר את המאפיינים עבור תיבות הטקסט, כפי שמוצג בטבלה הבאה.
מאפיין הגדרה
שם הזן שם המתאר את הפרמטר, לדוגמה, BeginningDate.
עיצוב בחר עיצוב המשקף את סוג הנתונים של שדה הפרמטר. לדוגמה, בחר באפשרות Medium Date עבור שדה תאריך.
  1. שמור את הטופס ותן לו שם, כגון Parameter Collector.

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

שלב 2: יצירת מודול המכיל פונקציה הבודקת אם טופס כבר נטען

  1. בכרטיסיה יצירה, בקבוצה אחר, לחץ על מודול. אם פקודה זו אינה זמינה, לחץ על החץ שמתחת ללחצנים מאקרו או מודול מחלקהולאחר מכן לחץ על מודול.

מודול חדש נפתח בעורך Visual Basic.

  1. הקלד או הדבק את הקוד הבא בעורך Visual Basic:
Function IsLoaded(ByVal strFormName As String) As Boolean

Dim oAccessObject As AccessObject
Set oAccessObject = CurrentProject.AllForms(strFormName)

If oAccessObject.IsLoaded Then
  If oAccessObject.CurrentView <> acCurViewDesign Then
    IsLoaded = True
  End If
End If

שלב 3: יצירת קבוצת מאקרו המפקחת על הטופס Parameter Collector

  1. בכרטיסיה יצירה, בקבוצה אחר, לחץ על מאקרו. אם פקודה זו אינה זמינה, לחץ על החץ שמתחת ללחצנים מודול או מודול מחלקה ולאחר מכן לחץ על מאקרו.
  1. בכרטיסיה עיצוב, בקבוצה הצגה/הסתרה, לחץ על הצג את כל הפעולות.
  1. בכרטיסיה עיצוב, בקבוצה הצגה/הסתרה, לחץ על שמות מאקרו כדי להציג את העמודה שם מאקרו.
  1. הקלד שם מאקרו, כגון Open Dialog בעמודה שם המאקרו.
  2. לחץ על התא בעמודה פעולה לצד שם המאקרו החדש, לחץ על החץ הנפתח ולאחר מכן לחץ על OpenForm.
  3. ברשת ארגומנטים של הפעולה (הממוקמת מתחת לרשת עיצוב המאקרו), הגדר את הארגומנטים של הפעולה (ארגומנט פעולה: מידע נוסף שנדרש עבור פעולות מאקרו מסוימות. לדוגמה, האובייקט המושפע מהפעולה או מהתנאים המיוחדים בהם הפעולה מתבצעת.), כפי שמוצג בטבלה הבאה.
ארגומנט הגדרה
שם טופס הזן את השם שנתת לטופס הפרמטרים של הדוח.
תצוגה טופס
מצב הנתונים עריכה
מצב החלון דו-שיח
  1. בתא פעולה הבא, לחץ על CancelEvent כדי להוסיף פעולה שניה. פעולה זו תשמש לביטול תצוגה מקדימה או הדפסה של הדוח כאשר משתמש לוחץ על הלחצן ביטול בטופס.
  2. אם העמודה תנאי אינה מוצגת, לחץ על תנאים בקבוצה הצג/הסתר בכרטיסיה עיצוב.
  3. בעמודה תנאי, הקלד Not IsLoaded ולאחריה סוגר פותח ומרכאה ולאחריה השם שנתת לטופס הפרמטרים של הדוח, ולאחר מכן מרכאה וסוגר סיום. לדוגמה, אם הטופס נקרא Parameter Collector, הקלד Not IsLoaded("Parameter Collector")‎.
  4. בשורה הריקה הבאה של רשת עיצוב המאקרו, הקלד שם מאקרו חדש, כגון Close Dialog.
  5. בתא פעולה הסמוך, לחץ על החץ הנפתח ולאחר מכן לחץ על Close. הטופס ישתמש בפעולה זו כדי לסגור את טופס הפרמטרים של הדוח. הגדר את הארגומנטים של הפעולה שלו, כפי שמוצג בטבלה הבאה.
ארגומנט הגדרה
סוג האובייקט טופס
שם אובייקט הזן את השם שנתת לטופס הפרמטרים של הדוח.
שמור לא
  1. בשורה הריקה הבאה של רשת עיצוב המאקרו, הקלד שם מאקרו חדש, כגון OK. בתא פעולה הסמוך, לחץ על החץ הנפתח ולאחר מכן לחץ על SetValue. בפעולה זו תשמש להסתרת טופס הפרמטרים של הדוח כאשר המשתמש לוחץ על אישור. הגדר את ארגומנטי הפעולה שלו, כפי שמוצג בטבלה הבאה.
ארגומנט הגדרה
פריט [גלוי]
ביטוי לא
  1. בשורה הריקה הבאה של רשת עיצוב המאקרו, הקלד שם מאקרו חדש, כגון Cancel. בתא הסמוך פעולה, לחץ על החץ הנפתח ולאחר מכן לחץ על Close. פעולה זו תשמש לסגירת טופס הפרמטרים של הדוח כאשר המשתמש לוחץ על ביטול. הגדר את ארגומנטי הפעולה שלו, כפי שמוצג בטבלה הבאה.
ארגומנט הגדרה
סוג האובייקט טופס
שם אובייקט הזן את השם שנתת לטופס הפרמטרים של הדוח.
שמור לא
  1. שמור וסגור את קבוצת המאקרו. תן שם לקבוצת המאקרו, לדוגמה, Parameter Collector.

שלב 4: הוספת לחצני הפקודות אישור וביטול לטופס

  1. פתח שוב את הטופס Parameter Collector בתצוגת עיצוב.
  2. ודא כי לא נבחר השתמש באשפי בקרה בקבוצה פקדים בכרטיסיה עיצוב אובייקט.
  3. בכרטיסיה עיצוב, בקבוצה פקדים, לחץ על לחצן.
  1. מקם את המצביע מתחת לתיבות הטקסט בטופס ולאחר מכן גרור כדי ליצור את לחצן הפקודה אישור.
  2. אם גליון המאפיינים אינו גלוי, הקש F4 כדי להציגו.
  3. הגדר את המאפיינים של לחצן אישור, כפי שמוצג בטבלה הבאה.
מאפיין הגדרה
שם אישור
כיתוב אישור
ברירת מחדל כן
בעת לחיצה הזן את שם המאקרו, לדוגמה, Parameter Collector.OK.
  1. צור את לחצן הפקודה ביטול והגדר את מאפייניו, כפי שמוצג בטבלה הבאה.
מאפיין הגדרה
שם ביטול
כיתוב ביטול
בעת לחיצה הזן את שם המאקרו, לדוגמה, Parameter Collector.Cancel.
  1. שמור וסגור את הטופס.

שלב 5: הזנת הקריטריונים בשאילתה המשמשת כבסיס או בפרוצדורה המאוחסנת של הדוח.

  1. פתח את השאילתה המשמשת כבסיס או את הפרוצדורה המאוחסנת של הדוח בתצוגת עיצוב.
  2. הזן את הקריטריונים עבור הנתונים. בביטוי (ביטוי: כל שילוב של אופרטורים מתמטיים או לוגיים, קבועים, פונקציות ושמות של שדות, פקדים ומאפיינים המחושבים לערך בודד. ביטויים יכולים לבצע חישובים, לטפל בתווים או לבדוק נתונים.), השתמש באובייקט Forms, בשם הטופס ובשמות הפקדים (פקד: אובייקט של ממשק משתמש גרפי, כגון תיבת טקסט, תיבת סימון, פס גלילה או לחצן פקודה, המאפשרים למשתמשים לשלוט בתוכנית. פקדים משמשים להצגת נתונים או אפשרויות, לביצוע פעולה או להפיכת ממשק המשתמש לקל יותר לקריאה.) בקריטריונים.
    • לדוגמה, במסד נתונים של Access‏ (‎.accdb או ‎.mdb), עבור טופס הנקרא Parameter Collector, השתמש בביטוי הבא כדי להפנות לפקדים בשם Beginning Date (תאריך התחלה) ו- Ending Date (תאריך סיום) בשאילתה:

Between [Forms]![Parameter Collector]![Beginning Date] And [Forms]![Parameter Collector]![Ending Date]

@Beginning_Date datetime, @Ending_Date datetime

לאחר מכן באפשרותך להשתמש בפרמטרים אלה במשפט WHERE. לדוגמה:

WHERE Sales.ShippedDate Between @Beginning_Date And @Ending_Date

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

שלב 6: בפרוייקט Access, הגדרת מאפיין פרמטרים של קלט בדוח הראשי

  1. פתח את הדוח בתצוגת עיצוב.
  2. הגדר את המאפיין פרמטרים של קלט כמחרוזת המציינת את הפרמטרים המועברים לפרוצדורה המאוחסנת שאליה הדוח מאוגד.

כמו בדוגמה שלהלן, המחרוזת חייבת להיות ביטוי הכולל את הפרמטרים שציינת בפרוצדורה המאוחסנת וגם את ההפניה לפקדים בתיבת הדו-שיח:

@Beginning_date datetime = [Forms]![Parameter Collector]![Beginning Date], @Ending_date datetime = [Forms]![Parameter Collector]![Ending Date]

שלב 7: הצמדת פקודות המאקרו לדוח הראשי.

  1. פתח את הדוח בתצוגת עיצוב.
  2. אם גליון המאפיינים אינו גלוי, הקש F4 כדי להציגו.
  3. הגדר את מאפייני הדוח, כפי שמוצג בטבלה הבאה.
מאפיין הגדרה
בעת פתיחה הקלד את שם המאקרו הפותח את הטופס, לדוגמה, Parameter Collector.Open Dialog.
בעת סגירה הקלד את שם המאקרו הסוגר את הטופס, לדוגמה, Parameter Collector.Close Dialog.

    לראש הדף לראש הדף

     
     
    חל על:
    Access 2007