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

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

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

שגיאה בVBA

מתוזמן נעוץ נעול הועבר תכנות
15 פוסטים 3 כותבים 356 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ס מנותק
    ס מנותק
    סקרן 0
    כתב ב נערך לאחרונה על ידי
    #1

    אני עובד כעת על המדריך המצוין של @OdedDvir לאקסס, (לצערי האשכול לתגובות ננעל משום מה)
    בכל אופן השגיאה לא קשורה אליו כך שזה נראה לי בסדר להעלות כנושא...
    כתבתי קוד לVBA וכנראה שטעיתי במשהו, הבעיה היא שכל ניסיון למחוק את הקוד לגמרי (כדי לעבוד עליו פעם אחרת) לא צלח, בכל פעם שסגרתי את הקובץ הוא מעלה את ההודעה הזו
    f7d67288-b9d6-4dd4-a660-6acf1ab4a7ff-image.png
    גם אחרי שמחקתי את הטופס ויצרתי מחדש ג"כ כתב לי אותו הדבר
    אשמח אם יש למישהו פיתרון/הסבר לתקלה
    @OdedDvir מקווה שיש אחריות... 😊 😊 😊

    dovidD OdedDvirO 2 תגובות תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לסקרן 0 ב נערך לאחרונה על ידי dovid
      #2

      @סקרן-0

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

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

      @dovid אמר בחוקי הפורום:

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

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

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

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

      ס תגובה 1 תגובה אחרונה
      2
      • OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        השיב לסקרן 0 ב נערך לאחרונה על ידי
        #3

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

        תגובה 1 תגובה אחרונה
        4
        • ס מנותק
          ס מנותק
          סקרן 0
          השיב לdovid ב נערך לאחרונה על ידי סקרן 0
          #4

          @dovid אמר בשגיאה בVBA:

          מה אתה מעדיף עבור עצמך כשאתה מבקר במדריך ההוא, שהוא יהיה קצר עם עשר פוסטים, או שהוא יהיה שו"ת אינוסופי בעניינו?

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

          @OdedDvir בניסיונותיי הנואשים לצאת מהתסבוכת מחקתי את הקוד, כך שאני לא יכול להעלות אותו, אבל אח"כ התחלתי הכל מהתחלה, בניתי את המסד מחדש, וכתבתי שוב את הקוד, ואז קפצה שגיאה אחרת כדלהלן
          c90ef1fb-a028-4043-beca-6dad0e7858df-image.png
          c5fee87d-eb2a-4fef-8503-c1b1e3bf3b33-image.png
          אשמח לתגובתך (השם של הטבלה הוא מלכתחילה "Donations" עם S בסוף, כך שלא זו הטעות...)
          תודה ענקית על המדריך, הגעתי ממש מאפס, וכבר עכשיו אני יכול לראות את התועלת שיוצאת לי בכמה וכמה דברים באמת יישר כח עצום!!!

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

            @סקרן-0 תודה על הפרגון, זה חשוב לי.
            לענינך, יש טעות כתיב, צריך להיות כך:

            CurrentDb.Execute "qryUpdate_Status", dbFailOnError
            

            אגב, להבא, אתה יכול לצרף קטע קוד בטקסט רגיל (במקום צילום מסך) על ידי לחיצה על הסמל החמוד הזה:
            d3bba421-bdbf-47a8-b7cf-47c45bb7853d-תמונה.png
            כך יותר קל להגיב עליו.
            בהצלחה!

            ס תגובה 1 תגובה אחרונה
            4
            • ס מנותק
              ס מנותק
              סקרן 0
              השיב לOdedDvir ב נערך לאחרונה על ידי סקרן 0
              #6

              @OdedDvir תודה רבה (גם על הטיפ...)
              תיקנתי ולא עזר

              If donationsToUpdate > 0 Then
              UserMessage = UserMessage & vbNewLine & "האם ברצונך לעדכן סטטוס למיועדת?"
              If MsgBox(UserMessage, vbYesNo + vbMsgBoxRtlReading + vbMsgBoxRight) = vbYes Then
              CurrentDb.Execute "qryUpdate_Status", dbFailOnError
              End If
              End If
              
              

              עדיין אותה הודעה

              OdedDvirO תגובה 1 תגובה אחרונה
              0
              • OdedDvirO מנותק
                OdedDvirO מנותק
                OdedDvir
                השיב לסקרן 0 ב נערך לאחרונה על ידי
                #7

                @סקרן-0 יפה. כעת תצרף את הקוד של השאילתה qryUpdate_Status עצמה (תעתיק את הטקסט מתצוגת SQL)

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

                  @OdedDvir

                  UPDATE Donations SET Donations.StatusID = 2
                  WHERE (((Donations.StatusID)=1) AND ((Donations.TargetFamilyID) Is Not Null));
                  
                  
                  OdedDvirO תגובה 1 תגובה אחרונה
                  0
                  • OdedDvirO מנותק
                    OdedDvirO מנותק
                    OdedDvir
                    השיב לסקרן 0 ב נערך לאחרונה על ידי
                    #9

                    @סקרן-0 לפי האמור בהודעת השגיאה, השאילתה מצפה לפרמטר כלשהו, אך אינה מקבלת אותו.
                    ברוב המקרים זו טעות בהקלדה, או הפנייה לשדה שאינו קיים בטבלת הבסיס (Donations).
                    כשאתה מריץ ידנית את השאילתה qryUpdate_Status מהפאנל הימני, האם אקסס מבקשת להכניס ערך לפרמטר?

                    ס תגובה 1 תגובה אחרונה
                    1
                    • ס מנותק
                      ס מנותק
                      סקרן 0
                      השיב לOdedDvir ב נערך לאחרונה על ידי
                      #10

                      @OdedDvir לא. השאילתא פועלת מצוין

                      OdedDvirO תגובה 1 תגובה אחרונה
                      0
                      • OdedDvirO מנותק
                        OdedDvirO מנותק
                        OdedDvir
                        השיב לסקרן 0 ב נערך לאחרונה על ידי
                        #11

                        @סקרן-0 הממ.. עכשיו סיקרנת אותי. תבדוק רגע מה קורה אם אתה מחליף את השורה:

                        CurrentDb.Execute "qryUpdate_Status", dbFailOnError 
                        

                        בשורה:

                        DoCmd.RunSQL "UPDATE Donations SET Donations.StatusID = 2 WHERE (((Donations.StatusID)=1) AND ((Donations.TargetFamilyID) Is Not Null));"
                        
                        ס תגובה 1 תגובה אחרונה
                        2
                        • ס מנותק
                          ס מנותק
                          סקרן 0
                          השיב לOdedDvir ב נערך לאחרונה על ידי סקרן 0
                          #12

                          @OdedDvir בחיים לא קרה לי כזה דבר אבל פתאום זה עבד!!!
                          בלי שהחלפתי...
                          אין לי מושג מה קרה פתאום, אני כבר כמה שעות על זה...
                          אבל ניסיתי בכל זאת להחליף וג"כ עבד. ומכאן מתעוררת השאלה האם ייתכן שהיתה לי איזו שגיאה בפרוצדורה ולא בקוד עצמו?
                          (אני מדגיש שלא שיניתי כלום מהקוד שהעליתי ובכ"ז זה עבד 🤔
                          ושוב תודה רבה על ההשקעה ובעצם על כל העובדה שאני יושב וכותב קודים ואקסס.. וואו...
                          אגב: מה מבטא המשפט dbFailOnError ? (כמדומני שגם במדריך לא הסברת את זה)
                          עריכה: אחרי שניסיתי שוב כמה פעמים גיליתי שכשהרצתי עם הקוד המקורי הנתונים התעדכנו בלי החלונית של "הנך עומד לעדכן 2 רשומות" וכו', וכשהרצתי עם הקוד שנתת זה כן דרש כמו בהרצה ידנית של השאילתא
                          אין לי שמץ מה זה אומר אבל אולי תבין מזה משהו...

                          OdedDvirO 2 תגובות תגובה אחרונה
                          0
                          • OdedDvirO מנותק
                            OdedDvirO מנותק
                            OdedDvir
                            השיב לסקרן 0 ב נערך לאחרונה על ידי
                            #13

                            @סקרן-0 אויש... כעת אני אצטרך להכניס את זה למגירת התעלומות הבלתי פתורות של אקסס...

                            הפקודה Execute מקבלת שני פרמטרים, הראשון הוא חובה, ומציין את הדבר שרוצים להריץ, והשני הוא אופציונאלי, ויש לו כמה אפשרויות.
                            האפשרות dbFailOnError פירושה: להכשל במקרה של שגיאה, ולגלגל אחורה (=לבטל) כל שינוי שנעשה על ידי הרצת השאילתה.
                            אם לא מציינים אותו, ברירת המחדל היא האפשרות dbInconsistent שפירושה עדכון לא עקבי. זה מצב שאתה אמור להמנע ממנו בדרך כלל במערכת.

                            עיין בדקומנטציה של הפקודה באקסס למידע נוסף.

                            תגובה 1 תגובה אחרונה
                            4
                            • OdedDvirO מנותק
                              OdedDvirO מנותק
                              OdedDvir
                              השיב לסקרן 0 ב נערך לאחרונה על ידי OdedDvir
                              #14

                              @סקרן-0 אמר בשגיאה בVBA:

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

                              זו ההתנהגות המצופה, כי DoCmd מחקה את ההרצה הידנית של השאילתא ממשק המשתמש (הפאנל הימני), בעוד ש Execute פועלת באופן אחר, ללא קשר לממשק המשתמש בכלל.

                              ס תגובה 1 תגובה אחרונה
                              3
                              • ס מנותק
                                ס מנותק
                                סקרן 0
                                השיב לOdedDvir ב נערך לאחרונה על ידי
                                #15

                                @OdedDvir טוב לדעת
                                תודה בכל אופן, מקווה לסיים עם המדריך בימים הקרובים...

                                תגובה 1 תגובה אחרונה
                                2
                                • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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