الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إستفسار: لماذا بعد كل عملية نسخ احتياطي للملفات يتم إلغاء الحماية ( كلمة السر ) لملف الاكسيس

مغلقمُجاب
بدأه alaaaboulela في 23 مارس 2014 · 6 رد · 884 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأساتذة الكرام ...

السلام عليكم ورحمة الله ...

لماذ بعد كل عملية نسخ إحتياطي backup file لملف محمي بكلمة سر يتم إلغاء كلمة السر للملف الجديد 

نأمل الإفادة وكيف يتم تفادي المشكلة وعند النسخ الإحتياطي يكون الملف الإحتياطي محمي بكلمة السر ...

ملحوظه : الكود من ضمن سلسلة ابداع الاستاذة / زهرة بارك الله فيها ....

Option Compare Database
Option Explicit


Public Function Backup()
On Error GoTo Error_Handler
Dim sFile As String, oDB As DAO.Database
Dim strCurrentName As String
Dim oTD As TableDef
Dim qDF As QueryDef
Dim obj As AccessObject

strCurrentName = Application.CurrentObjectName
sFile = CurrentProject.Path & "\" & Left(CurrentProject.name, Len(CurrentProject.name) - 6) & " " & Format(date, "dd-mm-yyyy") & ".accdb"
If Dir(sFile) <> "" Then Kill sFile
Set oDB = DBEngine.Workspaces(0).CreateDatabase(sFile, dbLangGeneral)

'ÇáÌÏÇæá
For Each oTD In CurrentDb.TableDefs
If Left(oTD.name, 4) <> "MSys" Then
DoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acTable, oTD.name, oTD.name, False
End If
Next oTD

'ÇáÇÓÊÚáÇãÇÊ
For Each qDF In CurrentDb.QueryDefs
If Left(qDF.name, 1) <> "~" Then
DoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acQuery, qDF.name, qDF.name, False
End If
Next qDF


'ÇáäãÇÐÌ
For Each obj In CurrentProject.AllForms
DoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acForm, obj.name, obj.name, False
Next obj

'ÇáÊÞÇÑíÑ
For Each obj In CurrentProject.AllReports
DoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acReport, obj.name, obj.name, False
Next obj


'ÇáãÇßÑæ
For Each obj In CurrentProject.AllMacros
DoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acMacro, obj.name, obj.name, False
Next obj

'ÇáæÍÏÇÊ ÇáäãØíÉ
For Each obj In CurrentProject.AllModules
DoCmd.TransferDatabase acExport, "Microsoft Access", sFile, acModule, obj.name, obj.name, False
Next obj

MsgBox " ãÈÑæß ... Êã ÇäÔÇÁ äÓÎÉ ÅÍÊíÇØíÉ Ýí äÝÓ ãÌáÏ ÇáÞÇÚÏÉ ÈÊÇÑíÎ Çáíæã ", vbInformation, "BackUp"

Error_Handler_Exit:
On Error Resume Next
Set qDF = Nothing
Set oTD = Nothing
Set obj = Nothing
oDB.Close
Exit Function

Error_Handler:
MsgBox "The following error has occured." & vbCrLf & vbCrLf & "Error Number: " & Err.Number, vbCritical, "An Error has Occured!"
Resume Error_Handler_Exit

End Function

Function RunSub()
Call Backup
End Function

مشكورين مقدماً

تم تعديل هذه المشاركة بواسطة alaaaboulela في 24 مارس 2014 في 05:32

"اللهم إني أسألك عملاً خالصاً لوجهك الكريم وأعوذ بك من النفاق والرياء "


 


http://fmalaa.wordpress.com/


 


قسم البرامج والتدريب ونظم المعلومات المحاسبية والكورسات المجانية 


 

#5

اخي الفاضل 

 

وعليكم السلام ورحمة الله وبركاته

 

كود النسخ الإحتياطي يعمل بشكل صحيح ولا يوجد به اي مشكله

 

