-
@odeddvir אמר בבניית טופס/דו"ח:
אל תשכח לבסס את הדוח על הטבלה של הנתונים (כמו שעשית בטופס).
את זה לא הצלחתי לעשות,
העתקתי את כל הטופס והדבקתי אותו בדו"ח ריק חדש שיצרתי, קיבלתי את אותה הצורה של הטופס בדו"ח,
אבל כאמור את הביסוס שכתבת לא בדיוק הבנתי איך אני עושה את זה.
עריכה: יש משהו שאני עדיין לא מבין מה אני עושה, תגיד לי מה לא בסדר במה שהבנתי.- בעיקרון הדו"ח מקבל נתונים מטבלה, ולכן בעיקרון המשתמש אמור למלאות את הנתונים שלו בטבלה ואז לייצר דו"ח. ומה שקורה שאני רק הכנתי טבלה כדי לקבל שדות (שדה אחת "שם העובד" ושדה מתחת למילוי), והנתונים מוזנים בתוך טופס, אז אם כן אני יכול בעצם לשמור את הטופס עצמו כ PDF, אז למה לי לייצר מזה דו"ח ואז לשלוח להדפסה?
- אני מאמין שזה חלק מהתהליך, איך יש קשר בין הדו"ח שאני עיצבתי, לבין הנתונים שמילאתי בטופס.
תודה רבה רבה
-
@שוהם307 על רגל אחת:
-
הרעיון העיקרי של טופס הוא לאפשר הקלדה נוחה יותר של הנתונים (מאשר הקלדה ישירות בטבלה). אם תרצה, זהו הממשק שדרכו המשתמש ניגש לטבלה.
כדי שהנתונים שאכניס\אשנה בטופס ישפיעו על הנתונים בטבלה עצמה, אני צריך לבסס את הטופס על הטבלה, כלומר: לציין שמקור הנתונים של הטופס - הוא הטבלה.
זה נעשה על ידי הגדרת המאפיין "מקור נתונים" בטופס להיות: שֵם הטבלה שבה נמצאים הנתונים. -
הרעיון העיקרי של דוח הוא רק להציג את הנתונים בצורה נעימה ומסודרת. אתה יוצר דוח כי את הדוח אפשר בקלות להפוך ל-PDF (את הטופס - לא כל כך)
למעשה, כבר כתבתי את הכל בקיצור למעלה:
טופס משמש בעיקר להקלדה או עריכת נתונים.
דוח משמש בעיקר להצגת נתונים, ואפשר בקלות לייצא אותו ל-PDF. -
-
@odeddvir אמר בבניית טופס/דו"ח:
כדי שהנתונים שאכניס\אשנה בטופס ישפיעו על הנתונים בטבלה עצמה
למה הכוונה? איך זה משפיע בדיוק על הטבלה? הרי הטבלה לא מתחילה להתמלאות בנתונים שהזנתי בטופס, אלא יש לי רק שמות של שדות בטופס שמגיעים מהטבלה, ושדות ריקות שגם הן מגיעות מהטבלה, ואני ממלא את הטופס, הלא כן?
ומה לגבי זה?
@שוהם307 אמר בבניית טופס/דו"ח:את זה לא הצלחתי לעשות,
העתקתי את כל הטופס והדבקתי אותו בדו"ח ריק חדש שיצרתי, קיבלתי את אותה הצורה של הטופס בדו"ח,
אבל כאמור את הביסוס שכתבת לא בדיוק הבנתי איך אני עושה את זה.תודה רבה רבה אלף פעמים על הסבלנות והנדיבות.
@odeddvir אמר בבניית טופס/דו"ח:
הרעיון העיקרי של דוח הוא רק להציג את הנתונים בצורה נעימה ומסודרת
אפשר לומר שאצלי זה לא מאוד משנה, כי אני מעוניין שגם ממלא הטופס וגם מקבל הטופס יראו את אותו תצוגה עם אותם עיצובים.
-
@שוהם307 אמר בבניית טופס/דו"ח:
למה הכוונה? איך זה משפיע בדיוק על הטבלה? הרי הטבלה לא מתחילה להתמלאות בנתונים שהזנתי בטופס...
דווקא כן, זה כל הענין של השימוש בטופס.
ומה לגבי זה?
כתבתי למעלה איך לבצע זאת.
אפשר לומר שאצלי זה לא מאוד משנה, כי אני מעוניין שגם ממלא הטופס וגם מקבל הטופס יראו את אותו תצוגה עם אותם עיצובים
זה פשוט יותר נוח ליצא ל-PDF את הדוח, כי לעתים יש בטופס פקדים שאנו לא מעוניינים להציג ב-PDF.
-
@OdedDvir אני נתקע כאן בשלב הזה, יכול להיות שאצלך זה פשוט אבל אני לא מתחיל להבין למה כוונתך.
כאמור עיצבתי טופס ודו"ח, מה שאני מקליד בטופס, נקלד בטבלה. גם את זה הבנתי.
אבל עכשיו האם הטבלה מייצרת את הדו"ח? או שהטפס מייצר אותו.
אני מניח שהטבלה מייצרת אותו, ואם כן, איך אני עושה שהטבלה ימלא את הדו"ח הספציפי שאני עיצבתי???
לא מצליח להבין את מה שכתבת 'מקור נתונים'.
תודה. -
@odeddvir אמר בבניית טופס/דו"ח:
להלן השלבים:
- צור טבלה עם השדות הרצויים
- צור טופס להזנת נתונים \ צפייה בנתונים, שמבוסס על הטבלה
- צור דוח שגם הוא מבוסס על הטבלה, בעיצוב כרצונך
אני מבין שעשית את הכל עד כאן.
בוא נבין מה עשית: אם ההקלדות בטופס נקלטות בטבלה, זה אומר שהטבלה היא מקור הנתונים של הטופס.
שים לב שתוכל להקליד רשומות רבות בטופס, ואחר כך להציג את כל הרשומות שבטבלה, שורה אחר שורה, ולעבור ביניהם על ידי לחצני הניווט שבתחתית הטופס:
באופן דומה, גם בדוח:
אם הטבלה היא מקור הנתונים של הדוח, הדוח יציג את הערכים שבטבלה, שורה אחר שורה. תוכל להציג את הדוח בתצוגה לפני הדפסה, ואז לדפדף בין הרשומות על ידי לחצני הניווט שבתחתית הדוח:
תאשר אם הכל עובד כנ"ל, ואז נעבור לשלבים הבאים:
- הוסף לחצן בטופס כך שיפתח את הדוח ברשומה הנכונה, וייצא את הדוח ל-PDF (על ידי קוד VBA)
תוכל להוסיף בסוף הקוד שליחה של ה-PDF שנוצר לכתובת המייל
-
@שוהם307 אמר בבניית טופס/דו"ח:
ואם כן נראה לי שאפשר להתקדם לשלב של הקוד.
בוא נכין את השטח קודם:
- שנה את שם הדוח ל-rptOutput
- שנה את שם הטבלה של הנתונים ל-FormData
- תוסיף לטבלה FormData שדה בשם "ID" מסוג "מספור אוטומטי".
- צור שאילתה בשם qryOutput שמכילה את הביטוי הבא:
SELECT * FROM FormData
ותבסס את הדוח עליה, במקום ישירות על הטבלה FormData. כלומר תשנה את מקור הנתונים של הדוח להיות qryOutput. - תוסיף בטופס פקד לחצן פקודה ותשנה את שמו ל-cmdOutputAsPDF
עכשיו נכתוב את הקוד:
בארוע לחיצה של הלחצן, תיצור קוד VBA כדלקמן:Private Sub cmdOutputAsPDF_Click() CurrentDb.QueryDefs("qryOutput").SQL= "SELECT * FROM FormData WHERE ID=" & Me.ID DoCmd.OutputTo acOutputReport, "rptOutput", acFormatPDF End Sub
-
@odeddvir החל ממספר 4, אני לא מצליח להבין מה אני אמור לעשות,
תוכל להרחיב יותר.
איפה להזין את השם של השאילתה, ואיפה להזין את הביטוי הנ"ל?
תודה.
עריכה: טוב, אז לאחר הרבה ניסוי וטעייה הצלחתי ב"ה לייצא ל PDF ע"י פקד. (לקח לי זמן להבין בכלל איפה להכניס את הביטוי).
והנה אני מתקדם בזכותך לשלבים הסופיים. ובכן,- את השדה ID הייתי מוכרח לשלב בתוך הדו"ח למרות שהוא לא קשור, אז עשיתי אותו לנסתר.
- האפשרות היחידה לכתוב משהו על הפקד זה רק ע"י הוספת תווית?
- האם אני לא יכול לעשות את שם הטבלה למשהו בעברית?
- אני רוצה שכשהעכבר על הפקד שייצא כזה הסבר שמסביר מה הפקד עושה. שייך כזה דבר?
תודה רבה רבה רבה רבה רבה, על הסבלנות, המקצועיות וההקשבה.
עריכה נוספת לגבי מספר 4 הסתדרתי, פשוט הייתי צריך לבחור בפקד 'לחצן' ואז אני יכול לשנות את השם וגם להוסיף תיאור. -
@שוהם307 אמר בבניית טופס/דו"ח:
את השדה ID הייתי מוכרח לשלב בתוך הדו"ח למרות שהוא לא קשור, אז עשיתי אותו לנסתר.
אתה צודק. יפה שעלית על הבעיה.
נמאס לך?...
אם אתה מבקש לקבל קורס מזורז באקסס, אני מציע לך לעבור על המדריך. אני אענה על רגל אחת:
האפשרות היחידה לכתוב משהו על הפקד זה רק ע"י הוספת תווית?
בעיקרון כן.
האם אני לא יכול לעשות את שם הטבלה למשהו בעברית?
אתה יכול אבל זה לא מומלץ.
לגבי 4, צור שאילתה חדשה, עבור לתצוגת SQL ושם תדביק את השורה שכתבתי לעיל.
-
-
@שוהם307 אמר בבניית טופס/דו"ח:
אני עדיין לא מבין למה לא לייצא את הטופס ישירות ל PDF,
עקרונית זה אפשרי, אבל פחות מקובל. דוח מאפשר קצת יותר שליטה על עיצוב באופן כללי.
הרי אני הולך לתת את האקסס הזה לדוגמה לעובד פלוני שימלא את הטופס, ובדיוק את אותו טופס שהוא מילא אני רוצה שהוא ישלח לי בתור PDF,
מה העובד אמור לעשות אחרי שהוא מילא את הטופס?ללחוץ על הלחצן כמובן.
כרגע זה רק יוצר קובץ במחשב.
אם הגעת לשלב 5 והכל עובד, נתקדם בעז"ה לאיך שולחים את זה במייל אוטומטית.