עזרה באקסס
-
שלום לכולם
בניתי קובץ אקסס של תשלומים של לקוחות עם טופס שמאפשר להזין את את שם הלקוח בחלק העליון של הטופס, ובתחתית הטופס, בטופס משנה, מוצגת טבלה של כל התשלומים של אותו לקוח.
לנוחות המשתמש עשיתי את הטופס משנה בתצוגת גליון נתונים כדי שיהיה יותר קל לסנן ולהסתיר עמודות. הבעיה היא שאני רוצה לעשות תיבת טקסט על הטופס הזה שמציגה את הסכום של סך התשלומים של אותו לקוח שמוצגים בטופס משנה ואני לא מצליח.
ניסיתי לעשות SUM כמו בטופס עם טבלה רגילה ששם זה עובד (לא גליון נתונים!) והוא כותב לי שגיאה, ואם אני לא כותב SUM אלא רק את שם השדה של הסכום אז הוא מביא לי את הנתון שכתוב לי באותה רשומה בלבד ולא את סכום כל השדה.
השאלה איך עושים תיבת טקסט שתכתוב לי סך הכל על השדה הזה, לא אכפת לי אם זה יהיה על הטופס העליון או על הטופס משנה.דבר נוסף אני רוצה שיציג לי בכל שורה יתרה עדכנית לפי לקוח, האם יש אפשרות כזאת?
בתודה מראש לכל העונים
תודה רבה -
@דוד-החדש כתב בעזרה באקסס:
איך עושים תיבת טקסט שתכתוב לי סך הכל על השדה הזה, לא אכפת לי אם זה יהיה על הטופס העליון או על הטופס משנה.
אתה יכול לjחשב את הנתון הזה על ידי פונקציית התחום DSum(), וליצור תיבת טקסט עם נוסחא, לדוגמא:
DSum ( "ClientTotalSum", "ClientPayments", "ClientID=" & 4)
דבר נוסף אני רוצה שיציג לי בכל שורה יתרה עדכנית לפי לקוח, האם יש אפשרות כזאת?
צור שאילתת קיבוץ שמחשבת את הנתון הזה (וכוללת גם את השדות הרצויים לתצוגה) ותבסס את הטופס על השאילתא.
-
@OdedDvir כתב בעזרה באקסס:
אתה יכול לjחשב את הנתון הזה על ידי פונקציית התחום DSum(), וליצור תיבת טקסט עם נוסחא, לדוגמא:
DSum ( "ClientTotalSum", "ClientPayments", "ClientID=" & 4)ניסיתי לעשות את זה עכשיו ולא הצלחתי. אשמח אם תוכל קצת לפרט מה צריך לכתוב בכל חלק בנוסחה כדי שאני אדע להתאים לנתונים שלי. (יתרה עדכנית בכל שורה לפי שם לקוח)
צור שאילתת קיבוץ שמחשבת את הנתון הזה (וכוללת גם את השדות הרצויים לתצוגה) ותבסס את הטופס על השאילתא
ב"ה הצלחתי לעשות את זה. אבל הנקודה שיש לי כמה וכמה טפסים שכל אחד מסונן עם נתונים אחרים אז זה אומר שאני צריך לעשות שאילתה נפרדת לכל טופס?
תודה רבה רבה על כל העזרה!!
-
@דוד-החדש כתב בעזרה באקסס:
מה צריך לכתוב בכל חלק בנוסחה כדי שאני אדע להתאים לנתונים שלי. (יתרה עדכנית בכל שורה לפי שם לקוח)
זה לא נשמע תואם את שאלתך הראשונית, ממנה השתמע שאתה מבקש לסכם עמודה כלשהי בטופס המשנה, ולהציג את הסכום בתיבת טקסט.
לדוגמא, נניח שבטופס האב יצרת תיבה משולבת בשם cboSelectClientID, ובה המשתמש בוחר את שם הלקוח, וטופס המשנה מבוסס על השאילתאqryClientPayments
, והשדה של סכום התשלום נקראPaymentAmount
, צור תיבת טקסט בטופס האב, ותכניס במאפיין מקור הנתונים של תיבת הטקסט את הנוסחא הבאה:=DSum("PaymentAmount, "ClientPayments", "ClientID=" & cboSelectClientId.Value)
ולשאלתך השנייה:
זה אומר שאני צריך לעשות שאילתה נפרדת לכל טופס?
עדיף לכאורה לעשות שאילתא אחת המכילה את כל השדות האפשריים לתצוגה, ולהסתיר בה עמודות לפי הצורך.
-
לשאלה הראשונה
בתצוגת עיצוב של טופס המשנה, תכניס בכותרת התחתונה של הטופס תיבת טקסט ושם תעשה sum(סכום)
(על השדה 'סכום' או כל שם שדה שתתן, להיות במקור השאילתה, לא יכול להיות שדה מחושב בטופס)
תן שם לתיבת טקסט הזו לדוגמא 'סכוםסופי'
בטופס הראשי תפנה לפקד הזה ככה =טופסמשנה!סכוםסופיבצורה הזו, גם אם אתה משתמש בטופס משנה בתצוגת גליון נתונים, הוא יסכם לך כל נתון שתסנן בטופס המשנה.
-
@OdedDvir כתב בעזרה באקסס:
זה לא נשמע תואם את שאלתך הראשונית, ממנה השתמע שאתה מבקש לסכם עמודה כלשהי בטופס המשנה, ולהציג את הסכום בתיבת טקסט.
לדוגמא, נניח שבטופס האב יצרת תיבה משולבת בשם cboSelectClientID, ובה המשתמש בוחר את שם הלקוח, וטופס המשנה מבוסס על השאילתא qryClientPayments, והשדה של סכום התשלום נקרא PaymentAmount, צור תיבת טקסט בטופס האב, ותכניס במאפיין מקור הנתונים של תיבת הטקסט את הנוסחא הבאה:
=DSum("PaymentAmount, "ClientPayments", "ClientID=" & cboSelectClientId.Value)באמת לא הסברתי את עצמי.. אני מתכוין שאני רוצה להוסיף שדה בשאילתה / בטופס בתצוגת גליון נתונים (בעיקר אבל לא רק) שיציג לי יתרה עדכנית של כל לקוח לפי שורה בדומה לדפי עו"ש של בנק שמציג בכל שורה יתרה מעודכנת עד אותה שורה, רק שאני צריך ברשימה של מספר לקוחות שיציג יתרה עדכנית כנ"ל בכל שורה אבל לפי אותו שם לקוח לדוגמא אם יש לי 2 לקוחות:
ראובן 20 20
שמעון 30 30
ראובן 25 45
שמעון 20 50
כמובן שהטור הימני זה הנתונים החדשים והטור השמאלי הוא הטור המסכם לפי שם לקוח.@OdedDvir כתב בעזרה באקסס:
עדיף לכאורה לעשות שאילתא אחת המכילה את כל השדות האפשריים לתצוגה, ולהסתיר בה עמודות לפי הצורך.
נכון. זה רעיון הכי יעיל ופשוט. לפעמים צריך את המומחים כדי ללמוד איך עושים את זה הכי פשוט.....
תודה רבה על הכל!!
-
כן זה מה שהתכוונתי אני אנסה את זה.
דבר נוסף (אני מקוה שאחרון..)
יש לי כמה טפסים שיושבים על טבלה אחת של 10 שדות ובכל טופס יש 7 שדות שצריך למלא. הנקודה היא שבכל טופס יש 7 שדות שחלקם לא מופיעים בטפסים האחרים, ואני רוצה שיהיו חייבים להזין את כל השדות שיש בכל טופס רלוונטי.
הבעיה היא שאם אני עושה נדרש בטבלה הראשית על כל השדות אז כשאני מזין בטופס אחד שאין בו את כל השדות הוא לא נותן לי.
כלל אימות לא עובד כי כל עוד שלא הזנתי שום דבר אז מבחינתו הכלל אימות בכלל לא נכנס לפעולה.
האם יש אפשרות לחייב הזנת נתונים בפקדים מסויימים בטופס - אבל בלי לעשות "נדרש" בטבלה?תודה על כל העזרה והסיוע.
-
@דוד-החדש כתב בעזרה באקסס:
האם יש אפשרות לחייב הזנת נתונים בפקדים מסויימים בטופס - אבל בלי לעשות "נדרש" בטבלה?
תעשה לפני שמירת הרשומה בדיקה האם השדות הנדררשים מלאים בטופס
דוגמא:
If IsNull(Me.שם_השדה_הנדרש) Then MsgBox "שים לב!" & vbCrLf & "חובה למלאות...." , vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "כותרת ההודעה" End If