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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. שאילתה אקסס

שאילתה אקסס

מתוזמן נעוץ נעול הועבר ארכיון code613m
10 פוסטים 5 כותבים 626 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שמואל
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טבלה באקסס לצורך העניין נאמר שמדובר בטבלה שמאחסנת תשלומים ונאמר שהלקוח ביצע רכישה ב- 12 תשלומים
    בטבלה מופיע שורה אחת כשבשדה מספר תשלומים מופיע 12
    כעת אני רוצה ליצור שורות כמספר התשלומים
    מדובר בטבלה קיימת כך שאין לי את האופציה כבר ביצירת השורה ליצור אירוע שיצור שורות כמספר התשלומים
    אם מישהוא יכול להדריך אותי מה הדרך?
    תודה רבה מראש

    פורסם במקור בפורום CODE613 ב05/01/2014 02:19 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • K מנותק
      K מנותק
      kingyes
      כתב ב נערך לאחרונה על ידי
      #2

      אני לא מכיר את אקסס, אבל אם זה ברמת מסד נתונים:
      האם יש לך איזה Event שנקרא לפני / אחרי שהאקסס מעדכן שורה במסד נתונים?

      אם כן, אתה יכול לרוץ עם לולאה ולהוסיף לפי הצורך..

      פורסם במקור בפורום CODE613 ב05/01/2014 07:33 (+02:00)

      תגובה 1 תגובה אחרונה
      1
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #3

        @שמואל

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

        לא הבנתי, מדובר בטבלה שמכילה תשלומים, ועכשיו אתה משנה את המבנה במקום שתהיה שורה אחת אתה רוצה לפצל לX שורות? (באותה טבלה או טבלת משנה)

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

        dim rs as recordset
        dim subrs as recordset
        
        set rs=currentdb.openrecordset("select * from tbl1")
        set subrs=currentdb.openrecordset("select * from tbl2")
        dim i as integer
        do until rs.eof
        	for i=1 to rs!PayCount
        		subrs.addnew
        		' כאן תוסיף את הנתונים לטבלת המשנה - או לטבלה הראשית. אל תשכח להוסיף את ה ID של הטבלה הראשית
        		subrs!bla=1 ' לדוגמא:
        		subrs!id=rs!id ' וזה דוגמא של משתנה שנלקח מהטבלה השנייה
        		subrs.update
        	next i
        
        rs.movenext
        loop
        

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

        פורסם במקור בפורום CODE613 ב05/01/2014 08:52 (+02:00)

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        תגובה 1 תגובה אחרונה
        1
        • clickoneC מנותק
          clickoneC מנותק
          clickone
          כתב ב נערך לאחרונה על ידי
          #4

          ובודאי במקום הקוד שמכניס דרך הוספת חדש בRS תוכל גם להשתמש בשאילתת INSERT

          INSERT INTO Tbl2 (id, idpay, bla1, bla2, bla3) values (1, 2, bla1, bla2, bla3)
          

          שים לב שתצטרך לאסוף קודם במשתנים את הכל ואז להחליף בVALUES.
          וזה בכל מקרה צריך להיות בתוך הלולאה.
          בגלל זה אני אוהב בכאלה מקרים להשתמש באובייקט RS, כי השאילתא במקרה הזה לא חוסכת הרבה.

          פורסם במקור בפורום CODE613 ב05/01/2014 09:13 (+02:00)

          אין טסט כמו פרודקשן.

          המייל שלי urivpn@gmail.com

          תגובה 1 תגובה אחרונה
          0
          • ש מנותק
            ש מנותק
            שמואל
            כתב ב נערך לאחרונה על ידי
            #5

            תודה רבה על התגובות
            מקווה שזה יעבוד
            אשתדל לעדכן

            פורסם במקור בפורום CODE613 ב05/01/2014 11:18 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • א מנותק
              א מנותק
              ארכיטקט
              כתב ב נערך לאחרונה על ידי
              #6

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

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

              אם לא הובן, אעלה קוד וגם קובץ אם אפשרי.

              בהצלחה.

              פורסם במקור בפורום CODE613 ב05/01/2014 13:51 (+02:00)

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

              תגובה 1 תגובה אחרונה
              2
              • dovidD מחובר
                dovidD מחובר
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                ארכיטקט הוציא לי את המילים מהמקלדת.
                בדיוק מה שהוא כתב: א. תלוי לשם מה, ב. אם חייבים ברמת מסד (אפי' לשמירה בטבלה (ע"י INSERT) ולא רק שאילתה) אז שאילתה עם קשר גומלין לטבלה עם מס' רץ.
                ואז משתילים בכל חודש את התאריך + מיקום במספר הרץ.

                פורסם במקור בפורום CODE613 ב05/01/2014 14:14 (+02:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • ש מנותק
                  ש מנותק
                  שמואל
                  כתב ב נערך לאחרונה על ידי
                  #8

                  תודה לכולם
                  הגם שאני צריך לנתונים ממשיים אפשרי בשאילתת יצירה
                  דרך אגב מה יעיל יותר שאילתת יצירה שמופעלת מאירוע בקוד VBA או שאילתה נטו

                  פורסם במקור בפורום CODE613 ב05/01/2014 14:52 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • א מנותק
                    א מנותק
                    ארכיטקט
                    כתב ב נערך לאחרונה על ידי
                    #9

                    recordset עובד יותר מהר משאילתה, אבל מבחינת תחזוקת קוד לפעמים כדאי לעשות sql.

                    פורסם במקור בפורום CODE613 ב05/01/2014 15:36 (+02:00)

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

                    תגובה 1 תגובה אחרונה
                    1
                    • clickoneC מנותק
                      clickoneC מנותק
                      clickone
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @ארכיטקט

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

                      מנסיון, זה תלוי מאד איזה תשלומים. אם זה שיקים,אז אפילו שזה לתצוגה בלבד אני מעדיף לעשות ממש ולא בשאילתא, מהסיבה שלפעמים שיקים חוזרים, ואז צריך להוציא אותם מהסכום הכללי. בעיקרון, גם באשראי זה קורה לפעמים, (שחברת האשראי מבטלת תשלום בודד מתוך סט של תשלומים, ועדיין לא דיברנו שם על ריטיינר).
                      דבר נוסף הוא החלוקה של האגורות, לדוגמא: אם יש 100 ש"ח ב3 תשלומים, התשלום הראשון יהיה 33.34 והשאר 33.33, וצריך לזכור לחשבן את זה בשאילתא, דבר נוסף,לפעמים בשיקים יש שיק חריג מבחינת מספר השיק או מבחינת הסכום,לדוגמא: ה33.34 נמצא דווקא בשיק האחרון ולא הראשון.

                      אבל האמת היא ש:
                      @ארכיטקט

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

                      ולכן במקרה של תצוגה בלבד, ארכיטקט צודק לחלוטין. (מלבד שבטבלה השנייה [ללא הקשרי גומלין]) הייתי שם מאה רשומות כדי לא להיות מוגבל עם ה24 תשלומים.
                      אם כי ברוב המקרים הלקוח איזה שלב ירצה לעשות עם הנתון הזה משהו אמיתי. - לדוגמא מעקב על ההפקדה של השיקים....
                      @ארכיטקט

                      recordset עובד יותר מהר משאילתה, אבל מבחינת תחזוקת קוד לפעמים כדאי לעשות sql.

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

                      פורסם במקור בפורום CODE613 ב05/01/2014 18:01 (+02:00)

                      אין טסט כמו פרודקשן.

                      המייל שלי urivpn@gmail.com

                      תגובה 1 תגובה אחרונה
                      1

                      בא תתחבר לדף היומי!
                      • התחברות

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

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