אקסס למתחילים: תגובות
-
@איש-פלוני תודה על המשוב החם!
לגבי הפונקציונאליות שביקשת, הציעו את ההצעה הזו למעלה. לעת עתה זה לא בתכנון, כי זה נראה לי מחוץ לתחום ההדרכה הבסיסית.
...
אך תוכל לפתוח נושא נפרד ולבקש עזרה בזה. -
@odeddvir אמר באקסס למתחילים: יצירת מערכת לניהול תורמים:
שיעורי בית
- הוסיפו לפונקציה שיצרנו עוד משתנה מסוג Double בשם amountToUpdate, והכניסו לתוכו את סכום התרומות שעומדות לעדכון. השתמשו בפונקצית הסכום DSum (וכן, היא קרובת משפחה של DCount)
- הדפיסו בחלון ה-immediate גם את ערך המשתנה שיצרתם, מתחת למספר הרשומות לעדכון.
- צרו משתנה שלישי בשם userMessage מסוג מחרוזת String, שיכיל בתוכו את המשפט הבא:
"ברשימת התרומות קיימות לעדכון X תרומות על סך כולל של Y"
כאשר במקום X ו-Y יופיעו הערכים הנכונים (השתמשו במשתנים שיצרתם ובשרשור מחרוזות על ידי האופרטור&
. הדפיסו גם את המשפט בחלון הפלט.
בהצלחה!
שיעורי הבית היו הפעם מאתגרים במיוחד
אבל ב"ה אני חושב שהגעתי לתוצאה:
(מדובר בשתי תרומות אחד של 72 והשני של 30)
מכיוון שעדיין קיימות תרומות ישנות ללא שיוך למשפחה כלל הפונקציהamountToUpdate
לא החזירה תוצאה רלוונטית.
ניסיתי להוסיף עוד קריטריון שיוריד את אלו שלא משוייכים, משהו כגון זה:amountToUpdate = DSum("amount", "donation", "StatusID=1" And "TargetFamilyID=IS NOT NULL")
אבל לא הצלחתי בשום אופן
עד שבסוף פשוט מחקתי את התרומות שהוכנסו בעבר ללא שיוך. -
OdedDvirהשיב לבערל ב 4 בפבר׳ 2021, 20:35 נערך לאחרונה על ידי OdedDvir 2 באפר׳ 2021, 21:31
@בערל אמר באקסס למתחילים: תגובות:
שיעורי הבית היו הפעם מאתגרים במיוחד
נכון, כי ב"ה אנחנו מתקדמים, לא?
ניסיתי להוסיף עוד קריטריון שיוריד את אלו שלא משוייכים, משהו כגון זה:
amountToUpdate = DSum("amount", "donation", "StatusID=1" And TargetFamilyID=IS NOT NULL") אבל לא הצלחתי בשום אופן
קודם כל אתה ממש ממש ממש קרוב!
הבעיה היא בפרמטר של התנאי, הוא אמור להיות מחרוזת, וכאן הוא בעצם שתי מחרוזות עם מילת AND ביניהן. המחשב מפרש זאת כתנאי, ולא כמחרוזת.הפתרון הוא לכלול את ה-AND בתוך המחרוזת:
amountToUpdate = DSum("amount", "donation", "(StatusID=1) AND (TargetFamilyID IS NOT NULL)")
-
@odeddvir אמר באקסס למתחילים: תגובות:
נכון, כי ב"ה אנחנו מתקדמים, לא?
מה השאלה...?!
מתקדמים מאוד ב"ה!קודם כל אתה ממש ממש ממש קרוב!
הבעיה היא בפרמטר של התנאי, הוא אמור להיות מחרוזת, וכאן הוא בעצם שתי מחרוזות עם מילת AND ביניהן. המחשב מפרש זאת כתנאי, ולא כמחרוזת.הפתרון הוא לכלול את ה-AND בתוך המחרוזת:
amountToUpdate = DSum("amount", "donation", "(StatusID=1) AND (TargetFamilyID=IS NOT NULL)")
ניסיתי הרבה אפשרויות, העליתי רק דוגמה.
אני לא בקי מספיק במשמעות של כל סוגי התוויםתודה על הפירוט
-
@odeddvir אמר באקסס למתחילים: תגובות:
הפתרון הוא לכלול את ה-AND בתוך המחרוזת:
amountToUpdate = DSum("amount", "donation", "(StatusID=1) AND (TargetFamilyID=IS NOT NULL)")
אני עכשיו מנסה ככה, אבל הוא מסמן את כל השורה כשגויה, במה טעיתי?
-
@בערל אמר באקסס למתחילים: תגובות:
במה טעיתי?
אני הוא זה שטעיתי... (תיקנתי במקור)
במקום(TargetFamilyID=IS NOT NULL)
צ"ל בלי סימן השוואה (=)
(TargetFamilyID IS NOT NULL)
-
-
@איש-פלוני אמר באקסס למתחילים: תגובות:
לא משנה מה אני עושה, יוצא לי רק 0
תוודא שיש לך תרומה עם סטטוס "זמינה" וגם עם משפחה בשדה היעד.
-
@איש-פלוני תעלה תמונה של טבלת התרומות ונבדוק
-
@איש-פלוני אוקי. הבעייה שלך היא לא בנתונים, אלא שגיאת הקלדה פשוטה.
שים לב ששכחת להוסיף את האות s בשם המשתנה בשורה השנייה, ורשמת donation במקום donations. -
@OdedDvir @בערל
שלום וברכה
לא קשור כל כך לנושא הספציפי של הפורום..
אבל מכיון שאני גם באמצע בניה של מסד הנתונים, תרומות... (לתת..)
עכשיו מנסה להפוך אותו לאוטומטי,(עד עכשיו שמנו כל שנה עמודה מחדש, אבל יש גבול לטלאים, וצריך אחד ולתמיד לשפץ את מסד הנתונים שהתחלנו אותו בגיל 17 ) ושמתי לב, שבמידה ומשתמשים בקישור של יותר מ2 טבלאות...
אי אפשר לערוך את הרשומה.מה הפיתרון, חוץ מלעשות SQL כדי לעדכן כל רשומה.... (וגם שם זה יהיה קצת בעיה, כי הפקד נעול...)
(ואל תבקשו ממני לעשות אותו בטופס משנה נפרד, ואופס לקשר את השדות,
כי אני צריך עדכון רציף בתצוגת גיליון נתונים (תחשבו על הבחור שיושב עכשיו ומכניס 2000 תרומות ברצף... , טוב, - גם זה לא חזות הכל, כי יש לנו עוד 2 טבלאות שניקח מהם רשומות, טבלת קבוצות, טבלת תלמידים, וגם שם אנחנו נרצה לדעת מי היה שם שנה שעברה, ולפני שנתיים, ואת מי נשבץ שם השנה...), ולא בטופס משנה שיקח משאילתא אחרת....)מצרף את הSQL שעליו בנויה השאילתא, (לא שיעזור הרבה, כי זה פשוט מבוסס על שאילתא מפקדים - ואת הDlookup עשינו בהתחלה בשביל הדוחות...)
SELECT ktovot.Id, ktovot.family_name, ktovot.frist_name, ktovot.city, ktovot.area, ktovot.st, ktovot.number_blok, ktovot.namber_home, ktovot.phone_1, ktovot.phone_2, ktovot.yes_no, ktovot.Time, ktovot.comment, ktovot.status, ktovot.maagal, ktovot.group_2019, ktovot.group_2020, ktovot.number_go, ktovot.importance, DLookUp("[Donation_amount]","[Donation]","[year_]=" & (Year(Now())-2) & " and [Donor_ID]=" & [id]) AS Two_year_d, Last_year_d.Donation_amount AS [last], Two_year_d.Donation_amount FROM (ktovot LEFT JOIN Last_year_d ON ktovot.Id = Last_year_d.Donor_ID) LEFT JOIN Two_year_d ON ktovot.Id = Two_year_d.Donor_ID WHERE (((ktovot.Id) Like [forms]![כתובות]![מזהה] & "*") AND ((Nz([ktovot.comment],0)) Like [forms]![כתובות]![הערות] & "*") AND ((Nz([ktovot].[family_name],0)) Like [forms]![כתובות]![משפחה] & "*") AND ((Nz([ktovot.frist_name],0)) Like [forms]![כתובות]![פרטי] & "*") AND ((Nz([ktovot.city],0)) Like [forms]![כתובות]![עיר] & "*") AND ((Nz([ktovot.area],0)) Like [forms]![כתובות]![שכונה] & "*") AND ((Nz([ktovot.st],0)) Like [forms]![כתובות]![שם הרחוב] & "*") AND ((Nz([ktovot.maagal],0)) Like [forms]![כתובות]![מעגל] & "*") AND ((Nz([ktovot.number_blok],0)) Like [forms]![כתובות]![בית] & "*") AND ((Nz([ktovot.phone_1],0)) Like [forms]![כתובות]![טלפון] & "*") AND ((Nz([ktovot.phone_2],0)) Like [forms]![כתובות]![טלפון] & "*") AND ((Nz([ktovot.group_2020],0)) Like IIf(IsNull([forms]![כתובות]![קבוצה]),"*",[forms]![כתובות]![קבוצה]))); -
@felner הואיל ושאלתך לא קשורה ישירות לנושא ההדרכה, אני חושב שראוי לפתוח לה פוסט נפרד, כדי לא לפגוע ברצף העניינים של האשכול.
לאחר מכן אני מייעץ לך לפרט ככל הניתן את שאלתך, גם לאלו שלא מונחים במבנה המדוייק של ה-db. העמסת בשאלתך המון פרטים, התלבטויות, עצות, פתרונות ופירכות, והכל בראשי תיבות, כך שקשה לי להאמין שמישהו יוכל לרדת לסוף דעתך... -
@odeddvir ב"ה
שוב אני מנדנד באותה בעיה:
כאשר אני גורר את טופס המשנה (Converasetions) לתוך טופס האב
הוא הרי מתמקם במקום ש"הנחתי" אותו אבל הוא ארוך מאוד לצד שמאל. כאשר אני מנסה -(בתצוגת עיצוב או תצוגת פריסה)- להקטין אותו (ע"י גרירת הגבול השמאלי - ימינה) הפקד (של טופס משנה) אמנם "מציית" להקטנה, אך בתוצאה רואים בטופס רק את החלק השמאלי של השדות ללא התוויות.
ניסיתי מה שהצעת לי - לעגן את הכל לימין - אך זה לא עזר. -
@שואף-לדעת הקטנת הפקד של טופס המשנה זה צעד ראשון.
אך צריך להקטין גם את הפקדים שבתוך הטופס ואת הטופס עצמו (כברירת מחדל הם רחבים מאוד).
פתח את הטופס בתצוגת עיצוב, והקטן את רוחב הפקדים, ולאחר מכן את רוחב הטופס עצמו, על ידי גרירת הגבול המסומן בחצים, כך שתקבל משהו כעין זה:
-
@שואף-לדעת אמר באקסס למתחילים: תגובות:
זה עושה משהוא, אבל עדיין לא מושלם כיון שהקטנת הטופס עצמו (טופס המשנה) מצליחה עד למקום מסויים ומשם הוא לא נותן יותר להקטין.
זה דורש קצת ניסיון. עם עוד תרגול תרכוש את המיומנות.
איך אתה יוצר את תמונות המסך היפות והחיצים והמסגרות המדוייקים ?
76/165