באג באקסס | שימוש ב 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