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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
27 פוסטים 8 כותבים 527 צפיות 7 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD dovid

    @אליהו-בן אתה כתבת את הקוד?
    אתה מסוגל לערוך/להבין אותו?

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

    @dovid
    לא כתבתי
    אבל אני מסוגל להבין

    chagoldC תגובה 1 תגובה אחרונה
    0
    • א אליהו בן

      @dovid
      לא כתבתי
      אבל אני מסוגל להבין

      chagoldC מנותק
      chagoldC מנותק
      chagold
      כתב ב נערך לאחרונה על ידי chagold
      #7

      @אליהו-בן מנסים לעזור לך. תפרט יותר.

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

      א תגובה 1 תגובה אחרונה
      2
      • chagoldC chagold

        @אליהו-בן מנסים לעזור לך. תפרט יותר.

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

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

        @chagold

        Dim order As Recordset
        Dim xhrRequset
        
        Dim url As String
        Dim res As String
        
          Set order = CurrentDb.OpenRecordset("'XXXXXXX")
        Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
        

        Do Until order.EOF
        'Url = "XXXXXXXXX?
        xhrRequest.Open "GET", url, False
        xhrRequest.Send
        res = xhrRequest.responseText
        Debug.Print url
        Debug.Print xhrRequest.responseText

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • א אליהו בן

          @chagold

          Dim order As Recordset
          Dim xhrRequset
          
          Dim url As String
          Dim res As String
          
            Set order = CurrentDb.OpenRecordset("'XXXXXXX")
          Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
          

          Do Until order.EOF
          'Url = "XXXXXXXXX?
          xhrRequest.Open "GET", url, False
          xhrRequest.Send
          res = xhrRequest.responseText
          Debug.Print url
          Debug.Print xhrRequest.responseText

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

          @אליהו-בן הקוד שצירפת מבצע בקשות GET לשרת אלמוני X, על פי רשימה מתוך הטבלה שנפתחת כ-order. במקרה שהנתונים בשרת X השתנו, (ובהנחה הפשוטה שאין איזה שירות cache מקומי פעיל), אתה אמור לקבל תוצאות עדכניות בכל פעם.

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

          האם אני צודק?

          א תגובה 1 תגובה אחרונה
          1
          • א אליהו בן

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

            קינג קומפיוטרק מנותק
            קינג קומפיוטרק מנותק
            קינג קומפיוטר
            כתב ב נערך לאחרונה על ידי
            #10
            פוסט זה נמחק!
            תגובה 1 תגובה אחרונה
            0
            • א אליהו בן

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

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

              @אליהו-בן אם אתה רוצה לרענן את הטופס כל כמה שניות/דקות, אתה יכול להגדיר בעיצוב טופס, במאפיין אירוע>בעת אירוע פסיקת שעון, את הקוד הבא:

              me.form.refresh
              

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

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

                @אליהו-בן הקוד שצירפת מבצע בקשות GET לשרת אלמוני X, על פי רשימה מתוך הטבלה שנפתחת כ-order. במקרה שהנתונים בשרת X השתנו, (ובהנחה הפשוטה שאין איזה שירות cache מקומי פעיל), אתה אמור לקבל תוצאות עדכניות בכל פעם.

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

                האם אני צודק?

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

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

                @אליהו-בן הקוד שצירפת מבצע בקשות GET לשרת אלמוני X, על פי רשימה מתוך הטבלה שנפתחת כ-order. במקרה שהנתונים בשרת X השתנו, (ובהנחה הפשוטה שאין איזה שירות cache מקומי פעיל), אתה אמור לקבל תוצאות עדכניות בכל פעם.

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

                האם אני צודק?

                כן אתה צודק, הרשימה בטבלאות לא מעדכנת את השרת!
                האם יש מה לעשות?

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

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

                  Y.Excel.AccessY תגובה 1 תגובה אחרונה
                  5
                  • OdedDvirO OdedDvir

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

                    Y.Excel.AccessY מנותק
                    Y.Excel.AccessY מנותק
                    Y.Excel.Access
                    כתב ב נערך לאחרונה על ידי
                    #14

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

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

                    ראיתי את הקוד (דיברתי עם גילוי אליהו) והבעיה לכאורה נעוצה באובייקט -

                    Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
                    

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

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

                    ראיתי את הקוד ולא הצלחתי לפתור... 😞

                    Y.Excel.Access @ gmail.com

                    OdedDvirO תגובה 1 תגובה אחרונה
                    0
                    • Y.Excel.AccessY Y.Excel.Access

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

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

                      ראיתי את הקוד (דיברתי עם גילוי אליהו) והבעיה לכאורה נעוצה באובייקט -

                      Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
                      

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

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

                      ראיתי את הקוד ולא הצלחתי לפתור... 😞

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

                      @Y-Excel-Access ההסבר שהצעת לתופעה, שיש דחייה על ידי השרת של בקשות תדירות של נתונים דומים, לא מסביר מדוע סגירה ופתיחה מחדש של אקסס - כן מועילה? 🤔 לכן חשבתי שהבעייה היא בעדכון של הנתונים הקיימים באקסס.
                      אגב, הבקשה היא GET ולא אמורה להעלות נתונים לשרת, רק למשוך ממנו.

                      Y.Excel.AccessY תגובה 1 תגובה אחרונה
                      1
                      • OdedDvirO OdedDvir

                        @Y-Excel-Access ההסבר שהצעת לתופעה, שיש דחייה על ידי השרת של בקשות תדירות של נתונים דומים, לא מסביר מדוע סגירה ופתיחה מחדש של אקסס - כן מועילה? 🤔 לכן חשבתי שהבעייה היא בעדכון של הנתונים הקיימים באקסס.
                        אגב, הבקשה היא GET ולא אמורה להעלות נתונים לשרת, רק למשוך ממנו.

                        Y.Excel.AccessY מנותק
                        Y.Excel.AccessY מנותק
                        Y.Excel.Access
                        כתב ב נערך לאחרונה על ידי Y.Excel.Access
                        #16

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

                        @Y-Excel-Access ההסבר שהצעת לתופעה, שיש דחייה על ידי השרת של בקשות תדירות של נתונים דומים, לא מסביר מדוע סגירה ופתיחה מחדש של אקסס - כן מועילה? לכן חשבתי שהבעייה היא בעדכון של הנתונים הקיימים באקסס.
                        אגב, הבקשה היא GET ולא אמורה להעלות נתונים לשרת, רק למשוך ממנו.

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

                        Y.Excel.Access @ gmail.com

                        OdedDvirO תגובה 1 תגובה אחרונה
                        0
                        • Y.Excel.AccessY Y.Excel.Access

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

                          @Y-Excel-Access ההסבר שהצעת לתופעה, שיש דחייה על ידי השרת של בקשות תדירות של נתונים דומים, לא מסביר מדוע סגירה ופתיחה מחדש של אקסס - כן מועילה? לכן חשבתי שהבעייה היא בעדכון של הנתונים הקיימים באקסס.
                          אגב, הבקשה היא GET ולא אמורה להעלות נתונים לשרת, רק למשוך ממנו.

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

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

                          @Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:

                          והכל עבד רק השרת פשוט לא עונה תשובה.

                          לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
                          מתי יבוא אליהו ויתרץ?

                          Y.Excel.AccessY א 2 תגובות תגובה אחרונה
                          0
                          • OdedDvirO OdedDvir

                            @Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:

                            והכל עבד רק השרת פשוט לא עונה תשובה.

                            לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
                            מתי יבוא אליהו ויתרץ?

                            Y.Excel.AccessY מנותק
                            Y.Excel.AccessY מנותק
                            Y.Excel.Access
                            כתב ב נערך לאחרונה על ידי Y.Excel.Access
                            #18

                            @OdedDvir לא חזר כלום.
                            ה response היה פשוט == "".

                            Y.Excel.Access @ gmail.com

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

                              @Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:

                              והכל עבד רק השרת פשוט לא עונה תשובה.

                              לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
                              מתי יבוא אליהו ויתרץ?

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

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

                              @Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:

                              והכל עבד רק השרת פשוט לא עונה תשובה.

                              לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
                              מתי יבוא אליהו ויתרץ?

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

                              OdedDvirO תגובה 1 תגובה אחרונה
                              0
                              • א אליהו בן

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

                                @Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:

                                והכל עבד רק השרת פשוט לא עונה תשובה.

                                לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
                                מתי יבוא אליהו ויתרץ?

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

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

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

                                לדעתי האקסס מחזיר את התשובה הקודמת הוא מחזיר מה שנאמר בפעם הקודמת

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

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

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

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

                                  לדעתי האקסס מחזיר את התשובה הקודמת הוא מחזיר מה שנאמר בפעם הקודמת

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

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

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

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

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

                                  נקודות חשובות:

                                  1. אם אני משכפל את הקובץ ושולח מקובץ A ואח"כ שולח מקובץ B זה עובד כראוי (שוב, פעם אחת בקובץ B), כלומר לא הנקודה סגירת הקובץ, אלא יותר פתיחה ואתחול שלו מחדש
                                  2. אם אני משכפל את הטופס עצמו זה עדיין לא עובד טוב בפעם השניה
                                  3. גם אחרי הפעלה פעם אחת דרך האקסס, עדיין מתאפשר לשלוח דרך הדפדפן את הבקשה וזה עובד כראוי
                                  4. כמו שאפשר לראות אני משתמש לשליחת הבקשות באובייקט MSXML2.XMLHTTP

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

                                  OdedDvirO תגובה 1 תגובה אחרונה
                                  0
                                  • א אליהו בן

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

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

                                    נקודות חשובות:

                                    1. אם אני משכפל את הקובץ ושולח מקובץ A ואח"כ שולח מקובץ B זה עובד כראוי (שוב, פעם אחת בקובץ B), כלומר לא הנקודה סגירת הקובץ, אלא יותר פתיחה ואתחול שלו מחדש
                                    2. אם אני משכפל את הטופס עצמו זה עדיין לא עובד טוב בפעם השניה
                                    3. גם אחרי הפעלה פעם אחת דרך האקסס, עדיין מתאפשר לשלוח דרך הדפדפן את הבקשה וזה עובד כראוי
                                    4. כמו שאפשר לראות אני משתמש לשליחת הבקשות באובייקט MSXML2.XMLHTTP

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

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

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

                                    יש כמה הצעות לפיתרון, מהקל לכבד:

                                    1. להוסיף את הכותרות הבאות לאובייקט כשאתה יוצר אותו, בתקווה שהשרת יכבד אותן:
                                        Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
                                        xhrRequest.setRequestHeader "pragma", "no-cache"
                                        xhrRequest.setRequestHeader "Cache-Control", "no-cache, no-store"
                                       Do Until order.EOF
                                       ...
                                    
                                    1. להשתמש באובייקט החלופי WinHttp.WinHttpRequest.5.1, שלא משתמש במטמון. שמות המתודות הנדרשות בו זהים לשמות שבאובייקט MSXML2.XMLHTTP.6.0, דהיינו:
                                    Set httpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
                                    
                                    Do Until order.EOF
                                    'Url = "XXXXXXXXX?
                                    httpRequest.Open "GET", url, False
                                    httpRequest.Send
                                    res = httpRequest.responseText
                                    
                                    1. "לעבוד" על המנגנון של המטמון, ולגרום לו לחשוב שבכל פעם מדובר בבקשה שונה לחלוטין, על ידי הוספה של פרמטר "בובה" (dummy) המכיל מספר אקראי, כך:
                                    ' תריץ את הפקודה הזו פעם אחת בתחילת ההפעלה של התוכנה שלך
                                    Randomize
                                    ...
                                    ' ואז בקוד של השליחה
                                    
                                        ' יצירת מספר מ-1 עד 100000
                                        Dim dummyNumber As Long
                                        dummyNumber = Int((99999) * Rnd) + 1
                                    
                                        ' הוספת הפרמטר לבקשה
                                        xhrRequest.Open "GET", url, False & "&dummy=" & dummyNumber
                                    
                                    1. אם כלו כל הקיצין: תוכל לנקות את המטמון לפני כל הפעלה (על ידי קריאה ל-API של Windows) וכך לכפות יצירת סשן חדש בכל פעם.
                                      תדביק את הקוד הבא במודול חדש:
                                    Public Declare PtrSafe Function InternetSetOptionStr Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hInternet As Long, ByVal lOption As Long, ByVal sBuffer As String, ByVal lBufferLength As Long) As Integer
                                    
                                    Public Sub ClearInternetCache()
                                        InternetSetOptionStr 0, 42, 0, 0
                                    End Sub
                                    

                                    ובקוד של השליחה תקרא למתודה שיצרת לעיל, לפני השליחה:

                                        ClearInternetCache
                                        Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
                                    ...
                                    

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

                                    א Y.Excel.AccessY 2 תגובות תגובה אחרונה
                                    8
                                    • OdedDvirO OdedDvir

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

                                      יש כמה הצעות לפיתרון, מהקל לכבד:

                                      1. להוסיף את הכותרות הבאות לאובייקט כשאתה יוצר אותו, בתקווה שהשרת יכבד אותן:
                                          Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
                                          xhrRequest.setRequestHeader "pragma", "no-cache"
                                          xhrRequest.setRequestHeader "Cache-Control", "no-cache, no-store"
                                         Do Until order.EOF
                                         ...
                                      
                                      1. להשתמש באובייקט החלופי WinHttp.WinHttpRequest.5.1, שלא משתמש במטמון. שמות המתודות הנדרשות בו זהים לשמות שבאובייקט MSXML2.XMLHTTP.6.0, דהיינו:
                                      Set httpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
                                      
                                      Do Until order.EOF
                                      'Url = "XXXXXXXXX?
                                      httpRequest.Open "GET", url, False
                                      httpRequest.Send
                                      res = httpRequest.responseText
                                      
                                      1. "לעבוד" על המנגנון של המטמון, ולגרום לו לחשוב שבכל פעם מדובר בבקשה שונה לחלוטין, על ידי הוספה של פרמטר "בובה" (dummy) המכיל מספר אקראי, כך:
                                      ' תריץ את הפקודה הזו פעם אחת בתחילת ההפעלה של התוכנה שלך
                                      Randomize
                                      ...
                                      ' ואז בקוד של השליחה
                                      
                                          ' יצירת מספר מ-1 עד 100000
                                          Dim dummyNumber As Long
                                          dummyNumber = Int((99999) * Rnd) + 1
                                      
                                          ' הוספת הפרמטר לבקשה
                                          xhrRequest.Open "GET", url, False & "&dummy=" & dummyNumber
                                      
                                      1. אם כלו כל הקיצין: תוכל לנקות את המטמון לפני כל הפעלה (על ידי קריאה ל-API של Windows) וכך לכפות יצירת סשן חדש בכל פעם.
                                        תדביק את הקוד הבא במודול חדש:
                                      Public Declare PtrSafe Function InternetSetOptionStr Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hInternet As Long, ByVal lOption As Long, ByVal sBuffer As String, ByVal lBufferLength As Long) As Integer
                                      
                                      Public Sub ClearInternetCache()
                                          InternetSetOptionStr 0, 42, 0, 0
                                      End Sub
                                      

                                      ובקוד של השליחה תקרא למתודה שיצרת לעיל, לפני השליחה:

                                          ClearInternetCache
                                          Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
                                      ...
                                      

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

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

                                      @OdedDvir
                                      תודה רבה על ההסבר הנרחב והמפורט
                                      עצה א' מיד קפץ שגיאה
                                      עצה ב' עזר בצורה נפלאה
                                      ממילא כמובן לא המשכתי הלאה
                                      תודה רבה

                                      א תגובה 1 תגובה אחרונה
                                      3
                                      • א אליהו בן

                                        @OdedDvir
                                        תודה רבה על ההסבר הנרחב והמפורט
                                        עצה א' מיד קפץ שגיאה
                                        עצה ב' עזר בצורה נפלאה
                                        ממילא כמובן לא המשכתי הלאה
                                        תודה רבה

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

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

                                        OdedDvirO תגובה 1 תגובה אחרונה
                                        0
                                        • א אליהו בן

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

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

                                          @אליהו-בן נהדר!
                                          אם תערוך את ההודעה הראשונה שלך (בתחילת השרשור) זה יאפשר לך לערוך גם את הכותרת, ולהוסיף את המילה 'נפתר' בהתחלה.

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


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

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

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