כאשר אתה משתמש ב- Microsoft Access, פעמים רבות עליך לעבוד עם ערכים שאינם נמצאים ישירות בנתונים שלך. לדוגמה, עליך לחשב את מס המכירה של הזמנה או את הערך הכולל של ההזמנה עצמה. באפשרותך לחשב ערכים אלה באמצעות ביטויים. כדי להשתמש בביטויים, עליך לכתוב אותם בתחביר הנכון. תחביר הוא ערכת הכללים שלפיה מילים וסימנים בביטוי משולבים באופן נכון. בהתחלה, מעט מסובך לקרוא ביטויים ב- Access. אך הבנה יסודית של התחביר בביטויים ותרגול קצר הופכים זאת להרבה יותר פשוט.
במאמר זה
מבט כולל על ביטויים
ביטוי הוא שילוב של חלק מהרכיבים הבאים או של כולם: פונקציות מוכללות או מוגדרות על-ידי המשתמש, מזהים, אופרטורים, ערכים וקבועים המוערכים לערך בודד.
לדוגמה, הביטוי הבא מכיל רכיבים נפוצים:
=Sum([Purchase Price])*0.08
-
Sum() הוא פונקציה מוכללת
-
[Purchase Price] הוא מזהה
-
* הוא אופרטור מתמטי
-
0.08 הוא קבוע
ניתן להשתמש בביטוי זה בתיבת טקסט בכותרת תחתונה של טופס או של דוח לצורך חישוב מס מכירה עבור קבוצת פריטים.
ביטויים יכולים להיות מורכבים הרבה יותר או פשוטים הרבה יותר מדוגמה זו. לדוגמה, ביטוי בוליאני זה מורכב מאופרטור ומקבוע בלבד:
>0
ביטוי זה מחזיר:
-
True כאשר הוא מושווה למספר גדול מ- 0.
-
False כאשר הוא מושווה למספר קטן מ- 0.
ניתן להשתמש בביטוי זה במאפיין כלל אימות של שדה פקד או טבלה כדי להבטיח שיוזנו ערכים חיוביים בלבד. ביטויים נמצאים בשימוש במקומות רבים לצורך ביצוע חישובים, טיפול בתווים או בדיקת נתונים. טבלאות, שאילתות, טפסים, דוחות ופקודות מאקרו - לכולם יש מאפיינים המקבלים ביטוי. לדוגמה, ניתן להשתמש בביטויים במאפיינים מקור פקד וערך ברירת מחדל של פקד. ניתן להשתמש בביטויים גם במאפיין כלל אימות של שדה טבלה.
רכיבי ביטויים
כדי לבנות ביטוי, עליך לשלב מזהים באמצעות פונקציות, אופרטורים, קבועים וערכים. כל ביטוי חוקי חייב להכיל פונקציה אחת או מזהה אחד לפחות, ויכול להכיל גם קבועים או אופרטורים. ניתן גם להשתמש בביטוי כחלק מביטוי אחר - בדרך כלל כארגומנט של פונקציה. דבר זה נקרא קינון של ביטוי.
-
מזהים התבנית הכללית היא:
[Collection name]![Object name].[Property name]
עליך לציין רק מספר מספק של חלקי מזהה כדי להפוך אותו לייחודי בהקשר של הביטוי. לעתים קרובות קורה שמזהה מסוים מופיע בתבנית [Object name].
-
פונקציות התבנית הכללית היא:
Function(argument, argument)
אחד מהארגומנטים הוא בדרך כלל מזהה או ביטוי. פונקציות מסוימות אינן דורשות ארגומנטים. לפני השימוש בפונקציה מסוימת, בדוק את התחביר שלה. לקבלת מידע נוסף, ראה פונקציות (מסודרות לפי קטגוריה).
-
אופרטורים התבנית הכללית היא:
Identifier operator identifier
יש יוצאי דופן בתבנית זו, כפי שמפורט בסעיף אופרטורים.
-
קבועים התבנית הכללית היא:
Identifier comparison_operator constant
-
ערכים ערכים יכולים להופיע במקומות רבים בביטוי.
אובייקטים, אוספים ומאפיינים
כל הטבלאות, השאילתות, הטפסים, הדוחות והשדות במסד נתונים של Access מוכרים בנפרד כאובייקטים. כל אובייקט הוא בעל שם. לאובייקטים מסוימים כבר יש שם, למשל הטבלה Contacts במסד נתונים שנוצר מתבנית Contacts של Microsoft Office Access. בעת יצירת אובייקט חדש, אתה מעניק לו שם.
קבוצה המכילה את כל החברים מסוג מסוים של אובייקט מוכרת כאוסף. לדוגמה, קבוצה המכילה את כל הטבלאות במסד נתונים היא אוסף. אובייקטים מסוימים שהם חברים באוסף במסד הנתונים שלך יכולים גם להיות אוספים המכילים אובייקטים אחרים. לדוגמה, אובייקט טבלה הוא אוסף המכיל אובייקטי שדה.
אובייקטים מכילים מאפיינים, אשר מתארים ומספקים דרך לשנות את מאפייני האובייקט. לדוגמה, אובייקט שאילתה מכיל מאפיין תצוגת ברירת מחדל המתאר ומאפשר לך לציין כיצד תופיע השאילתה בעת הפעלתה.
הדיאגרמה הבאה מתארת את קשרי הגומלין בין אוספים, אובייקטים ומאפיינים:
|
3 מאפיין 2 אובייקט 1 אוסף |
מזהים
בעת שימוש באובייקט, באוסף או במאפיין בביטוי, אתה מפנה אל אותו רכיב על-ידי שימוש במזהה. מזהה כולל את שם הרכיב שאתה מזהה וגם את שם הרכיב שאליו הוא שייך. לדוגמה, המזהה של שדה כולל את שם השדה ואת שם הטבלה שאליה שייך השדה. דוגמה למזהה מסוג זה:
[Customers]![BirthDate]
במקרים מסוימים, שם של רכיב פועל בעצמו כמזהה. הדבר נכון כאשר שם הרכיב ייחודי בהקשר של הביטוי שאתה יוצר. שאר המזהה משתמע לפי ההקשר. לדוגמה, אם אתה מעצב שאילתה המשתמשת בטבלה אחת בלבד, שמות השדות פועלים בתור מזהים, מכיוון ששמות השדות בטבלה חייבים להיות ייחודיים בטבלה זו. מכיוון שאתה משתמש בטבלה אחת בלבד, שם הטבלה משתמע בכל מזהה שאתה משתמש בו בשאילתה כדי להפנות לשדה.
במקרים אחרים, עליך לציין במפורש את חלקי המזהה כדי שההפניה תעבוד. הדבר נכון כאשר מזהה אינו ייחודי בהקשר של הביטוי. במקרה של אי-בהירות, עליך לציין באופן מפורש מספיק חלקים של המזהה כדי להפוך אותו לייחודי בהקשר. לדוגמה, נניח שאתה מעצב שאילתה המשתמשת בטבלה בשם Products וטבלה בשם Orders ושתי הטבלאות כוללות שדה בשם ProductID. במקרה כזה, המזהה שבו אתה משתמש בשאילתה כדי להפנות לאחד משני השדות ProductID חייב לכלול את שם הטבלה בנוסף לשם השדה. לדוגמה:
[Products]![ProductID]
אופרטורים של מזהה קיימים שלושה אופרטורים שניתן להשתמש בהם במזהה:
-
אופרטור סימן קריאה (!)
-
אופרטור נקודה (.)
-
אופרטור סוגריים מרובעים ([ ])
עליך להשתמש באופרטורים אלה על-ידי הקפת כל חלק של המזהה בסוגריים מרובעים ולאחר מכן צירופם על-ידי שימוש באופרטור של סימן קריאה או נקודה. לדוגמה, ניתן לבטא מזהה עבור שדה בשם Last Name בטבלה בשם Employees בתור [Employees]![Last Name]. אופרטור סימן הקריאה מורה ל- Access שמה שמופיע לאחר מכן הוא אובייקט השייך לאוסף המקדים את אופרטור סימן הקריאה. במקרה זה, [Last Name] הוא אובייקט שדה השייך לאוסף [Employees], המהווה בעצמו אובייקט של טבלה.
למעשה, אינך חייב תמיד להקליד סוגריים מרובעים סביב מזהה או מזהה חלקי. אם אין רווחים או תווים מיוחדים אחרים במזהה, Access מוסיף באופן אוטומטי את הסוגריים בעת קריאת הביטוי. עם זאת, מומלץ להקליד את הסוגריים בעצמך - כך תימנע משגיאות ותקבל סימן חזותי לכך שחלק מסוים של ביטוי הוא מזהה.
פונקציות, אופרטורים, קבועים וערכים
כדי ליצור ביטוי, אתה זקוק ליותר ממזהים - אתה צריך לבצע פעולה כלשהי. עליך להשתמש בפונקציות, אופרטורים וקבועים כדי לבצע פעולות בביטוי.
פונקציות
פונקציה היא פרוצדורה שניתן להשתמש בה בביטוי. פונקציות מסוימות, כגון Date, אינן דורשות קלט על מנת לפעול. עם זאת, מרבית הפונקציות מחייבות הזנת קלט, המכונה ארגומנטים.
בדוגמה המוצגת בתחילת המאמר, הפונקציה DatePart משתמשת בשני ארגומנטים: ארגומנט מרווח זמן, עם ערך של "yyyy" וארגומנט תאריך, עם ערך של [Customers]![BirthDate]. הפונקציה DatePart דורשת לפחות את שני הארגומנטים הללו (מרווח זמן ותאריך), אך יכולה לקבל עד ארבעה ארגומנטים.
הרשימה הבאה מציגה כמה פונקציות הנמצאות בשימוש תכוף בביטויים. לחץ על הקישור עבור כל פונקציה לקבלת מידע נוסף אודות התחביר שבו עליך להשתמש עם פונקציה זו.
-
הפונקציה Date משמשת להוספה של תאריך המערכת הנוכחי לביטוי. בדרך כלל נעשה בה שימוש עם הפונקציה Format וכן עם מזהי שדה עבור שדות המכילים נתוני תאריך/שעה.
=Date()
-
הפונקציה DatePart משמשת לקביעה או לחילוץ חלק של תאריך - בדרך כלל תאריך המתקבל ממזהה שדה, אך לעתים ערך תאריך המוחזר על-ידי פונקציה אחרת, כגון Date.
DatePart ( "yyyy", Date())
-
הפונקציה DateDiff משמשת לקביעת ההפרש בין שני תאריכים - בדרך כלל בין תאריך המתקבל ממזהה שדה לתאריך המתקבל על-ידי שימוש בפונקציה Date.
=DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10
-
הפונקציה Format משמשת להחלה של תבנית על מזהה ועל התוצאות של פונקציה אחרת.
Format([Date],"ww")=Format(Now(),"ww")-1
-
הפונקציה IIf משמשת להערכה של ביטוי כ- True או כ- False ולאחר מכן להחזרה של ערך אחד אם הביטוי מוערך כ- True ושל ערך אחר אם הביטוי מוערך כ- False.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
-
הפונקציה InStr משמשת לחיפוש המיקום של תו או מחרוזת בתוך מחרוזת אחרת. המחרוזת שהמערכת מחפשת מתקבלת בדרך כלל ממזהה שדה.
InStr(1,[IPAddress],".")
-
הפונקציות Left, Mid ו- Right משמשות לחילוץ תווים ממחרוזת, החל מהתו השמאלי ביותר (Left), מיקום ספציפי באמצע (Mid) או התו הימני ביותר (Right). נעשה בהן שימוש עם הפונקציה InStr. המחרוזת שממנה פונקציות אלה מחלצות תווים מתקבלת בדרך כלל ממזהה שדה.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
לקבלת רשימת פונקציות, ראה פונקציות (מסודרות לפי קטגוריות).
אופרטורים
אופרטור הוא מילה או סימן המציינים קשרי גומלין אריתמטיים או לוגיים ספציפיים בין שאר הרכיבים של ביטוי. אופרטורים יכולים להיות:
-
אריתמטיים, כגון סימן החיבור (+).
-
השוואתיים, כגון סימן שוויון (=).
-
לוגיים, כגון Not.
-
שרשור, כגון &.
-
מיוחדים, כגון Like.
אופרטורים משמשים בדרך כלל לציון קשרי גומלין בין שני מזהים. הטבלאות הבאות מתארות את האופרטורים שבהם ניתן להשתמש בביטויים של Access.
אריתמטיים
עליך להשתמש באופרטורים האריתמטיים כדי לחשב ערך משני מספרים או יותר, או כדי לשנות סימן של מספר מחיובי לשלילי.
אופרטור |
מטרה |
דוגמה |
---|---|---|
+ |
חבר שני מספרים. |
[סכום ביניים]+[מס מכירות] |
- |
חפש את ההפרש בין שני מספרים או ציין את הערך השלילי של המספר. |
[מחיר]-[הנחה] |
* |
הכפל שני מספרים. |
[כמות]*[מחיר] |
/ |
חלק את המספר הראשון במספר השני. |
[סכום]/[מספר פריטים] |
\ |
עגל את שני המספרים למספרים שלמים, חלק את המספר הראשון במספר השני ולאחר מכן קצר את התוצאה למספר שלם. |
[אורחים רשומים]\[חדרים] |
Mod |
חלק את המספר הראשון במספר השני והחזר רק את השארית. |
[אורחים רשומים] Mod [חדרים] |
^ |
העלה מספר בחזקת מעריך. |
מספר^מעריך |
השוואתיים
אופרטורים של השוואה משמשים לעריכת השוואה בין ערכים ולהחזרת תוצאה שהיא True, False או Null (ערך לא ידוע).
אופרטור |
מטרה |
---|---|
< |
קובע אם הערך הראשון קטן מהערך השני. |
<= |
קובע אם הערך הראשון קטן מהערך השני או שווה לו. |
> |
קובע אם הערך הראשון גדול מהערך השני. |
>= |
קובע אם הערך הראשון גדול מהערך השני או שווה לו. |
= |
קובע אם הערך הראשון שווה לערך השני. |
<> |
קובע אם הערך הראשון אינו שווה לערך השני. |
בכל המקרים, אם הערך הראשון או הערך השני הוא Null, גם התוצאה תהיה Null. מאחר ש- Null מציין ערך לא ידוע, גם התוצאה של כל השוואה עם ערך Null אינה ידועה.
לוגיים
עליך להשתמש באופרטורים לוגיים כדי לשלב שני ערכים ולהחזיר תוצאת True, False או Null. אתה עשוי גם להיתקל בכינוי 'אופרטורים בוליאניים' במקום אופרטורים לוגיים.
אופרטור |
שימוש |
תיאור |
---|---|---|
And |
Expr1 And Expr2 |
נכון כאשר הערכים Expr1 ו- Expr2 הם True. |
Or |
Expr1 Or Expr2 |
נכון כאשר אחד מהערכים, Expr1 או Expr2, הוא True. |
Eqv |
Expr1 Eqv Expr2 |
נכון כאשר גם Expr1 וגם Expr2 הם True, או כאשר גם Expr1 וגם Expr2 הם Flase. |
Not |
Not Expr |
נכון כאשר Expr אינו True. |
Xor |
Expr1 Xor Expr2 |
נכון כאשר Expr1 הוא True או כאשר Expr2 הוא True, אך לא שניהם. |
שרשור
אופרטורים של שרשור משמשים לשילוב של שני ערכי טקסט למחרוזת אחת.
אופרטור |
שימוש |
תיאור |
---|---|---|
& |
string1 & string2 |
משלב שתי מחרוזות ליצירת מחרוזת אחת. |
+ |
string1 + string2 |
משלב שתי מחרוזות ליצירת מחרוזת אחת והפצת ערכי Null. |
מיוחדים
האופרטורים המיוחדים נמצאים בשימוש כפי שמתואר בטבלה הבאה.
אופרטור |
תיאור |
לקבלת מידע נוסף |
---|---|---|
Is Null or Is Not Null |
קובע אם ערך הוא Null או Not Null. |
|
Like "pattern" |
מתאים ערכי מחרוזת באמצעות האופרטורים הכלליים ? ו- *. |
|
Between val1 And val2 |
קובע אם ערך נומרי או ערך תאריך נמצא בתוך טווח מסוים. |
|
In(string1,string2...) |
קובע אם ערך מחרוזת נמצא בתוך קבוצה של ערכי מחרוזת. |
קבועים
קבוע הוא ערך ידוע שאינו משתנה ושניתן להשתמש בו בביטוי. ב- Access ישנם ארבעה קבועים הנמצאים בשימוש תכוף:
-
True מציין שהדבר הוא אמת מבחינה לוגית.
-
False מציין שהדבר הוא שקר מבחינה לוגית.
-
Null מציין שאין ערך ידוע.
-
"" (empty string) מציין ערך שידוע כערך ריק.
קבועים יכולים לשמש כארגומנטים לפונקציה ויכולים לשמש בביטוי כחלק מקריטריון. לדוגמה, ניתן להשתמש בקבוע מחרוזת ריקה ("") כחלק מקריטריון עבור עמודה בשאילתה כדי להעריך את ערכי השדה עבור עמודה זו, על-ידי הזנת הסימן הבא כקריטריון: <>"". בדוגמה זו, <> הוא אופרטור ו- "" הוא קבוע. כאשר משתמשים בהם יחד, הם מציינים שיש להשוות את המזהה שעליו הם מוחלים למחרוזת ריקה. הביטוי המתקבל הוא True כאשר ערך המזהה הוא כל ערך שאינו מחרוזת ריקה.
השתמש בקבוע Null בזהירות. ברוב המקרים, השימוש ב- Null בשילוב עם אופרטור של השוואה יגרום לשגיאה. אם ברצונך להשוות ערך ל- Null בביטוי, השתמש באופרטור Is Null או באופרטור Is Not Null.
ערכים
באפשרותך להשתמש בערכים מילוליים בביטויים, כגון במספר 1,254 או במחרוזת "הזן מספר בין 1 ל- 10". באפשרותך גם להשתמש בערכים מספריים, שיכולים להיות סידרה של ספרות, כולל סימן ונקודה עשרונית, במידת הצורך. בהיעדר סימן, Access מניח שמדובר בערך חיובי. כדי להפוך ערך לשלילי, כלול את סימן החיסור (-). באפשרותך גם להשתמש בסימון מדעי. לשם כך, כלול "E" או "e" ואת הסימן של המעריך (לדוגמה, 1.0E-6).
בעת שימוש במחרוזות טקסט, מקם אותן בין מרכאות כדי לסייע להבטיח ש- Access יפרש אותן כהלכה. בנסיבות מסוימות, Access מספק את המירכאות עבורך. לדוגמה, בעת הקלדת טקסט בביטוי עבור כלל אימות או עבור קריטריוני שאילתה, Access מקיף את מחרוזות הטקסט שלך במרכאות באופן אוטומטי.
לדוגמה, אם תקליד את הטקסט Paris, Access יציג את הטקסט "Paris" בביטוי. אם ברצונך שביטוי יניב מחרוזת המוקפת במרכאות, הקף את המחרוזת המקוננת בגרשיים (') או בין שלושה סימני מרכאות כפולות ("). לדוגמה, הביטויים הבאים הם שווי-ערך:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
כדי להשתמש בערכי תאריך/שעה, הקף את הערכים בסימני סולמית (#). לדוגמה, כל הערכים הבאים הם ערכי תאריך/שעה חוקיים: #3-7-17#, #7-Mar-17# ו- #Mar-7-2017#. כאשר Access נתקל בערך תאריך/שעה חוקי המוקף בתווי #, הוא מטפל בערך זה באופן אוטומטי כמו בסוג הנתונים 'תאריך/שעה'.
מגבלת הקינון עבור ביטויים במסד נתונים באינטרנט היא 65
ביטויים המקוננים ביותר מ- 65 רמות של עומק אינם פועלים בדפדפן, ולכן לא מומלץ להשתמש בביטויים כאלה במסד נתונים של Access באינטרנט. לא תקבל הודעות שגיאה - הביטוי פשוט לא יפעל.
השימוש באופרטורים &, AND ו- OR יכול ליצור בשרת רמות קינון נוספות שאינן באות לידי ביטוי בלקוח Access. לדוגמה, הביטוי "a" & "b" & "c" אינו מקונן בבונה הביטויים, אך ב- SharePoint הוא הופך ל- concatenate.Db("a", concatenate.Db("b", "c") ). תרגום זה יוצר רמה אחת של קינון. שימוש באופרטורים עוקבים רבים של &, AND או OR בביטוי יחיד יכול לגרום לך לחרוג ממגבלת הקינון של השרת שהיא 65, דבר שיגרום לאי תפקוד של הביטוי בדפדפן.