שאלה באקסס

blueeye

New member
שאלה באקסס

יש לי טופס שבו יש שדה שמכיל שנת לידה לידו יש שדה טקסט שמחשב את הגיל ע"פ תאריך נוכחי פחות שנת הלידה שהוזנה בטבלאות הגיל הוא לא שדה בטבלה ולכן אני לא יכול לעשות שאילתות ע"פ גיל כרגע האילתור הוא שאילה לפי שנת לידה מה שמאלץ לחשב לבד את שנת הלידה התואמת לגיל המבוקש...יש דרך לפתור את זה ולעשות שאילתה לפי הגיל ??
 

tberger

New member
שדות מחושבים

כמובן ב SQL ניתן להוסיף שדות מחושבים לתת להם שם ולהתיחס אליהם כשדות הקיימים בטבלה כלומר לחתוך לפיהם למיין וכו´. דוגמא: טבלה בשם TEMP עם שדות ID ו BIRTH_YEAR השאילתא הבאה נותנת את כל אלו שגילם 39 SELECT temp.ID, temp.Birth_Year, Year(Now())-[Birth_Year] AS age FROM temp WHERE (((Year(Now())-[Birth_Year])=39));
 

blueeye

New member
עדיין יש לי בעיה קטנה....

הוספתי את המשפט הבא : WHERE (((Year(Now())-[פרטים אישיים].[תאריך לידה])=[?] וזה עובד מצויין חוץ ממקרה בודד שבו הגיל הוא 112 כשאני שולף שיוויון כלומר מכניס ערך של 112 הוא מביא לי את האיש הזה וכאשר אני משנה ל סימן גדול מ90 הוא לא מופיע הוא מופיע לי כקטן מ 90 ניסיתי לבודד אותו ולראות איזה ערך הוא חושב שהגיל של אותו אחד והתוצאה היא 12 במקום 112 קצת מוזר שבשיוויון הוא מכיר בעובדה שאותו אדם הוא בן 112 אבל כשאני מנסה לשלוף את כל מי שגדול מ 50 למשל אז לא ..הוא רק מכיר בזה שהוא בן 12 בלבד...לא ידוע לי למה... יש רעיונות ? אגב בדקתי סתם לנסות ולראות כשאני שולף את כל מי שקטן מ 5 אני מקבל את כל מי שקטן מ 50... יש למישהו מושג למה ??
 
ודאי....

כיוון שהשימוש הוא בשתי ספרות אחרונות של שנה.... ולכן מומלץ להשתמש ב - Format כלומר....
WHERE (((Format(year(now()),"yyyy"))-(format(Year(DetailsTBL.[BirthDate]),"YYYY")))​
 
למעלה