אקסס | בקשת עזרה עם פונקצייה IF
-
שלום וברכה
אני מנסה לבדוק בעמודה בשאילתה האם קיים שם פרטי בתוצאות השאילתה, א"כ שיציג לי בעמודה:שם פרטי: משה כהן
אני רשמתי ככה:IIf(Not IsNull([שם פרטי]),"שם פרטי:" & Chr(13) & [שם פרטי] & Chr(13),"")
בפועל גם אם אין ערך בעמודה של שם פרטי הוא כותב לי ככה:שם פרטי:
אני מבין שבעיה היא ב "" שכתבתי במקרה שהתנאי לא מתקיים, אבל באיזה עוד צורה ניתן לכתוב לו שיתן "ריק"?
תודה רבה -
צרי להוסיף "או שווה למחרוזת ריקה".
הפכתי לך את התנאי כי לדעתי זה יותר קריא:IIf([שם פרטי] IS NULL OR [שם פרטי] = "", "", "שם פרטי:" & Chr(13) & [שם פרטי] & Chr(13))
יש לציין שChr(13) נצרך לקפיצת שורה, אם אתה רוצה סתם רווח כתוב ככה:
IIf([שם פרטי] IS NULL OR [שם פרטי] = "", "", "שם פרטי: " & [שם פרטי])
-
@dovid תודה רבה!! עזר לי מאד!
ראיתי שגם אם אני כותב ככה:
IIf( [שם פרטי] = "", "", "שם פרטי:" & Chr(13) & [שם פרטי] & Chr(13))
זה נותן את אותה התוצאה, אשמח אם יהיה באפשרותך להסביר לי מה ההבדל בתנאי בין
[שם פרטי] = ""
לבין
[שם פרטי] IS NULL
הרי שניהם באים לבדוק האם הערך ריק, לא?
תודה רבה!
-
@חייםיודלביץ בתכנות יש הבדל בין ערך NULL לריק (=מחרוזת באורך 0).
במקרה שלך התאים ריקים אך לא NULL. -
תכתוב ככה:
iif(nz([שם פרטי],0)=0,"","שם פרטי: " & [שם פרטי]) 'זה הסדר הנכון, בעברית הוא הופך את זה: iif(nz([fName],0)=0,"","שם פרטי: " & [fName])
הפונקציה nz עם 0 בסוף, עושה שאם בשדה אין כלום זה מכניס 0
ואז, אם זה יוצא 0 הוא ישאיר ריק בגלל ""
עריכה:
לא שמתי לב שהפתרון של דוד עזר לך, (אחרי השאלה השניה שלך..).
אני משאיר, כי נ"ל שזה הפתרון האידאלי בכל בדיקה האם תא מכיל טקסט. -
@חייםיודלביץ כתב באקסס | בקשת עזרה עם פונקצייה IF:
זה הנקודה שלא הבנתי, מה ההבדל בין "" ל NULL , ומתי נכון להשתמש בכל אחד.