שאלה באקסס (2010)

יעליעלי

New member
שאלה באקסס (2010)

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

יעליעלי

New member
תודה רבה :)

הבנתי את הרעיון, ינוסה בקרוב. האם יש מגבלה למספר ה DMAX שאפשר להזין? (נניח שארצה לא שני תאריכים אחרונים אלא שלושה...)
 

כלליים

New member
את יכול לנסות..

אחרי שתביני את הרעיון תוכלי לשרשר את זה לMAX השלישי. במקרים מורכבים מאלו, יש להתשתמש בשאילתת משנה עם TOP
 

כלליים

New member
והנה דוגמא לשיטת הTOP

השאילתה הבאה שולפת את התאריך החמישי:
SELECT Min(תאריך) AS MAX_5 FROM (SELECT TOP 5 מנוי FROM חשבוניות ORDER BY תאריך DESC) AS InneQuery​
 

כלליים

New member
הקוד המתוקן

SELECT Min(תאריך) AS MAX_5 FROM (SELECT TOP 5 תאריך FROM חשבוניות ORDER BY תאריך DESC) AS InneQuery​
 
לא הצליח אצלי - הודעת שגיאה

היי נסיתי את הפתרון הנזכר לעיל, אך במקום ערך בשדה, אני מקבל שגיאה #ERROR, להלן הקוד כפי שרשמתי : =DMax("CallDate","ElectricEndWaterCounters","<" & DMax("CallDate","ElectricEndWaterCounters")) את הקוד הנ"ל רשמתי בשדה "ערך ברירת מחדל" שבמאפיני השדה שבו אני רוצה את התוצאה
 

0 אור 0

New member
ומה הנתון בשדה עצמו? זה שדה לא מאוגד ?

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