דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
Y.Excel.AccessY

Y.Excel.Access

@Y.Excel.Access
אודות
פוסטים
294
נושאים
49
קבוצות
0
עוקבים
2
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • אקסס | איך מתכננים גביית הו"ק מזומן?
    Y.Excel.AccessY Y.Excel.Access

    @איש-ימיני

    לכאורה, אפשר אולי להכליל בצורה גסה שהתכנון תלוי עד כמה אתה רוצה לתכנן תבנית ברורה ובנויה עד הסוף.

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

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

    כשאני עושה לעצמי בדר"כ אני עושה מתוכנן עד הסוף, כשלכל הנתונים שיכולים להיות מחושבים על ידי שאילתה אני יוצר שאילתה. ואם צריך שינוי כלשהו אני בונה עוד. (כך זה קל יותר באקסס, כי הבניה קלה, אבל הקוד VBA / מאקרו המתערב בDATA מקשה מאוד ובו בעיקר הבדיקות למניעת באגים)

    לגוף השאלה:

    @איש-ימיני כתב באקסס | איך מתכננים גביית הו"ק מזומן?:

    או אולי טוב יותר ליצור בתחילת בחודש שורת חובה לכל תשלום, במקום לחשב הכל בשאילתות?

    אני רק עונה רעיון איך ליצור את זה בלי קוד / מאקרו - אפשר ליצור את זה עם DSUM בפקד מחושב על ידי בונה הביטויים (קונטרול F2).


  • אקסס | איך מתכננים גביית הו"ק מזומן?
    Y.Excel.AccessY Y.Excel.Access

    @איש-ימיני מוסיף עוד:

    אני הייתי עורך את זה - טבלת התחייבויות, בה יש שדה בשם 'מספר תשלומים' ושדה בשם 'סוג תשלום המכיל רשימה של 'חד פעמי; שבועי; חודשי לועזי; חודשי עברי; רבעוני; שנתי' ויוצר כלל אימות שכל פעם שנבחר בסוג תשלום חד פעמי מספר התשלומים יהיה == 1.

    שם אפשר בטופס לתת כפתור 'עמד בתשלומים בזמן עד כאן' או V/X (או ברירת מחדל שעמד - שאז צריך לציין רק כשלא) וכו'

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


  • אקסס | איך מתכננים גביית הו"ק מזומן?
    Y.Excel.AccessY Y.Excel.Access

    @איש-ימיני
    תגובה ראשונית:

    • צריך ליצור עוד טבלת 'גובים' אם תרצה לנתח את זה בעתיד.
    • הקוד לתאריך לועזי עברי https://tchumim.com/topic/14176/להורדה-סקריפט-פייתון-לחישוב-האם-השנה-מעוברת-או-פשוטה-האם-חשון-וכסליו-מלאים-או-חסרים-ובאיזה-יום-יוצא-ראש-השנה/4?_=1672352953085

    מה קורה אם יש תורם שרוצה להוסיף תרומה בלי קשר להו"ק? צריך ליצור חלוקה ברורה - אפשר אפי' ע"י שדה כן/לא - בין תרומה ח"פ החוסכת את הוראות הקבע הבאות לבין תרומה ח"פ שאינה קשורה להו"ק.


  • אקסס | איך מתכננים גביית הו"ק מזומן?
    Y.Excel.AccessY Y.Excel.Access

    @איש-ימיני
    בעצם הצורך שנוסף דווקא בגבייה במזומן הוא:

    • תיעוד התשלומים שבוצעו או לא בוצעו, וכיצד.
    • תיעוד הדו שיח.
    • תזכורות למזכיר המוסד עבור ביצוע הגבייה בזמן.

    יש גם את הצורך שיש כבר בכל ניהול תשלומים:

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

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


  • שיפור SHEETS & FROMS המתפקדים כאתר (מאגר בני הישיבות)
    Y.Excel.AccessY Y.Excel.Access

    @mekev תודה רבה!

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


  • לא מזהה את הפקד או הטופס
    Y.Excel.AccessY Y.Excel.Access

    @אוריי
    על זה נאמר "אקסס!!!!" (בעצבים, או בהשלמה...)
    כמויות הבאגים הקטנים האלה ללא מספר.


  • שיפור SHEETS & FROMS המתפקדים כאתר (מאגר בני הישיבות)
    Y.Excel.AccessY Y.Excel.Access

    בניתי מאגר שידוכים חינמי, המבוסס על SHEETS + FORMS, פרסמתי כאן - "מאגר בני הישיבות".

    אני רוצה כעת בל"נ לעבוד עליו להגדלת הקיבולת שלו תוך הגבולות של SHEETS (לחלק לכמה חוברות עבודה וכו') לשפץ ולבנות את החישובים מאחוריו מחדש.

    רציתי לשאול אם יש למישהו רעיון לשיפור - בתוך הגבולות החינמיים של GOOGLE.

    יש מאגר אחד גלוי ב SHEETS.

    טפסי המאגר -

    1. יש טופס רישום בודד עם פרטי שדכנית / איש קשר
    2. טופס הוספה עם פרטי בחור/ה

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

    1. טופס לקבלת פירוט המיקומים במאגר של כל מה שהוספת למייל (איזה גליון / שורה זה נמצא, והאם חסרים פרטים ברישום (כגון מי שהוסיף ולא נרשם)).
    2. טופס בקשה למחיקת פרטים שמישהו אחר הוסיף, כשכבר לא רלוונטי.

    במה אפשר לשפר?

    חשבתי להוסיף

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

    יש לכם רעיון נוסף?

    .

    • נ.ב. כתבתי את הנושא בקטגורית תוכנה, אך אולי צריך לכותבו בגומלין - אם טעיתי אשמח לשנות את הקטגוריה.

  • C# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.
    Y.Excel.AccessY Y.Excel.Access

    @dovid כתב בC# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.:

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

    אתה צודק, לא חשבתי עד הסוף...
    נפק"מ באמת היא רק במקרה ואתה יוצר טבלה חדשה מתוך הקוד. אבל בדר"כ אתה מנסה לקרוא לטבלה קיימת שאינה ממוקמת ב C# עצמו אלא חיצונית לו, בשונה מ ACCESS / SAP-ABAP שם לכאורה זה ממש חלק מהתוכנה...

    איך? אתה מתכוון פשוט לבנות CASE? וכך לבדוק את הTYPE של כל ערך אם הוא נמצא ברשימה?

    לא ממש הבנתי את השאלה, אולי בהזדמנות אכתוב קוד.

    יוצא שבאמת אין מנוס מלכתוב CASE על הטיפוס המתקבל (GetType), ולפ"ז להכניס לSQL בצורה הנכונה, (לא צריך לכתוב - אני יודע לכתוב CASE פשוט:)

    כמובן כל זה יהיה נצרך כל עוד שאני לא משתמש בגלגל קיים: EntityFramework או ב Dapper או אפילו בתוך SqlClint בספריות DataTable-TableAdapter וכו' בתנאי שזה לא כולל הרכבת משפט SQL ידנית.


  • C# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.
    Y.Excel.AccessY Y.Excel.Access

    @dovid כתב בC# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.:

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

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

    איך? אתה מתכוון פשוט לבנות CASE? וכך לבדוק את הTYPE של כל ערך אם הוא נמצא ברשימה?
    נשמע לי עבודה לא מתאימה לסדר של C#...

    מוזר שאין יכולת כזו של הגבלת טיפוסים, בTYPESCRIPT יש אפשרות להגבלת טיפוסים עם OR לדוגמה - string | int

    אי אפשר להשתמש איכשהו עם <T> כמו שהאובייקט List לדוגמה משתמש?
    אולי כן ליצור קלאס משנה עם קלט טיפוסי

    class Column <T>
    

    שיירש מאינטרפייס הכולל אישכשהו סוג מסויים של טיפוסים,
    או רעיון דומה?


  • C# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.
    Y.Excel.AccessY Y.Excel.Access

    @dovid רציתי להגיב מזמן, ולא התאפשר...
    ישנם שני חידושים בתשובה שלך,
    חידוש אחד בתשובת הקוד הראשונה - אפשר להגיע לאינדקסר של המחלקה הקיימת למרות שיורשת מLIST שיש לו כבר אינדקסר בפנ''ע וללא פעולת OVERRIDE, ואיך לבצע זאת.
    חידוש שני בתשובת הקוד השניה - אפשר ליצור אינדקסר חדש למחלקה בה אין לה מראש אינקסר, ואיך לבצע זאת.

    למרות החידוש השני הוא פשוט יותר, מבחינתי גדול החידוש הזה האחרון מן הראשון.

    מה שעשיתי בפועל במסגרת האימון המצאת הגלגל (כבר אנימנסה ללמוד לעומק את הגלגל של C#, אל דאגה לא נתקעתי בזה... אבל אולי אחרי הלימוד כן אצור גלגל יפה יותר, ולכן אני משתף כאן) זה להעמיס כמה אינדסקרים - [int,int] לכל הנתונים לפי אינדקס, [int,string] לכל הנתונים לפי אינדקס שורה ושם עמודה, [Int] לשורה שלימה.
    ומחקתי את קלאס CLOUMNS ויצרתי רק קלאס אחד 'values' פרייווט. וכו' (פונקציות להוספת ומחיקת שורה / עמודה).

    נתקעתי באיך אפשר ליצור TYPE לכל עמודה (מה שיחייב אותי לכאו' לקנן את השורות בעמודות ולא להיפך) אחרי שהיא מקוננת כבר בLIST כללי, וזה שצריך להגביל את בחירת הטיפוס רק לפי הטיפוסים של SQLSERVER.
    גם איך להכניס את הנתונים לשאילתות => טיפוסים מסוג סטרינג להוסיף מרכאות, מסוג INT LONG DOUBLE וכו' לא להוסיף כלום, DATE וכו' שאני חושש לפספס משהו...


  • אכסס - פתיחת שני טפסים במקביל
    Y.Excel.AccessY Y.Excel.Access

    @OdedDvir כתב באכסס - פתיחת שני טפסים במקביל:

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

    אם הטופס לא נפתח מתוך הטופס הראשוני:

    • אי אפשר לפתוח שום טופס, מוקפץ או לא, אם הוא לא מודלרי.

    אם הטופס נפתח מתוך הטופס הראשוני:

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

    אני מצרף דוגמה שבניתי הרגע.‏‏Microsoft Access Database חדש.accdb

    (יוצא שעדיין הנוסח הקודם שלי לא היה מדוייק...)


  • נוסחאות בגוגל שיטס בין קבצים
    Y.Excel.AccessY Y.Excel.Access

    @בער כתב בנוסחאות בגוגל שיטס בין קבצים:

    @בער כתב בנוסחאות בגוגל שיטס בין קבצים:

    @אביי
    כן זה עובד
    אבל שאלה: אם אני רוצה להביא עם הנוסחה רק עמודות ספציפיות כגון A C F איך אני רושם את זה. ברגיל רושמים את זה עם { }, איך עושים את זה בנוסחת IMPORTRANGE?

    זה מה שיצא לי....
    =FILTER({IMPORTRANGE("https://docs.google.com/spreadsheets/d/1VIsjQAdAFnEd8bO_5ck3lzC0aUfKLmlXmSIOYCyGPUE/edit#gid=280443997","אספקה חדש!$B:$B"),IMPORTRANGE("https://docs.google.com/spreadsheets/d/1VIsjQAdAFnEd8bO_5ck3lzC0aUfKLmlXmSIOYCyGPUE/edit#gid=280443997","אספקה חדש!$U:$U"),IMPORTRANGE("https://docs.google.com/spreadsheets/d/1VIsjQAdAFnEd8bO_5ck3lzC0aUfKLmlXmSIOYCyGPUE/edit#gid=280443997","אספקה חדש!$F:$F")},IMPORTRANGE("https://docs.google.com/spreadsheets/d/1VIsjQAdAFnEd8bO_5ck3lzC0aUfKLmlXmSIOYCyGPUE/edit#gid=280443997","אספקה חדש!$W:$W")="חטיפים")

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

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

    אולי אני טועה, אבל יכול להיות שלפ"ז יש נפק''מ לנסות לצמצם בקריאות IMPORTRANGE ולכתוב בגליון מקור את הנתונים סמוכים, כך הקריאה תהיה אחת, ל A:D.


  • אכסס - פתיחת שני טפסים במקביל
    Y.Excel.AccessY Y.Excel.Access

    @ארי כתב באכסס - פתיחת שני טפסים במקביל:

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

    לא מדוייק, עם טופס מוקפץ אפשר לפתוח עוד טפסים.

    רק אם מוגדר גם 'כן' על 'מודולרי'
    אי אפשר לפתוח טפסים שאינם מודולריים.

    אני מביא מקור ראשון שיצא בחיפוש, אמנם יצא לי מאמר שמדבר בסביבת VBA אבל זה עדיין מוכיח (וגם כמובן הבדיקה הפשוטה) - https://learn.microsoft.com/en-us/office/vba/api/access.form.modal


  • בירור | סקריפט למייל לבדיקת נתונים ב - google sheets
    Y.Excel.AccessY Y.Excel.Access

    @אביי
    תודה על ההצעה! - מחפש גם לזה קיצורי דרך, במקום להמציא את הגלגל מחדש...

    אמנם השאלה שלי ל @יעקב-מ-פינס היתה על ההתקדמות שלו עם מסד נתונים חיצוני איך הוא מבצע, ומה עדיף לעשות מבין שני האפשרויות.
    אבל אשמח לשמוע.


  • בירור | סקריפט למייל לבדיקת נתונים ב - google sheets
    Y.Excel.AccessY Y.Excel.Access

    @יעקב-מ-פינס
    אשמח שתעדכן אותנו, זה יכול לעזור גם למאגר שלי🙂


  • איקס עיגול|בדיקה האם יש מנצח|js
    Y.Excel.AccessY Y.Excel.Access

    @צבי-ש נשמח לראות את התוצאה אחרי שתגמור לקודד ולעצב וכו':)


  • בירור | סקריפט למייל לבדיקת נתונים ב - google sheets
    Y.Excel.AccessY Y.Excel.Access

    @יעקב-מ-פינס ע"י טפסי גוגל אני מניח שזה פשוט לך (אם לא - תשאל כאן).

    השאלה רק איך לגשת לאפשרות הזו במייל.

    אציע לך לעבור על הקוד שפרסם @אביי ב https://tchumim.com/topic/13820/שליחת-וקבלת-מיילים-באמצעות-הטלפון-הכשר-בחינם-abaye-מדריך-מפורט-מתעדכן

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


  • C# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.
    Y.Excel.AccessY Y.Excel.Access

    @dovid כתב בC# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.:

    רק תשנה את הIReadOnlyCollection לReadOnlyCollection

    הוא רושם לי שאין כזה קלאס / אינטרפייס.


  • מעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח **נפתר**
    Y.Excel.AccessY Y.Excel.Access

    @OdedDvir כתב במעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח **נפתר**:

    כנראה שהאובייקט של MSXML2.XMLHTTP מפעיל מנגנון מטמון של הבקשות והתגובות, מה שמסביר את התופעה לעיל בדיוק, כי כל מופע של אקסס משוייך לאותו סשן על ידי המערכת.

    @OdedDvir אלוף!
    הסימנים והרמזים היו לשם... אבל רק אחד מצא את המטמון!


  • C# - הוספת פעולת Poperty מאיבר לאיבר כשהם מקוננים ב List בתוך List.
    Y.Excel.AccessY Y.Excel.Access

    @dovid תודה רבה! אני לומד את הקוד.

    בכוונתי להתנסות ולהמשיך וללמוד את זה.
    במקביל אבקש שתי בקשות.

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

    2. אם זה קל מבחינתך - האם אפשר גם לעשות אופציה של

    Public class Table
    {
    public Rows Values;
    }
    public class Rows:List<List<object>> { }
    

    כלומר ליצור אובייקט LIST מקונן ב LIST ובו לשלוט.
    ואולי אפילו לוותר בכלל על קלאס ROWS.

    כך שהשימוש יוכל להיות גם כך

    /* אתחול. לא על זה השאלה ואני כבר פיתחתי את זה.
    אבל כאן אני רק מסביר מה כוונתי - אני מקבל את שם הטבלה ואני מתחבר אל הנתונים שלה,
    ואח"כ אשנה את הנתונים בערכים שבטבלה וממילא יווצר Update Insert Delete. */
    
    List<string> columnsNames
    columnsNames.Add("name");
    columnsNames.Add("family name");
    var t = new Table(ColumnsNames:= columnsNames, TableName:= "Table1" , ConnectionText:= "...............");
    
    // שימוש - זהו האופציה שרציתי לקבל:
    t.Values[0][2] = "tttttt";
    
  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

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