באג באקסס | שימוש ב URLDownloadToFile לא שומר נתונים עדכניים
-
יש לי פונקציה שמוריד קובץ CSV מURL ושומר לתיקיה במחשב ומייבא לאקסס.
היום אני שם לב שבמקום שמירת הקובץ המעודכן אני מקבל שוב את הקובץ הישן.
האקסס שומר לי לתיקייה את הקובץ שהוא שמר אתמול במקום הקובץ החדש.כשאני מעביר את הקובץ אקסס למחשב אחר זה כן שומר את הקובץ המעודכן.
רק במחשב שבו אני משתמש יש לי את הבעיה הזאת.ניסיתי למחוק את הקובץ מהתיקייה לפני הייבוא, וזה לא עוזר, נותר לי קובץ חדש, אך עם הנתונים של אתמול.
הפעלה מחדש למחשב גם לא עזר.הוא שומר לי קובץ ששמור בקאש באקסס? קאש במחשב?
איך ניתן לבדוק את זה?מצורף הקוד:
Option Compare Database Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Sub ImportCSV_Click() Dim file As String file = "https://XXXX.co.il/File.csv" Dim done, saveTo saveTo = CurrentProject.PATH & "\Files\" & "File.csv" done = URLDownloadToFile(0, file, saveTo, 0, 0) If done = 0 Then Else MsgBox "נכשל בשמירת קובץ" End If 'ייבוא ' מחיקת השורות הישנות CurrentDb.Execute "Delete * from Table" ' ייבוא DoCmd.TransferText acImportDelim, "import template", "Table", saveTo, True MsgBox "הייבוא הסתיים" End Sub -
הסתדרתי.
הייתי צריך לנקות את המטמון לפני ההורדה.
מצורף הקוד המעודכן.Option Compare Database Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Declare PtrSafe Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long Private Sub ImportCSV_Click() Dim file As String file = "https://XXXX.co.il/File.csv" Dim done, saveTo saveTo = CurrentProject.PATH & "\Files\" & "File.csv" 'ניקוי מטמון DeleteUrlCacheEntry file done = URLDownloadToFile(0, file, saveTo, 0, 0) If done = 0 Then Else MsgBox "נכשל בשמירת קובץ" End If 'ייבוא ' מחיקת השורות הישנות CurrentDb.Execute "Delete * from Table" ' ייבוא DoCmd.TransferText acImportDelim, "import template", "Table", saveTo, True MsgBox "הייבוא הסתיים" End Sub
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות