שאלה נוספת בaccess

InnerKid

New member
שאלה נוספת בaccess

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

yossin

New member
מתי הבעיה קורית ?

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

InnerKid

New member
לא, זה לא רק בהקמת לקוח חדש

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

yossin

New member
בטופס ההזמנה

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

InnerKid

New member
אז ככה...

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

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

InnerKid

New member
נכון, אתה צודק, אבל ניסיתי את זה...

הבנת נכון. אני יודע שאני חייב לסגור את הטופס הראשון, של הלקוחות, ואני גם עושה את זה בקוד של לחיצה על הכפתור, אבל הבעיה היא לא זאת. המסך שמתקבל הוא לא לבן, אלא התת טופס עצמו, רק שהשדות ריקים ! כשאני מקליק עם העבר לתוך התת טופס (לתת לו פוקוס) אז אני גם מקבל את הפרטים שאני צריך. אני רוצה להימנע מללחוץ על התת טופס כדי לקבל את הפרטים בו. יש אפשרות כזאת? אולי להוסיף קוד לטופס אב ב on-load/open ?
 
אני חושב שאתה מתחרבש סתם....

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

InnerKid

New member
טופס ההזמנות הוא טופס נפרד

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

yossin

New member
בעצם, למה אתה צריך תת טופס ?

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

InnerKid

New member
אני מסכים באופן עקרוני לזה שלעבוד

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

yossin

New member
dlookup

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

InnerKid

New member
זה לא מה שאני צריך...

אני צריך להכניס ערך לתוך טבלה ולא לשלוף ערך מתוך טבלה...
 

א ו ר ח ת

New member
גם לפי דעתי סתם הסתבכת.....

אבל תנסה ריפרש לטופס הבן כאשר טופס האב נטען .......
 

yossin

New member
אני רוצה להבין

בטופס האב שלך אתה מזין את פרטי ההזמנה ובטופס הבן שלך אתה מציג את פרטי הלקוח עבורו אתה עושה את ההזמנה. לא ככה ? אם זה ככה, אז ה- DLOOKUP יעזור לך אם לא, אז לפחות אני צריך הסבר נוסף :)
 

InnerKid

New member
אכן כן, אבל בכל מקרה - בסופו של דבר

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