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

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

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

שגיאה בVBA

מתוזמן נעוץ נעול הועבר תכנות
15 פוסטים 3 כותבים 367 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • OdedDvirO OdedDvir

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

    CurrentDb.Execute "qryUpdate_Status", dbFailOnError
    

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

    ס מנותק
    ס מנותק
    סקרן 0
    כתב ב נערך לאחרונה על ידי סקרן 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
    • ס סקרן 0

      @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 מנותק
      OdedDvirO מנותק
      OdedDvir
      כתב ב נערך לאחרונה על ידי
      #7

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

      ס תגובה 1 תגובה אחרונה
      2
      • OdedDvirO OdedDvir

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

        ס מנותק
        ס מנותק
        סקרן 0
        כתב ב נערך לאחרונה על ידי
        #8

        @OdedDvir

        UPDATE Donations SET Donations.StatusID = 2
        WHERE (((Donations.StatusID)=1) AND ((Donations.TargetFamilyID) Is Not Null));
        
        
        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • ס סקרן 0

          @OdedDvir

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

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

          ס תגובה 1 תגובה אחרונה
          1
          • OdedDvirO OdedDvir

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

            ס מנותק
            ס מנותק
            סקרן 0
            כתב ב נערך לאחרונה על ידי
            #10

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

            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • ס סקרן 0

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

              OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              כתב ב נערך לאחרונה על ידי
              #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
              • OdedDvirO OdedDvir

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

                CurrentDb.Execute "qryUpdate_Status", dbFailOnError 
                

                בשורה:

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

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

                OdedDvirO 2 תגובות תגובה אחרונה
                0
                • ס סקרן 0

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

                  OdedDvirO מנותק
                  OdedDvirO מנותק
                  OdedDvir
                  כתב ב נערך לאחרונה על ידי
                  #13

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

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

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

                  תגובה 1 תגובה אחרונה
                  4
                  • ס סקרן 0

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

                    OdedDvirO מנותק
                    OdedDvirO מנותק
                    OdedDvir
                    כתב ב נערך לאחרונה על ידי OdedDvir
                    #14

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

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

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

                    ס תגובה 1 תגובה אחרונה
                    3
                    • OdedDvirO OdedDvir

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

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

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

                      ס מנותק
                      ס מנותק
                      סקרן 0
                      כתב ב נערך לאחרונה על ידי
                      #15

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

                      תגובה 1 תגובה אחרונה
                      2
                      • dovidD dovid העביר נושא זה מ-תכנות ב-
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


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

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

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