# پایگاه‌های داده > سایر پایگاه‌های داده > Access >  backup خودکار

## dosetddaram

با سلام به همگی 2تا سئوال دارم :
1 :میخواهم فایل دیتا بیس من  در دو directoriy دیگر هم ذخیره گردد                                      2 : به بیان دیگر update backup من با هر تغییر کوچکی (refresh)انجام گیرد 


دوستتون دارم...

----------


## شاپرک

ببین به دردت میخوره :
http://www.barnamenevis.org/sh...ad.php?t=47858

----------


## moustafa

یک make table query  بساز که اطلاعات جدول اصلی  را در جدولهای فایل backup  درمسیرهای مختلف وارد می کنه 
 یا یه delete query  از جدول بک اپ بساز و یک کوئری الحاقی که اطلاعات جدول اصلی را به جدول پک اپ وارد کنه 
حالا با یک ماکرو یا دودستور دو کوئری حذفی و الحاقی پشت سرهم اجرا بشه

----------


## dosetddaram

سلام شاپرک جون
من در جواب سئوال شما به آدرس http://www.barnamenevis.org/sh...ad.php?t=47858
در تاپیک چه کنم لطفا؟
مشکلم حل نشد در بعد از اضافه کردن فرم و ماژول به دیتا بیس خودم هنگام اجرای فرم با خطای زیر مواجه میشوم:
user defind type not defind

----------


## dosetddaram

ممنون مصطفی جون از جوابتون 
چون تازه کارم
از گفته های شما سر در نیاوردم 
فکر میکنم با جواب شاپرک به خواسته ام خواهم رسید

----------


## شاپرک

فکرنمیکنم مشکلی داشته باشه.
میشه برنامه رو بذاری ؟

----------


## dosetddaram

شاپرک جون من فقط فرم1 و module1 را به دیتا بیس خودم paste  کرده ام و هیچ تغییر دیگری نداده ام.

----------


## شاپرک

چون شما Exclusive باز میکنی
Tools>Options>Advansed
Default open mod   ==> Shared  رو انتخاب کن .

----------


## moustafa

> ممنون مصطفی جون از جوابتون 
> چون تازه کارم
> از گفته های شما سر در نیاوردم


من هم همیشه ساده ترین راه ممکنه را جواب میدهم 
تشخیص انتخاب روش بستگی به خود شخص داره  
شما یه برنامه داری در درایوی D  یه کپی از اون در درایو مثلا F ایجاد بکن بنام bckup
در برنامه اصلی یه کوئری در نمای طراحی تعریف و جدولی را که میخواهی از ان پشتیبان گیری کنی اضافه کن روی *دوبارکلیک کن تا در توری نشان داده شود 
از منوی کوئری زیر منوی make table query را انتخاب کن  واپشن another databbae
در قسمت file name ادرس فایل را با  browser  بردار
در tablename  اسم همان جدول را انتخاب و ok کن

----------


## dosetddaram

سلام 
شاپرک جون
ببخشید که وقتتون را میگیرم

با انجام کارهایی که گفتی نتیجه ای حاصل نشد(البته وضعیت من از قبل هم در حالت share بود)
برنامه اولیه ای که back up به صورت صحیح انجام میگیرد در زیر آمده است و (دیتا بیس من که در گفتگوی قبلی برات فرستاده بودم )

دوستتون دارم...

----------


## dosetddaram

سلام مصطفی جون
ببخشید وقتتون را میگیرم 

خدمتتان عرض کنم که من نمیخواهم فقط table خاصی پشتیبان گیری شود میخواهم هر تغییری در هر جای دیتا بیس در یک مسیر دیگر نیز اعمال گردد.
راهکار شما را نیز رفتم  1 ساعت روش کار کردم اما روی back up هیچ اثری نمی کرد.

دوستتون دارم ...

----------


## شاپرک

دوباره ببیین

----------


## dosetddaram

شاپرک جون 
خیلی ممنون 
حله

دوستتون دارم ....

----------


## karmand

