קוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס
-
@אוריי
שלב א: קוד בסיסי להעתקת בסיס הנתונים לקובץ חדש:Private Sub BackupDatabase() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile "MyDB.accdb", "BackupDB.accdb", True 'Overwrite old file End Sub
שלב ב: בדיקה אם התאריך השתנה:
עליך לבצע בדיקה האם התאריך השתנה, לשם כך עליך לשמור במשתנה את תאריך הגיבוי האחרון
צור בטופס הראשי משתנה LastBackupDatePrivate LastBackupTime as Date
שלב ג: אתחול המשתנה בפתיחת התוכנה
נשתמש בארוע Form_Load() של הטופס הראשיPrivate Sub Form_Load() ' ... LastBackupTime = #1/1/2000# 'סתם ערך ישן לדוגמא End Sub
כמובן שבתרחיש האמיתי עליך לשמור את הערך היכן שהוא (למשל בטבלה) ולשלוף אותו משם בפתיחת התוכנה.
שלב ד: יצירת ארוע פסיקת שעון בטופס הראשי:
עכשיו צריך לבדוק מדי פעם האם התאריך השתנה מהגיבוי האחרון, ואם כן - לקרוא לפונקציה BackupDatabaseלשם כך תשתמש בארוע Form_Timer() של הטופס הראשי (זה שפתוח תמיד בתוכנה):
Private Sub Form_Timer() dateNow = Date() If (Abs(DateDiff("d", LastBackupTime, dateNow)) > 0) Then BackupDatabase LastBackupTime = dateNow 'שמירת התאריך החדש End If End Sub
שלב ה (ואחרון): קביעת מרווח הזמן שבו ייקרא הארוע Timer
במאפייני הטופס הראשי יש מאפיין בשם "קצב פסיקת שעון". שם מגדירים (באלפיות שניה) את מרווח הזמן שעבורו הטופס קורא לפונקציה Timer(). כרגע הוא 0. תכניס שם ערך חדש כמו 60000 (=60 שניות).
זהו. עכשיו תתבצע בדיקה לשינוי התאריך בכל דקה!
בהצלחה -
@OdedDvir אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:
שלב א: קוד בסיסי להעתקת בסיס הנתונים לקובץ חדש:
איפה אני מכניס את הקוד הזה?
עריכה: הכנסתי את זה במודול
ויש איזו שגיאה שלא הצלחתי להבין למה
קוד השגיאה:
@OdedDvir אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:
צור בטופס הראשי משתנה LastBackupDate
סליחה על הבורות לא הבנתי בדיוק מה אני אמור לעשות (איך ליצור את המשתנים)
-
@אוריי אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:
איך אני שומר אותו בטבלה (איזה קוד עושה את זה)?
בהנחה שהטבלה MyTable מכילה שדה בשם LastBackupTime, פשוט תשתמש במשפט UPDATE
CurrentDb.Execute "UPDATE MyTable SET LastBackupTime=#" & Format(LastBackupTime, "yyyy/mm/dd") & "#", dbFailOnError
הערה:
השימוש כאן בפונקציה Format לעיצוב התאריך מאד חשוב, כי אחרת שמירת התאריך עלולה להשתנות לפי מערכת ההפעלה, והתאריך 1 במרץ עלול להפוך ל 3 בינואר במערכת אחרת.