בעיה באקסס

harisson

New member
בעיה באקסס

שלום! הבעיה שלי היא כדלהלן: יש לי טופס ובו רשומה דינאמית. הרשומה אמורה להציג רשימת תלמידים בקורסים. ברצוני להציג אך ורק רשימת תלמידים בקורס מסויים. את הקורס ניתן לבחור מCOMBO BOX שנקרא COURSE. חשבתי אולי להכניס לROWSOURCE של הטופס שאילתה כזאת: Select * From StudentCourses Where course id="& Me.Course & ";"9"(את ה-9 שמתי כדי שהכיתוב יצא ברור). העניין הוא, שאני צריך להכניס את השאילתה לתוך ROWSOURCE של הטופס בSUB מסויים (זה שמופעל כשהטופס נפתח) העניין הוא שלפי התיבה שנפתחת ומראה את נתוני האובייקט - אין לFORM תכונה כזו... למישהו יש מושג מה הבעיה, או דרך אחרת לביצוע המשימה (חשבתי אולי ליצור שאילתה בדרך הרגילה ולשים פרמטר בקריטריון. הבעיה היא שאין לי מושג איך להעביר את הערך של הקומבו BOX לשאילתה...) תודה ! ביי
 

אלון_פ

New member
בעיה באקסס - פתרון

הבעיה נובעת מאחר ואקסס מנסה לבנות את הטופם לפני שהערך -Combo box התמלא ואין לו נתון להתייחס אליו. הפתרון - בטופס השתמש ב - RowSource ללא התנאי. הוסף לטופס פרוצדורת VB אשר תכלול את הפקודה: me.rowsource = "select ....a me.requery קרא לפרוצדורה ז100 אלפיות שניה לאחר שהטופס עולה באמצעות שימוש בארוע TimerInterval
 

גרי רשף

New member
אני לא בטוח שזה פתרון אידאלי

1. פתרונות כאלה הם "טלאי" שעדיף לא להשתמש בו. ההצעה המתוארת מחייבת ליצור ארוע שיופעל כל אלפית שנייה, וגם אם הארוע יסתיים לאחר בדיקת התנאי הראשון בו- הוא עדיין יתבצע 1000 פעם בשניה. עומס מיותר על המערכת. 2. אינני זוכר כרגע מה סדר הארועים בפתיחה: Open, Load, Get Focus, Activate וכו´. יתכן ואחד מהם יתן את הפתרון המבוקש. אפשר למצוא את זה בקלות: בכל ארוע כזה לשים MsgBox מתאים ולראות באיזה סדר הם מופיעים (או לחפש בספרים..). 3. אפשר להשאיר את הקומבו במצב Enabled=False עד שיוכנס ערך לפקד המופיע ב-RowSource שלו ואז לאפשר אותו באמצעות ארוע After Update.
 
למעלה