אקסס למתחילים: תגובות
-
@odeddvir אמר באקסס למתחילים: יצירת מערכת לניהול תורמים:
אז יופי, בואו ונוסיף גם את השאילתה למשטח העבודה, והופ – נראה שהפעם אקסס לא הייתה כל כך מבריקה, והחליטה לצרף את השדה ID מטבלת התרומות לשדה ID בשאילתה, כפי שמוצג בדרמטיות בתמונה הבאה:
מדוע זה קרה?
אקסס זיהתה את שם השדה ID הזהה בשתי מקורות הנתונים, והחליטה "לעזור לנו" על ידי יצירת הצירוף עבורנו. אבל זה כמובן לא נכון!אם היינו קוראים לשדה המפתח בכל טבלה בשם מלא, כפי שנהגנו במפתח הזר, למשל DonationID במקום ID בטבלת התרומות, או DonorID במקום ID בטבלת התורמים וכו', המנגנון של אקסס אכן היה עוזר לנו.
זו אכן סכמה נפוצה, ובאמת בתחילת דרכי כך נהגתי, אבל היא פחות מקובלת, ובקוד היא נעשית מסורבלת עוד יותר, כי ניגשים לשדה המזהה כך: Donor.DonorID במקום כך: Donor.ID.
לכן אני מעדיף לוותר על העזרה של אקסס כאן, וליצור ידנית את הצירוף, תמורת הרווח של קוד ושאילתות יותר קריאים.בואו נתקן את הצירוף:
נבחר את החץ ונמחק אותו על ידי הקשה על מקש Delete, ובמקום, נגרור את שדה ID מטבלת התורמים לשדה ID בשאילתת השם המלא, כך:
אני כעת מבצע את שני השיעורים האחרונים ואוחז בקטע המצוטט
אצלי משום מה הוא לא טעה וקישר לטבלת התרומות אלא הצליח לנחש נכון וקישר לטבלת התורם?
איך זה? למה?
למה הם מפלים אותך לרעה? נראה לי אתה לקוח יותר ותיק ממני.... -
@בערל התופעה תלויה בסדר שבו אתה מוסיף את הטבלאות למשטח העבודה.
אם הוספת בסדר הזה:- טבלת התורמים Donor
- שאילתת שמות התורמים qryDonor_FullName
כיון שבשניהם קיים שדה ID, אקסס תצרף נכון את הטבלאות
אבל נסה להוסיף בסדר הזה:
- טבלת התרומות Donation
- שאילתת שמות התורמים qryDonor_FullName
כיון שגם בשניהם קיים שדה ID, אקסס תצרף את הטבלאות באופן שגוי
-
סליחה על האיחור בשיעורים...
@odeddvir אמר באקסס למתחילים: יצירת מערכת לניהול תורמים:
אני משאיר כמה שיעורי בית, בעיקר בעיצוב (מהקל למאתגר):
- הסירו את המסגרות מסביב לתיבות הטקסט בדוח.
- הוסיפו בכותרת התחתונה של העמוד את הכיתוב: "הודפס על ידי מערכת לניהול תורמים גירסא 0.01"
- הוסיפו את שעת ההדפסה המדוייקת בכותרת העליונה.
- הצמידו את ראשי התיבות נ"י לשם התורם כך שיופיעו מיד לאחריו בצורה יפה בלי רווח גדול.
בזה קצת הסתבכתי...
ניסיתי לערוך את הפקד ולהוסיף לו טקסט, משהו כמו:
אבל זה זה מחזיר לי ככה:
אז להוסיף עמודה של תואר בטבלת התורמים? ישירות בשאילתת נתוני הטופס?
או שאתה מתכווין לפתרון אחר לגמרי?- הסירו את השעה מתאריך החשבונית ומתאריך התרומה.
שיניתי את פורמט התא לתאריך קצר שמציג את התאריך בלבד.
ראיתי גם שיש אפשרות להוסיף מסכה בלשונית Data
מה עדיף למקרה שלנו?
-
@בערל אמר באקסס למתחילים: תגובות:
סליחה על האיחור בשיעורים...
כמובן שלא צריך לבקש סליחה...
בלאו הכי אני עוקב אחרי השאלות בפורום וניכר שאתה מתקדם יפה.
חוץ מזה, עיצוב יכול באמת למשוך המון זמן, זו הסיבה שאני משתדל להמנע מלהכנס אליו במדריך. כאן בדוח זה פשוט הרגיש ממש הכרחי.ניסיתי לערוך את הפקד ולהוסיף לו טקסט, משהו כמו:
זה באמת הפתרון הכי פשוט.
אבל זה זה מחזיר לי ככה:
שמא שכחת לשנות את שם הפקד של תיבת הטקסט ל-txtFullName לפני כן?
זה יוצר חוסר ודאות בנוסחא או הפניה מעגלית. לזה נתכוונתי בהרגל המגונה של אקסס (בפרק כב).ראיתי גם שיש אפשרות להוסיף מסכה בלשונית Data
מה עדיף למקרה שלנו?המסכה הנ"ל משמשת לקלט של נתונים, למשל בטופס, כדי לפרמט או להגביל את הקלט.
במקרה שלנו הלא מדובר בדוח, שמשמש לתצוגת פלט בלבד, ולכן הדרך הראשונה היא הנכונה. -
@odeddvir אמר באקסס למתחילים: תגובות:
כמובן שלא צריך לבקש סליחה...
בלאו הכי אני עוקב אחרי השאלות בפורום וניכר שאתה מתקדם יפה.
חוץ מזה, עיצוב יכול באמת למשוך המון זמן, זו הסיבה שאני משתדל להמנע מלהכנס אליו במדריך. כאן בדוח זה פשוט הרגיש ממש הכרחי.אכן מתקדם ב"ה כמובן בזכות המדריך, והיו ימים עמוסים של ערב החג אז לא הספקתי לעיין ולבצע...
העיצוב באמת לוקח זמן נשמור את התירוץ לפעם הבאה...
שמא שכחת לשנות את שם הפקד של תיבת הטקסט ל-txtFullName לפני כן?
זה יוצר חוסר ודאות בנוסחא או הפניה מעגלית. לזה נתכוונתי בהרגל המגונה של אקסס (בפרק כב).
אני עדיין אוחז בפרק הקודם. על פרק כ"ב עברתי רק ברפרוף ועוד לא בעיון.
מקווה בהקדם... -
@שואף-לדעת אמר באקסס למתחילים: תגובות:
אך הבעיה יותר גדולה: כאשר אני סוגר את הטופס לא מתרחש כלום, לא הודעה ולא עדכון של הסטטוס, הטופס פשוט נסגר וזהו.
כי יש לך שגיאת כתיב כל היכן שכתוב
Message
כתבת עםa
במקוםe
עריכה:
בעצם בגלל שהשגיאה עקבית והיא רק בשם משתנה זה לא אמור להפריע. -
@שואף-לדעת יש לך חוסר עקביות בשם המשתנה:
כדי להתמודד עם השם החדש, הקומפיילר יוצר משתנה חדש בשם זה ומקצה לו ערך ברירת מחדל Null.
מפני שזו לא הפעם הראשונה שזה קורה לך, וכדי להמנע משגיאות כאלו בעתיד, תוסיף בראש העמוד את ההוראה:Option Explicit
הוראה זו מורה לקומפיילר להגביל את השימוש בקוד רק למשתנים שהוצהרו בפירוש קודם לכן.
אני ממליץ לך להפעיל אופציה זו באופן קבוע מכאן ואילך, על ידי ההגדרה הבאה באופציות של עורך ה-VBA:
-
@שואף-לדעת אמר באקסס למתחילים: תגובות:
א. בדו"ח מופיע בכל עמוד שני דוחות, מדוע ?
מספר הדוחות בעמוד נקבע לפי גודל (גובה) הדוח. הואיל והוא לא ממלא דף שלם, אקסס מציגה עוד אחד באותו העמוד. בהמשך אי"ה נלמד כיצד להציג דוח מסויים בלבד.
ב. רצ"ב תמונות טופס בתצוגת עיצוב ובתצוגת טופס, אני לא מבין מדוע הכותרת התחתית נראית כך ?
זהו שוב עניין של עוגן אופקי. בחר את הפקדים בכותרת התחתונה והגדר במאפיינים עוגן אופקי=ימין.
-
עכשיו בשעה טובה סיימתי לבצע את שני השיעורים האחרונים...
בפעם הבא אשתדל להגיש בזמן.@odeddvir אמר באקסס למתחילים: יצירת מערכת לניהול תורמים:
למעשה, היינו צריכים להנהיג הנהגה זו כבר מתחילת המדריך, מהטופס הראשון שעשינו, אך נמנעתי מלהזכיר זאת עד עתה, פן ינחם העם בראותם מלחמה...
על כל פנים, מעתה זו תהיה הנחת היסוד: מכאן והלאה לבצע את שינוי השם לכל שדה מאוגד בטופס.
את הטיפול בכל הטפסים הקודמים נשאיר לשיעורי הבית (מסכן @בערל...)בהתחלה נבהלתי, אבל בסוף זה לקח לא יותר מעשר דקות....
כנראה זה פחות מעשר אחוז מהזמן שאתה משקיע בכל פרק...