תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    קוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס

    תוכנה
    2
    6
    167
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • אוריי
      אוריי נערך לאחרונה על ידי

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

      ניתן לפנות אלי גם ב al0548446188@gmail.com
      ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

      OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • OdedDvir
        OdedDvir @אוריי נערך לאחרונה על ידי OdedDvir

        @אוריי
        שלב א: קוד בסיסי להעתקת בסיס הנתונים לקובץ חדש:

        Private Sub BackupDatabase()
            Dim FSO As Object
            Set FSO = CreateObject("Scripting.FileSystemObject")
            FSO.CopyFile "MyDB.accdb", "BackupDB.accdb", True  'Overwrite old file
        End Sub
        

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

        Private 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 שניות).

        זהו. עכשיו תתבצע בדיקה לשינוי התאריך בכל דקה!
        בהצלחה

        אוריי 2 תגובות תגובה אחרונה תגובה ציטוט 5
        • אוריי
          אוריי @OdedDvir נערך לאחרונה על ידי אוריי

          @OdedDvir אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:

          שלב א: קוד בסיסי להעתקת בסיס הנתונים לקובץ חדש:

          איפה אני מכניס את הקוד הזה?

          עריכה: הכנסתי את זה במודול
          ויש איזו שגיאה שלא הצלחתי להבין למה
          fcd241ef-20e0-401f-af12-0312724d221e-image.png

          קוד השגיאה: ab1e1878-f2a5-4441-9f0f-a9974c3db6ab-image.png

          @OdedDvir אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:

          צור בטופס הראשי משתנה LastBackupDate

          סליחה על הבורות לא הבנתי בדיוק מה אני אמור לעשות (איך ליצור את המשתנים)

          ניתן לפנות אלי גם ב al0548446188@gmail.com
          ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

          OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • OdedDvir
            OdedDvir @אוריי נערך לאחרונה על ידי OdedDvir

            @אוריי תיקנתי במקור (הסוגריים היו מיותרות)

            סליחה על הבורות לא הבנתי בדיוק מה אני אמור לעשות (איך ליצור את המשתנים)

            פשוט תרשום את השורה בקוד של הטופס (מחוץ לפונקציה)

            תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • אוריי
              אוריי @OdedDvir נערך לאחרונה על ידי

              @OdedDvir אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:

              כמובן שבתרחיש האמיתי עליך לשמור את הערך היכן שהוא (למשל בטבלה) ולשלוף אותו משם בפתיחת התוכנה.

              איך אני שומר אותו בטבלה (איזה קוד עושה את זה)?

              ניתן לפנות אלי גם ב al0548446188@gmail.com
              ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

              OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • OdedDvir
                OdedDvir @אוריי נערך לאחרונה על ידי

                @אוריי אמר בקוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס:

                איך אני שומר אותו בטבלה (איזה קוד עושה את זה)?

                בהנחה שהטבלה MyTable מכילה שדה בשם LastBackupTime, פשוט תשתמש במשפט UPDATE

                CurrentDb.Execute "UPDATE MyTable SET LastBackupTime=#" & Format(LastBackupTime, "yyyy/mm/dd") & "#", dbFailOnError
                

                הערה:
                השימוש כאן בפונקציה Format לעיצוב התאריך מאד חשוב, כי אחרת שמירת התאריך עלולה להשתנות לפי מערכת ההפעלה, והתאריך 1 במרץ עלול להפוך ל 3 בינואר במערכת אחרת.

                תגובה 1 תגובה אחרונה תגובה ציטוט 2
                • 1 / 1
                • פוסט ראשון
                  פוסט אחרון
                בא תתחבר לדף היומי!