ولكن تكمن المشكله في عدم قراءتك للكود بشكل صحيح

 

لاحظ معي بارك الله بك ان هذا الكود لا علاقة له بأي كلمة سر لقاعدة البيانات وانما فقط يقوم بعمل التالي

 

1.  يقوم بإنشاء قاعدة بيانات جديده كليا وفارغة من اي كائنات بنفس اسم القاعدة التي تعمل عليها مع اضافة تاريخ اليوم في نفس مسار قاعدة البيانات

 

sFile = CurrentProject.Path & "\" & Left(CurrentProject.name, Len(CurrentProject.name) - 6) & " " & Format(date, "dd-mm-yyyy") & ".accdb"
 
Set oDB = DBEngine.Workspaces(0).CreateDatabase(sFile, dbLangGeneral)
 
لاحظ جملة  CreateDatabase
 
2. بعد انشاء قاعدة البيانات الجديده على نفس المسار يتم تصدير كافة كائنات قاعدة البيانات التي تعمل عليها الى القاعدة الجديده
 
DoCmd.TransferDatabase acExport
 
 
 
لذا حاول البحث في المنتدى عن موضوع نسخ احتياطي 
 
 
بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 29 مارس 2014 في 13:06

1
#6

اشكرك استاذتي الكريمة على الاهتمام والرد جزاك الله كل خير ....

فانا لا اعيب على الكود بالعكس فهو يعمل بكفاءة وبأحسن ما يكون ولكن كل ما اقصده هل يمكن التعديل عليه  لكي يحمي قاعدة البيانات ؟؟؟!!!!

ولكن لا بأس سأبحث عن الكود ان شاء الله ..

تم تعديل هذه المشاركة بواسطة alaaaboulela في 30 مارس 2014 في 05:55

"اللهم إني أسألك عملاً خالصاً لوجهك الكريم وأعوذ بك من النفاق والرياء "


 


http://fmalaa.wordpress.com/


 


قسم البرامج والتدريب ونظم المعلومات المحاسبية والكورسات المجانية 


 

#7 أفضل إجابة

الحمد لله تحصلت على الكود التالي احببت ان انقله هنا ليستفيد به الزملاء المهتمين بالأمر (المصدر / ا/  كابون - اوفسينا )

يقوم بعمل نسخة احتياطية من الملف لمجرد غلق الفورم الذي اقوم بوضعه به كل ما عليك هو عمل فولدر بأسم access على بارتشن D ليحفظ فيه النسخة الإحتياطية

Option Compare Database

Private Sub Form_Close()
On Error Resume Next '-------      by caboon    -----
Dim OldFile As String, DBwithEXT, DBwithoutEXT, NewFile As String, CopyMyDB
OldFile = [StrOld]
DBwithEXT = Dir(OldFile)
DBwithoutEXT = Left(DBwithEXT, Len(DBwithEXT) - 4)
If [BKUP] = True Then
NewFile = Me.StrNew & "\" & DBwithoutEXT & "-" & Format(Date, "yyyy-mm-dd") & "-" & Format(Now(), "Hh-Nn-Ss-AMPM") & Right(DBwithEXT, 4)
CopyMyDB = "cmd.exe /C copy " & """" & OldFile & """" & " " & """" & NewFile & """"
Shell CopyMyDB, 0
Exit Sub
End If
End Sub
Private Sub Form_Load()
[StrOld] = CurrentDb.Name
[StrNew] = "D:\Access\"
End Sub

اكرر شكري واتمناني لك استاذتي الكريمة بارك الله فيكي وفي صحتك وعمرك .

 

student2.rar

تم تعديل هذه المشاركة بواسطة alaaaboulela في 30 مارس 2014 في 05:58

"اللهم إني أسألك عملاً خالصاً لوجهك الكريم وأعوذ بك من النفاق والرياء "


 


http://fmalaa.wordpress.com/


 


قسم البرامج والتدريب ونظم المعلومات المحاسبية والكورسات المجانية 


 

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…