דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. קוד vba ליצירת גיבוי לקובץ מסד הנתונים של אקסס

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

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

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

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

    OdedDvirO תגובה 1 תגובה אחרונה
    0
    • OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      השיב לאוריי ב נערך לאחרונה על ידי OdedDvir
      #2

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

      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 ב נערך לאחרונה על ידי אוריי
        #3

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

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

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

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

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

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

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

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

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

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          השיב לאוריי ב נערך לאחרונה על ידי OdedDvir
          #4

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

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

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

          תגובה 1 תגובה אחרונה
          1
          • אורייא מנותק
            אורייא מנותק
            אוריי
            השיב לOdedDvir ב נערך לאחרונה על ידי
            #5

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

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

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

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

            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לאוריי ב נערך לאחרונה על ידי
              #6

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

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

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

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

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

              תגובה 1 תגובה אחרונה
              2

              בא תתחבר לדף היומי!
              • התחברות

              • אין לך חשבון עדיין? הרשמה

              • התחברו או הירשמו כדי לחפש.
              • פוסט ראשון
                פוסט אחרון
              0
              • דף הבית
              • קטגוריות
              • פוסטים אחרונים
              • משתמשים
              • חיפוש
              • חוקי הפורום