در این کد فایلی که ساخته می شود بنام test است که آن را نیز میتوان سئوالی نمود
میدانیم مشکلی که در bakup فایها وجود دارد همنام بودن انها و محلی که باید کپی شود میباشد اگر از قبل محل و نام را مشخص کنیم اشتباه است چون کپی حدید روی کپی قدیم می خورد لذا بهتر است از کاربر محل و آدرس ونام فایل جدید سئوال و یا نام را رندم انتخاب کنیم
در کد ذیل اول نام تیبل را می پرسد و بعد مسیر و نام dbرا
البته نمیدانم چرا کدها از راست نوشته میشود!
مثال برای مسیرc:\access\db1
Private Sub Command3_Click()
Dim makedb As Database
Dim namedir As String
Dim namefile As String
Dim strSQL As String
namefile = InputBox("&auml;&Ccedil;&atilde; &Igrave;&Iuml;&aelig;&aacute;")
namedir = InputBox("&atilde;&Oacute;&iacute;&Ntilde; &Iuml;&Ccedil;&iacute;&Ntilde;˜&Ecirc;&aelig;&Nti  lde;&iacute; &aelig; &Iuml;&iacute;&Ecirc;&Ccedil;&Egrave;&iacute;&Oacu  te;")
namedir = namedir & ".mdb"
Set ap = Application.FileSearch
  ap.lookin = namedir
  ap.filename = namefile
    If ap.Execute = 0 Then
      'strsql="SELECT nameshahr.CARD_NO INTO nameshahr IN 'D:\access\db1.mdb' from nameshahr;"
        strSQL = "SELECT " & namefile & ".* INTO test IN '" & namedir & "' from " & namefile & ";"
        DoCmd.RunSQL strSQL
       Else
       Exit Sub
     End If
 End Sub

----------


## moustafa

روش دیگه :
tools/uitillity database/database backup
تعیین مسیر و اسم فایل باخودت 
حتی تاریخ سیستم را وارد می کند 
با استفاده از customize به منوی امکانت برنامه ات ...database backup  اضافه را کن ودر" کپشن" اون بنویس "پشتیبان گیری از برنامه در مسیر دلخواه "

----------


## شاپرک

در تکمیل حرف مصطفی باید بگم که این امکان فقط در Acces 2003 وجود دارد .
در ضمن من یک تکه برنامه براش پیدا کردم .

----------


## dosetddaram

سلام به همگی 
کاملترین چیزی که میخواستم اینه...
ممنون از زحمات تک تک شما :قلب:  
 دوستتون دارم

----------


## moustafa

> در تکمیل حرف مصطفی باید بگم که این امکان فقط در Acces 2003 وجود دارد


.
Access12 را ببینی چی مگی 
واقعا اکسس امکانات فوق العاده ای برای تولید سریع یه برنامه تجاری با حداقل زحمت وجود داره

----------


## انگوران

با سلام مجدد - عطف به پاسخ آقا مصطفی ،  با توجه به اینکه delete query در فایل backup و append query در فایل اصلی قرار داره ماکروی مورد نظر چطور نوشته می شه .

----------


## انگوران

لطفاً راهنمائی بفرمائید .

----------


## انگوران

ظاهراً این سئوال از دید اساتید مخفی مونده

----------


## moustafa

> با سلام مجدد - عطف به پاسخ آقا مصطفی ،  با توجه به اینکه delete query در فایل backup و append query در فایل اصلی قرار داره ماکروی مورد نظر چطور نوشته می شه .


اگه هر دو فایل در یه مسیر و یه فایل نباشند از طریق برنامه اصلی با کد های زیر

Private Sub Command53_Click()
Dim obj As Object
Set obj = CreateObject("Access.Application")
obj.OpenCurrentDatabase ("F:\text\VaSLx.mde")
obj.DoCmd.OpenQuery "del"
Set obj = Nothing
obj.DoCmd.Quit
DoCmd.OpenQuery "bak"


End Sub
می تونی در پاسخ  به رویداد on time یه فرم   کدهای بالا رو بذاری
تا در زمانهای متوالی و خودکار بک اپ گرفته شود

----------


## انگوران

ضمن تشکر اگه نخوایم کد بنویسیم ماکروش چطوری درست می شه .

----------


## moustafa

با ماکرو فکر نکنم بشه !! قبلا هم کلی توصیه شده که از ماکرو استفاده نکنید ،چون امنیت نداره یا توسط کاربر ممکنه ویرایش و یا حذف بشه یا اینکه از طریق برنامه دیگر به روش بالا دستکاری بشه 
ثانیا مشکل چیه ؟ کدهای بالا رو کپی کن به رویداد مورد نظرت ،اسم دو کوئری و  مسیر فایل رو ویرایش کن

