התראה בטופס אקסס
-
@ארי אם אתה מריץ קוד כלשהו באירוע "אחרי עדכון", והקוד משנה את הערך של אחד הפקדים בטופס, אתה בעצם גורם לו לרוץ שוב בלולאה אינסופית, מה שגורם שגיאה.
כנ"ל לגבי האירוע "לפני עדכון", כמו שאולי שמת לב שהתחבטתי בפוסט הקודם.
אתה יכול לשנות את ערכי השדות המאוגדים, אבל לא את הערך בפקד עצמו.
לפעמים זה נגרם כי לא מקפידים לתת שם שונה לפקד ולשדה המאוגד אליו. -
@OdedDvir
יש לי פקד בטופס בשם 'נערך' (שגם מקושר לשדה בשם זה בטבלה), והיה קוד לאחר עדכון על חלק מהשדות בטופס שיתן ערך True בפקד הזה.
אבל לא היה קוד על הפקד עצמו שלאחר עדכון יעדכן את עצמו. אז לכאורה לא אמורה להיות לולאה אין סופית. לא?
מה שבאמת עשיתי בסוף (מניחוש, לא מידיעה) זה קוד אחד 'לאחר עדכון' על הטופס שישנה את הערך בטבלה ע"י שאילתת עדכון ולא את הפקד בטופס.
אז שאלתי היא: 1. למה התרחשה שגיאה אם לא אמורה להיות לולאה. ו2. האם מה שעשיתי זה באמת הפתרון הטוב ביותר?
תודה! -
@ארי אני לא יכול לענות על כך בלי לראות את הקוד, אבל אני יכול לתת לך כיוון:
ציינתי לעיל שברירת המחדל של אקסס היא לתת לפקדים שם זהה לשדה שאליו הם מאוגדים, וזה יכול ליצור את התופעה, כשאתה מתכוון בקוד לערוך את השדה המאוגד ישירות (תהליך שלא מפעיל את שני האירועים "לפני עדכון" ו-"אחרי עדכון") אך בעצם מה שקורה הוא שאתה עורך את תוכן הפקד, ולא מודע לכך שאתה מפעיל את שני האירועים הנ"ל. -
@OdedDvir הבנתי את העיקרון.
אני אבל שואל כך, היה לי קוד לאחר עדכון על פקד מוסים שאם הערך החדש שונה מהערך הישן שיסמן וי בפקד נערך.
אבל בפקד 'נערך' לא היה קוד לאחר עדכון.
ואם כך, למה שיהיה לולאה אינסופית, הרי ברגע שהוא סימן וי בפקד נערך הקוד נגמר.
אני טועה?