מעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח **נפתר**
-
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 -
@אליהו-בן הקוד שצירפת מבצע בקשות
GET
לשרת אלמוניX
, על פי רשימה מתוך הטבלה שנפתחת כ-order
. במקרה שהנתונים בשרתX
השתנו, (ובהנחה הפשוטה שאין איזה שירותcache
מקומי פעיל), אתה אמור לקבל תוצאות עדכניות בכל פעם.אבל נראה לי שלא לכך התכוונת, אלא לשינויים שאתה עורך בטבלה שלך באקסס, ואינך רואה אותם משתקפים בשליחה (כלומר הרשימה לא מתעדכנת, ונשלחים אותם נתונים).
האם אני צודק?
-
פוסט זה נמחק!
-
@אליהו-בן אם אתה רוצה לרענן את הטופס כל כמה שניות/דקות, אתה יכול להגדיר בעיצוב טופס, במאפיין אירוע>בעת אירוע פסיקת שעון, את הקוד הבא:
me.form.refresh
ובמאפיין פסיקת שעון תכתוב כל כמה זמן אתה רוצה שזה יתרענן (זה עובד לפי מילישניות, כך שאם את רוצה שזה יקרה כל דקה אתה צריך לכתוב 60000)
-
@OdedDvir כתב במעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח:
@אליהו-בן הקוד שצירפת מבצע בקשות
GET
לשרת אלמוניX
, על פי רשימה מתוך הטבלה שנפתחת כ-order
. במקרה שהנתונים בשרתX
השתנו, (ובהנחה הפשוטה שאין איזה שירותcache
מקומי פעיל), אתה אמור לקבל תוצאות עדכניות בכל פעם.אבל נראה לי שלא לכך התכוונת, אלא לשינויים שאתה עורך בטבלה שלך באקסס, ואינך רואה אותם משתקפים בשליחה (כלומר הרשימה לא מתעדכנת, ונשלחים אותם נתונים).
האם אני צודק?
כן אתה צודק, הרשימה בטבלאות לא מעדכנת את השרת!
האם יש מה לעשות? -
@אליהו-בן אתה צריך לגרום ל-Recordset לשקף את השינויים בנתונים תיכף כשהם קורים. יש כמה דרכים לעשות את זה, וזה תלוי באופן שבו השינויים בנתונים מתבצעים (האם זה עריכה בטופס, שינוי ישיר בטבלה או על ידי קוד שרץ ברקע), וגם באופן שבו הקוד האמור לעיל מופעל (לחיצה על פקד בטופס, וכו'). תפרט בבקשה במה מדובר ואנסה לעזור לך.
כדי שלא אעביר את זמני בניחושי סרק במה בדיוק מדובר, כמו שעשו כולם כאן, אני ממתין לגילוי אליהו -
@OdedDvir כתב במעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח:
@אליהו-בן אתה צריך לגרום ל-Recordset לשקף את השינויים בנתונים תיכף כשהם קורים. יש כמה דרכים לעשות את זה, וזה תלוי באופן שבו השינויים בנתונים מתבצעים (האם זה עריכה בטופס, שינוי ישיר בטבלה או על ידי קוד שרץ ברקע), וגם באופן שבו הקוד האמור לעיל מופעל (לחיצה על פקד בטופס, וכו'). תפרט בבקשה במה מדובר ואנסה לעזור לך.
ראיתי את הקוד (דיברתי עם גילוי אליהו) והבעיה לכאורה נעוצה באובייקט -
Set xhrRequest = CreateObject("MSXML2.XMLHTTP.6.0")
שמתקשר לדף האינטרנט.
לפי מה שהבנתי מאליהו השגיאה שם מתרחשת דווקא כשנתונים דומים מועלים לאתר פעמיים. כלומר שהשגיאה מתרחשת מחמת שהHTTP או השרת שם מבין שנתונים דומים לא אמורים להשלח ולכן הוא מתעלם מהבקשה.רענון הטופס או סגירה ופתיחה שלו לא עוזרים, רק סגירת אקסס ופתיחתו מחדש.
ראיתי את הקוד ולא הצלחתי לפתור...
-
@Y-Excel-Access ההסבר שהצעת לתופעה, שיש דחייה על ידי השרת של בקשות תדירות של נתונים דומים, לא מסביר מדוע סגירה ופתיחה מחדש של אקסס - כן מועילה? לכן חשבתי שהבעייה היא בעדכון של הנתונים הקיימים באקסס.
אגב, הבקשה היאGET
ולא אמורה להעלות נתונים לשרת, רק למשוך ממנו. -
@OdedDvir כתב במעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח:
@Y-Excel-Access ההסבר שהצעת לתופעה, שיש דחייה על ידי השרת של בקשות תדירות של נתונים דומים, לא מסביר מדוע סגירה ופתיחה מחדש של אקסס - כן מועילה? לכן חשבתי שהבעייה היא בעדכון של הנתונים הקיימים באקסס.
אגב, הבקשה היא GET ולא אמורה להעלות נתונים לשרת, רק למשוך ממנו.אבל הRECORDSET עובד מצויין?
בזמנו בדקתי עם @אליהו-בן את השגיאה גם שורה אחר שורה... והכל עבד רק השרת פשוט לא עונה תשובה. -
@Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:
והכל עבד רק השרת פשוט לא עונה תשובה.
לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
מתי יבוא אליהו ויתרץ? -
@OdedDvir כתב במעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח:
@Y-Excel-Access מסתמא הRECORDSET עובד בדיוק כמו שהוא אמור לעבוד. השאלה היא מה אמרו לו לעשות... מה הכוונה במילים:
והכל עבד רק השרת פשוט לא עונה תשובה.
לא חזר כלום? חזרה אותה התגובה? חזרה שגיאה?
מתי יבוא אליהו ויתרץ?אני מתנצל, אין לי כל הזמן גישה לפורום
לדעתי האקסס מחזיר את התשובה הקודמת הוא מחזיר מה שנאמר בפעם הקודמת -
@אליהו-בן כתב במעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח:
לדעתי האקסס מחזיר את התשובה הקודמת הוא מחזיר מה שנאמר בפעם הקודמת
האם אתה יכול לוודא האם אתה אכן שולח בקשות שונות ועדיין מקבל עבורן תשובות זהות? קשה לי לקבל את הטענה שהשרת בודק האם הבקשות הרציפות דומות... הרבה יותר מסתבר לי לומר שהנתונים באקסס לא מתעדכנים בין השליחות, וממילא אתה שולח בדיוק את אותה הבקשה.
אם צדקתי, פרט את אופן העדכון והשליחה (כמו שציינתי בתגובה הראשונה שלי) ונוכל להתקדם.