----------


## انگوران

مشکل خاصی نیست چون زمانی که از make table query برای backup استفاده می کنیم می تونیم جدول مورد نظرمون رو در مسیر دلخواه ایجاد کنیم . فقط از ما سئوال می کند همچین جدولی در این بانک وجود دارد آیا جایگزین بشه که ما می تونیم تائیدش کنیم و با کد docmd warming false اخطار مربوطه را نیز حذف و پیغام فارسی جایگزین کنیم .
اگه این روش منطقی باشه نیاز ما رو برآورده می کنه . باز هم از پاسخ و راهنمائی شما سپاسگزارم .

----------


## moustafa

maketable  کلیدها واندیکسها رو  حذف می کنه و انتقال نمی دهه و این مشکل وجو داره اگه بخواهی اطلاعات از جای دیگر بهش اضافه کنی بعلت نبودن کلید ،رکوردهای تکراری وارد بشه

----------


## HAMRAHSOFT.IR

کسی روشی برای فشرد  کردن بصورت فایل zip یا rar سراغ نداره

----------


## moustafa

> مشکل خاصی نیست چون زمانی که از make table query برای backup استفاده می کنیم می تونیم جدول مورد نظرمون رو در مسیر دلخواه ایجاد کنیم . فقط از ما سئوال می کند همچین جدولی در این بانک وجود دارد آیا جایگزین بشه که ما می تونیم تائیدش کنیم و با کد docmd warming false اخطار مربوطه را نیز حذف و پیغام فارسی جایگزین کنیم .
> اگه این روش منطقی باشه نیاز ما رو برآورده می کنه . باز هم از پاسخ و راهنمائی شما سپاسگزارم .


Docmd.setwarning False

----------


## انگوران

ممنونم - بعد از ارسال قصد اصلاح داشتم که فراموش شد .

----------


## samaneh_h

من این فایل رو از پست یکی از دوستان بر داشتم :متفکر:

----------


## hbahjat

میشه بپرسم چرا هیچکس رپلیکیشن را توصیه نمی کنه ؟

----------


## moustafa

ریپلیکیشن بری ادغام اطلاعات  وبروزرسانی  آن بکار میره نه بک آپ گیری

----------


## vivavoon

دوست عزیز نیازی به اینهمه دردسر نیست شما با برنامه backup  خود windows  میتونید این مشکل رو حل کنید البته اگه مشکل شما فقط backup گیری باشه در واقع شما با تنظیم Scheduled ویندوز تمام کارها رو بصورت اتوماتیک میتونید انجام دهید....

----------


## moustafa

> دوست عزیز نیازی به اینهمه دردسر نیست شما با برنامه backup  خود windows  میتونید این مشکل رو حل کنید البته اگه مشکل شما فقط backup گیری باشه در واقع شما با تنظیم Scheduled ویندوز تمام کارها رو بصورت اتوماتیک میتونید انجام دهید....


اون موقع باید به ازای هر سیستم بریم برای کاربران ناشی تنظیمات backup ویندوز رو انجام بدیم و هر بارم که ویندوز خراب شد مجددا .....................
روشهایی که دوستان ارائه فرمودند جزئی از برنامه است

----------


## M9.Moradi

ضمن تشکر از راهنمایی های همه دوستان با اینکه از آخرین گفتگو از این موضوع خیلی وقته که میگذره من یه سوال داشتم 
در 2007 چطوری میشه با کد نویسی از برنامه BackUp گرفت به طوری که مسیر و اسم فایل رو از کاربر بپرسه؟ منظورم اینکه تو روشی که توسط شاپرک و مصطفی عزیز ارائه شده در 2003 قابل استفاده است(صفحه دوم). می خواستم ببینم در 2007 معادلی داره یانه؟
دوم اینکه اگر بخواهیم از قسمتی از برنامه مثلا فقط جداول یا فقط فرم ها بک آپ بگیریم میشه یا نه؟ چطوری؟

----------


## takkhal

دوست گرامی تمام اون دستورات در 2007 هم قابل اجراست

----------

