بکاپ گرفتن در اکسس ، Backup Access ، پشتیبانگیری در اکسس ؟ هر اسمی که روش بذارید و با هر اسمی که صداش کنی چیزی از اهمیت موضوع داشتن نسخه پشتیبان از اکسس برنامه کم نمیکنه و اگه تا الان مطلبی تو حوزه آموزش اکسس و پشتیبانگیری در اکسس توی آفیس باز انتشار ندادیم به خاطر این بوده که میخواستیم سر فرصت ، با ارائه یه مطلب آموزشی و یه دوره مفصل ویدیویی به همراه نمونه فایل و مثال یه مرجع کامل برای این مسئله مهم ایجاد کنیم . بریم صر اصل مطلب :
روشهای مختلف پشتیبانگیری در اکسس
1- راحت ترین روش با استفاده از منوهای اکسس
مزایا :
راحت و در دسترسه و همه میتونن ازش به راحتی استفاده کنند
معایب :
برنامه رو که کامپایل یا در اصطلاح نهایی کنین دیگه کاربر نمیتونه ازش استفاده کنه .
راهکار مناسبی برای بازگردانی اطلاعات وجود نداره و کاربر باید به صورت دستی فایل رو کپی کنه .
برنامه نویس نمیتونه بهراحتی آپدیتها رو ارائه یده و با مشکل انتقال اطلاعات مواجه میشه
2- کپی گرفتن از برنامه اکسس توسط کدهی VBA
مزایا و معایب
مثل روش اوله با این تفاوت که پشتیبانگیری با استفاده از کدهای ویژوال بیسیک هست و یک فایل جدید با نام تاریخ و ساعت جاری تو یه پوشه مشخص صورت میگیره و روند کار سریع تر انجام میشه .
3- پشتیبانگیری فقط از جداول برنامه اکسس.
مزایا:
نسخه پشتیبان خیلی کم حجم تر از خود برنامه هست
آپدیتها راحت تر انجام میشه چون انتقال اطلاعات سریع تر انجام میشه
نیازی به برقراری ارتباط بین جداول و فرمها نیست .
معایب:
نمیشه از این روش توی شبکه استفاده کرد .
4- جدا کردن برنامه به دوقسمت جداول و فرمها .(پیشنهادی )
مزایا :
همواره جداول از فرمها و گزارشات جدا هست و خیلی راحت میشه اطلاعات رو روی شبکه یا حتی روی حافظه های قابل حمل داشت .
آپدیتها خیلی راحت انجام میشه چون تغییراتی که برنامه نویس میده معمولا تو فرمها و گزارشات هست که خب کاملا جدا هستند.
معایب:
فایل جداول یا در اصطلاح بک اند در معرض دید همه هست و باید یه فکری برای امنیتش بکنید . که البته راهکارهایی وجود داره .
همواره باید موقع اجرای برنامه ارتباط برنامه با بانک چک بشه که البته به راحتی قابل انجام هست و آموزشش داده شده.
توی این مطلب فقط قصد آموزش روش اول و دوم رو داریم و روش سوم و چهارم رو توی یه دوره مفصل ویدیویی به همراه نمونه فایلها و مثالها عرضه خواهیم کرد .
برای انجام روش اول کافیه مراحل زیر رو انجام بدین :
روی گزینه File اکسس کلیک کنید و مانند تصویر زیر گزینه Save Database as رو انتخاب کنین. با استفاده از این روش به راحتی میتونید یه کپی از برنامه جاری تو هر قسمتی که خواستین داشته باشین . ( خیلی ابتدایی)
و اما برای انجام روش دوم که نسخه پیشرفته تر از روش اول بک آپ گیری از فایل اکسس هست مراحل زیر رو دنبال کنید .
یه فرم برای نرم افزار خودتون به سلیقه خودتون ایجاد کنین که Unbound باشه ( یعنی به هیچ جدول یا کوئری وصل نباشه ) و یه دکمه با عنوان Backup یا هر چیزی که صلاح میدونین ایجاد کنین .
تو رویداد OnClick دکمه ای که تو فرم قرار دادین این کد رو قرار بدین :
Dim Source As String
Dim Target As String
Dim retval As Integer
Source = CurrentDb.Name
If Dir(CurrentProject.Path & “\Backup”, vbDirectory) = “” Then
MkDir CurrentProject.Path & “\Backup”
End If
Target = CurrentProject.Path & “\Backup\”
Target = Target & Shamsi() & ” ”
Target = Target & Format(Time, “hh-mm”) & “.accdb”
retval = 0
Dim objFSO As Object
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
retval = objFSO.CopyFile(Source, Target, True)
Set objFSO = Nothing
با اجرای کد بالا چه اتفاقی میافته ؟ یه کپی از برنامه در حال اجرا تو پوشه Backup تو مسیر جاری نرم افزار با یه اسم منحصر به فرد ایجاد میشه ، البته برای اجرای درست کد بالا نیاز به ماژولهای شمسی دارین چون نام نرم افزار از تاریخ شمسی جاری تشکیل شده که البته قبلا آموزش استفاده از توابع شمسی تو اکسس داده شده .
یه مشکلی وجود داره !!
اگه یک یا چند تا از فرمهای اکسس که دارای اطلاعات هستند باز باشند چون در حال استفاده هستند اکسس نمیتونه برنامه رو کپی کنه و ارور میده پس ما باید قبل از اجرای کد بالا به اکسس بگیم اگه فرمی به غیر از فرم پشتیبانگیری باز هست اون رو ببند و بعد اقدام به کپی کردن کن . که کدش به صورت زیر هست و باید به اول کد بالا اضافه کنیدش ، البته تو ویدیو آموزشی کامل توضیح داده شده.
Dim obj As Object
Dim strName As String
For Each obj In Application.CurrentProject.AllForms
If obj.Name <> “frmbackup” Then
DoCmd.Close acForm, obj.Name, acSaveYes
End If
Next obj
جناب آقای بحری سلام
خسته نباشید
شرمنده کدهای برنامه پشتیبان گیری از کل برنامه اکسس و بازیابی اطلاعات در مسیر دلخواه
رو اگر دارید و امکانش هست به بنده بدهید هر هزینه ای هم که داشته باشد ناقابله شماره حساب
بدهید میدم خدمتتون
ممنون
سلام ….خط یکی مونده به آخر جناب بحری ارور میده
سلام
نمی دونم چرا روی این خط خطا میده
MkDir CurrentProject.Path & “\Backup”
یعنی خط6
سلام و خسته نباشید.
می خواستم بدونم فرق بین کپی گرفتن از یک فایل اکسس و بک آپ گرفتن از همون فایل چیه ؟
سلام وخسته نباشید ممنون از زحمات و آموزشهای ارزنده جنابعالی .یاحق
سلام خط retval = objFSO.CopyFile(Source, Target, True)
خطای عدم دسترسی میده
Access Denid 70
تا چند روز پیش هم بد نبود یه تغییر کوچولو دادم ریخت بهم
جالب اینکه همین کد تو یه برنامه دیگه داره درست کار میکنه
09139767074
ممنون میشم کمکم کنید.
این ارور به دیلیل دسترسی نداشتن به جایی هست که میخواد کپی بشه