-
نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
با سلام
نمونه های متعددی از سری کدها برای بک آپ گیری و رستوری از جداول اکسس داخل سایت موجود میباشد
بله سرچ کردم و همه را تست ولی چیزی را که متوجه شدم اینه این قضیه به دلیل حساسیت خاص خود باید از برنامه مه ای مطمعا استفاده کرد
حال هدف من از این تاپیک بحث نقد نمونه های موجود میباشد
تا کاربران همچون بنده بتوانند بر حب نیاز و حساسیت کار خود انتخاب نماید
باشد با مشارکت اساتید این موضوع از سردرگمی و پراکندگی در آید
و به امید روزی که اکتیوکسی برای بک آپ گیری تولید شود و همانند اکتیوکس تاریخ شمسی بسیاری از مشکلات این موضوع نیز مرتفع گردد؟
-
1 ضمیمه
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
در نمونه ذیل که از سایت cpsd گرفته شده با نحوه تهيه نسخه پشتيبان به صورت فشرده ( زيپ شده ) از يك فايل اكسس آشنا خواهيم شد
نمونه بر اساس معماري FEBE طراحي و پياده سازي شده است.
در توضیحات آن طبق سایت منبع توصیه شده جهت بالاتر رفتن ايمني و كاهش احتمال از دست دهي اطلاعات ، اقدام به طراحي بانك به صورت دو بخشي نماييم
جهت مشاهده نحوه عملكرد در اين مثال :
ابتدا اقدام به كپي نمودن فايلها در داخل ريشه درايو C نماييد ( در داخل هيچ فولدري قرار نداشته باشد )
فايل XZip.dll را رجيستر كنيد
اقدام به باز نمودن فايل FrontEnd.mdb نموده و عمليات تهيه نسخه پشتيبان از فايل BackEnd.mdb را به انجام برسانيد
به جهت سهولت ايده گيري ، مثال موجود در ساده ترين حالت ممكن طراحي و پياده سازي گرديده و امكان پيچيده سازي تا سطوح بسيار بالاتري را خواهد داشت
بديهيست اجراي آن مراحل در اختيار خودتان قرار گرفته است که هینجا از سایر عزیزان درخواست میشود که با ایده های خود نسبت به بالا بردن سطوح کارائی نمونه اقدام و ارسال نمایند..
آدرس سایت منبع http://cpsd.ir/forum/showthread.php?...pid=361#pid361
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
برای زیپ کردن فایل جاری بنده از سابروتین زیر استفاده میکنم . لازم بذکر است که احتیاج به هیچ فایلی نمی باشد.
Sub ZipFile(SourceFile, FileNameZip)
' SourceFile :مسیر فایل مبدا Example: "F:\MyFolder\Myfile.mdb"
' FileNameZip : مسیر فایل زیپ Example: "F:\MyFolder\BackUp\Myfile_90-09-25.zip"
On Error GoTo errzip
Dim oApp As Object
If Len(Dir(FileNameZip)) > 0 Then Kill FileNameZip
NewZip FileNameZip
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameZip).CopyHere SourceFile
Set oApp = Nothing
Exit Sub
errzip:
MsgBox Err.Number & " - " & Err.Description
End Sub
Sub NewZip(sPath)
If Len(Dir(sPath)) > 0 Then Kill sPath
Open sPath For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
End Sub
در روتین فوق چنانچه فایل زیپ وجودداشته باشد ، آنرا پاک می کند (چون در برنامه من ابتدا یک پسوند تاریخ به نام آن اضافه می شد وسپس به این روال پاس می شد و درهر تاریخ فقط به یک بک آپ احتیاج بود ) در صورت عدم نیاز آن قسمت را حذف کنید .
فقط دقت کنید مقصد و مبدا اشتباه نشود
-
1 ضمیمه
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
برای استفاده آسان فایل نمونه زیر را مشاهده نمایید
-
1 ضمیمه
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
راستش من اين نمونه رو از همين سايت دانلود كردم (ولي نمي دونم كي و از كدوم تاپيك) و توي تمام برنامه هام هم ازش استفاده مي كنم، به جرات ميشه گفت خيلي كامله ضمن اينكه كل تنظيمات Backup رو هم در اختيار كاربر قرار ميده تا با هر تركيبي كه مي خواد اين كار رو انجام بده مثلا اينكه توي نام بك آپ تاريخ روز باشه يا شمارنده،مسير ذخيره بك آپ، زيپ كردن، چند بك آپ همزمان، Compact كردن هنگام بك آپ و .... و از همه مهمتر نتيجه بك آپ رو نشون ميده كه آيا به درستي انجام شده يا نه، و اگر نه، خطاي مورد نظر رو هم توي قسمت Results نشون ميده...
موفق باشيد
يا علي
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
دوستان یه موردی که یادم رفته بود بگم و حداقل برای من خیلی مهم بوده:
چون من همیشه دیتابیس برنامه هام از اینترفیس جدا هستش؛ بهترین نمونه برای بک آپ، فایل بالاست، چون این قابلیت رو داره که آدرس فایلی که قراره ازش بک آپ گرفته بشه رو بهش بدید... (در برنامه نگهداری و تعمیراتی که توی همین سایت گذاشتم از این نمونه استفاده کردم)
یا علی
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
دوست من royasaz_bam , نمونه موجود بر مبنای پیغام خصوصیتون ارائه شد و بر همین اساس متناسب با نیاز
در اون از اکتیوایکس استفاده شد چرا که در اکسس تا حد ممکن به برون سپاری کدها عقیده دارم , علی ایحال در مجموع تهیه نسخه پشتیبان به واسطه خود برنامه اصلی رو صلاح نمیدونم
این کار تا حد ممکن باید از طریق یک نرم افزار برون سیستمی به انجام برسه , در نرم افزارهای خودم روال بدین صورته
در زمان نیاز به تهیه نسخه پشتیبان ( حال چه از طریق درخواست صریح کاربر و یا چه از طریق پیشنهاد سیستم ** ) , برنامه اصلی بسته شده و سیستم بک آپ گیری ( یک فایل exe جانبی ) باز شده و عملیات تهیه نسخه پشتیبان و یا جایگذاری نسخه پشتیبان رو به انجام خواهد رسوند ( این فایل اجرایی متناسب با نیاز شخصی خودم طراحی شده )
حال چرا باید برنامه اصلی باز نباشه :
متاسفانه این مورد به یکی از مشکلات خود اکسس مرتبط میشه
اکسس برنامه ای هستش که در هنگام کار به اصطلاح دچار پدیده Bulbing میشه , در واقع برنامه به صورتی غیر متناسب و با رابطه ای غیر خطی با حجم اطلاعات وارد شده , شروع به رشد میکنه
این پدیده تا هنگام بسته شدن فایل اکسس به همراه فایل خواهد بود , البته جهت رفع کامل این نقیصه نیاز به انجام عملیات Compact وجود داره
در واقع عملیات Compact به نوعی همین تخلیه تورم ( Bulb ) ایجاد شده در داخل فایل هستش
خوشبختانه اکسس بدون انجام عملیات Compact قادر هستش که اطلاعات موقتی ایجاد شده در داخل خودش رو حذف کنه ولیکن پدیده ای دیگه که در این اثنا رخ میده این امر هستش که همچنان فضای اشغال شده اختصاص داده شده به اطلاعات موقتی ( Temp ) به صورت آزاد در نخواهند اومد , در همین اینجاست که جهت بازیافت این فضا شما ناگزیر به انجام عملیات Compact هستید
حال اگر شما بدون بستن یک فایل اکسس اقدام به تهیه نسخه پشتیبان از اون کنید , در واقع شما به فایل اکسس این فرصت رو نخواهید داد که پروسه بالا رو کامل کنه
در این حالت شما با فایل اکسسی رو برو هستید که همچنان درگیر با پدیده Bulb بوده و این احتمال وجود داره که در هنگام بازیافت اقدام به کج رفتاری کنه
هر چه زمان باز بودن فایل اکسس و تراکنشهای داخلی اون ( مرتبط با جداول ) بیشتر بوده باشه , لزوم بک آپ گیری برون سیستمی الزام بیشتری پیدا میکنه , چرا که پدیده نامناسب تورم در اینگونه موارد بیشتر نمود پیدا کرده
نمونه های دوستانمون نمونه های جالبی هستند خصوصا نمونه دوم
** در سیستم بک آپ گیری بنده ( نسخه شخصی و نه نمونه ارائه شده فعلی ) , این سیستم بر مبنای تعداد دفعات اجرا و یا فاصله زمانی آخرین نسخه پشتیبان عمل میکنه , ضمن اینکه همواره اجازه نگهداری 5 نسخه پشتیبان قبلی رو میده و با اضافه شدن نسخ بعدی از ابتدایی ترین نسخه شروع به حذف میکنه
فقط در خصوص نمونه دوستمون آقای Abbas Amiri
هیچ وقت ابتدا به ساکن نسخه بک آپ موجود رو حذف نکنید
If Len(Dir(FileNameZip)) > 0 Then Kill FileNameZip
ایتدا عملیات تهیه نسخه بک آپ جدید رو انجام بدید ( با یک نام موقتی ) در صورت موفقیت آمیز بودن عملیات , جایگزینی رو انجام بدید
همیشه اینطور در نظر داشته باشید که با کلیک بر روی دکمه تهیه نسخه پشتبان , این احتمال وجود داشته باشه که فرضا برق قطع بشه و دیگه فایل اصلیتون هم باز نشه
اون وقت شما هستید و یک فایل معیوب و نسخه پشتیبانی که حذف شده
موفق باشید
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
با تشکر ازرهنمود استادمان جناب Zero Defect تغییرات لازم درفایل ضمیمه پست 4 جهت علاقمندان ایجادشد.
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
به نام خدا
با سلام. تجربه حرف آقای پیروزمهر را تایید کرده است. اما اگر به برنامه خارج از آکسس دسترسی نداشتیم می شود که در کنار فایل back_end ابتدا یک کپی از روی آن تهیه شود. سپس با عملیات مورد نظر- مثلا کدی که اقای امیری ارایه کرده است - اقدام به گرفتن پشتیبان از روی این فایل که در حالت غیر فعال قرار داردنمود. این فایل اضافی می شود که در درایو دیگی هم باشد. یک حسن هم دارد که برای گرفتن پشتیبان روی درایو جانبی مانند فلش دیسک، کافی است همین فایل را مستقیما روی درایو جانبی کپی نمود.
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
نقل قول:
اما اگر به برنامه خارج از آکسس دسترسی نداشتیم می شود که در کنار فایل back_end ابتدا یک کپی از روی آن تهیه شود. سپس با عملیات مورد نظر- مثلا کدی که اقای امیری ارایه کرده است - اقدام به گرفتن پشتیبان از روی این فایل که در حالت غیر فعال قرار داردنمود
مورد بالايي كه خدمتتون عرض كردم رو دقيق مطالعه نفرموديد
فايل اكسس در هنگام بسته شدن خودش ميتونه اون مشكل داخلي خودش رو حل كنه
شما اگر از يك فايل كپي بگيريد و از اون بخوايد نسخه پشتيبان تهيه كنيد باز هم همون داستانها جاري هستش
در هر حال اون سيستم ، پيشنهادي بود
موفق باشيد
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
به نام خدا
نقل قول:
شما اگر از يك فايل كپي بگيريد و از اون بخوايد نسخه پشتيبان تهيه كنيد باز هم همون داستانها جاري هستش
باسلام. شاید این توضیح لازم بود که منظورم از کپی گرفتن back_end، استفاده از فرامین داخلی دیتابیس یا به نوعی اکسپورت کردن جداول فایل اصلی به فایل آکسس پشتیبان بود. وآنگاه...
در این روش تاحال به مشکلی برنخوردم. حتی گاهی که فایل اصلی خراب شده از این فایل برای بازگرداندن اطلاعات استفاده کرده ام. لذا چنانچه علیرغم این توضیح، باز هم مشکل پابرجا می ماند بفرمایید.
به هرحال استفاده از برنامه جنبی بصورت خودکار و بصورتی که همین مشکلات ناشی از فعال بودن آکسس را همراه نداشته باشد کار علیحده ای است.
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
با سلام RESMAILY
در خصوص استفاده از روش انتقال آبجکتها ( در اینجا جداول ) به یک دیتابیس دیگر , با هدف تهیه نسخه پشتیبان , تصور میکنم قبلا توضیحاتی داده شده بود ولیکن علاوه بر آن توضیحات توجیه منطقی خاصی نداره
بنا به روایت فیلم مارمولک برای رسیدن به خدا راههای زیادی وجود داره
از جمله برای تهیه نسخه پشتیبان هم برخی بدین گونه عمل میکنند
یک فایل جدید اکسس ایجاد و اقدام به انتقال جداول از داخل برنامه اصلی به داخل این فایل جدید میکنند
برخی دیگه هم از فایل اول ( که در واقع یک فایل مشتمل برجداول هستش ) افدام به تهیه نسخه پشتبان میکنند
راه حل اول مشمول یک رویه پیچیده شده غیر الزام آور هستش و رویه دوم اشاره به یک راه حل ساده تر و کم ریسک تر داره
نقل قول:
در این روش تاحال به مشکلی برنخوردم. حتی گاهی که فایل اصلی خراب شده از این فایل برای بازگرداندن اطلاعات استفاده کرده ام. لذا چنانچه علیرغم این توضیح، باز هم مشکل پابرجا می ماند بفرمایید.
در محدوده مسائل نظری , بخشی وجود داره با نام آمار و احتمال , به بیانی دیگه اگر مساله ای فاقد قطعیت 100% بوده باشه در مباحث آمار و احتمال قابلیت بررسی و کند و کاو رو خواهد داشت
فلسفه تهیه نسخه پشتبان به طرق مختلف و یا اساساً اختلاف سلیقه در خصوص چگونگی تهیه نسخه پشتبان , مرتبط خواهد بود با همین امر که هر کسی چه احتمالی رو به مثمرثمر تر بودن یک روش اختصاص بده
به قطع تهیه نسخه پشتیبان از یک فایل اکسس که در حالت اجرایی قرار نداشته باشه , کم ریسک ترین روش خواهد بود ( حداقل باتوجه به دانسته های بنده )
موفق باشید
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
به نام خدا
با سلام. پاسخ نبيل عزيز مثل هميشه خو ب و تميز و ديفراگمنت شده است. ولي خوب البته پاسخ عرايض من هم نيست.
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
RESMAILY
... ولي خوب البته پاسخ عرايض من هم نيست.
سلام دوست من , پاسخ سئوال خیلی شفاف بود , توضیحات تکمیلی رو با استناد به همون موارد بسط میدم امیدوارم که پاسخ کامل رو دریافت کنید
نقل قول:
بنا به روایت فیلم مارمولک برای رسیدن به خدا راههای زیادی وجود داره
از جمله برای تهیه نسخه پشتیبان هم برخی بدین گونه عمل میکنند
یک فایل جدید اکسس ایجاد و اقدام به انتقال جداول از داخل برنامه اصلی به داخل این فایل جدید میکنند
برخی دیگه هم از فایل اول ( که در واقع یک فایل مشتمل برجداول هستش ) افدام به تهیه نسخه پشتبان میکنند
راه حل اول مشمول یک رویه پیچیده شده غیر الزام آور هستش و رویه دوم اشاره به یک راه حل ساده تر و کم ریسک تر داره
به بیانی عامیانه تر , روش اول چیزی مشابه این امر هستش که لقمه رو به دور سر بچرخونیم و بعد وارد دهان کنیم
خیلی شفاف هستش : ابتدا یک فایل ایجاد کنیم ( خالی ) و بعد جداول رو به داخل اون Export کنیم !؟؟ تا در نهایت فایل جدید ایجاد شده , همسان با مرجع اولیه خودش بشه ؟!
بنده شخصاً از این روش استفاده نمیکنم و برای روش دیگران هم احترام قائلم
پس پاسخ سئوال اولتون تقدیم شده بود
.....
در خصوص اینکه تا همین لحظه هم با این روش مشکل پیدا نکردید و آیا مشکل ساز هست و یا خیر ؟!
رجوع کنید به :
نقل قول:
فلسفه تهیه نسخه پشتبان به طرق مختلف و یا اساساً اختلاف سلیقه در خصوص چگونگی تهیه نسخه پشتبان , مرتبط خواهد بود با همین امر که هر کسی چه احتمالی رو به مثمرثمر تر بودن یک روش اختصاص بده
وقتی در ابتدا عرض کردم خدمتتون که روش مدنظر شما رو به دلیل
نقل قول:
رویه پیچیده شده غیر الزام آور
شخصاً , پیرو اون نخواهم بود پس نظرم رو در خصوص اون هم عرض کرده بودم خدمت شما
یک قاعده ساده وجود داره , هر چه فرایند های اجرایی بیشتر و بیشتر ساده سازی شده باشند , احتمال وقوع اشکالات حین اجرا هم کم و کمتر خواهد شد
نقل قول:
در این روش تاحال به مشکلی برنخوردم. حتی گاهی که فایل اصلی خراب شده از این فایل برای بازگرداندن اطلاعات استفاده کرده ام.
خوب , فلسفه ایجاد نسخه پشتیبان همینه , اگر غیر از این امر متصور بشه که نمیشه اسم اون رو نسخه پشتیبان گذاشت
ضمن اینکه در هیچ جایی هم عنوان نشد که روش شما در نهایت ناکارآمد خواهد بود همونطوری که در ابتدای پاسخ قبلی هم عرض کردم خدمتتون و در واقع با توجه به همین یک جمله کل پاسخ شما داده شده بود :
نقل قول:
نا به روایت فیلم مارمولک برای رسیدن به خدا راههای زیادی وجود داره
معنای این جمله به روشنی یک جیز بود که روش شما هم راهی برای تهیه نسخه پشتیبان هستش , حتی شاید بهتر از مابقی راهها
در نهایت با توجه به اینکه شما هم نگاهی متفاوت به این موضوع دارید , در صورت امکان نمونه خودتون رو قرار بدید تا کسانی که مایل بودند از این روش استفاده کنند
موفق باشید
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
به نام خدا
با سلام. گرچه شركت من در اين بحث حكم ادعاي خياطي آن بنده خدايي است كه رويه مبل درست ميكند(!) ولي ديدم بحثي اقاي پيروزمهر در مورد پشتيبان گرفتن مستقيم از فايل در حال اجراي آكسس مطرح كرد و من در تجربه صحت آن را ديده بودم. گفتم چيزي بگويم. آنكه براي حل اين موضع روشي ابتدا به كار گرفتم (وبعدا هم به درد خورد) همين بود. يعني كه كپي را از فايلي كه در حال اجرا نيست بگيرم. گرچه در ادامه (طبق نظر نبيل) از برنامه هايي مانند smartbackup و اين قبيل هم استفاده نمودم. اما كنترل كردن روش قبلي اسان تر بود. وقتي فايل سالم پشتيبان مزبوررا را داشتم مي شد به روش هاي تكميلي (مانند آنچه كه آقاي اميري نوشت) از روي آن zip و rar و حتي فايل هاي رمز شده را باخيال راحت ازداخل برنامه(مثلا هنگان خروج از برنامه اصلي) تهيه نمايم. كه خوب مي نمايم.
در عين حال حق با شماست و بايد يك نمونه تقديم كنم. تا يكي دوساعت ديگر كه به منزل بروم اين كاررا مي كنم.(گرچه ساعت ثبتي اين تالار يك جوري است كه گاهي انگار ما نصف شب نشسنه ايم داريم كامنت مي گذاريم. در صورتيكه مثلا الآن ساعت 8.5 است مثلا)
-
1 ضمیمه
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
سلام ضمن تشکر از جناب امیری بابت زحمات فراوانی که در طول حضورشون تو سایت هم در زمان کاربری و همینطور پس ار مدیریتشون ...
نمونه خوبی (ضمیمه پست شماره 4 )که استاد امیری ارائه نمودند امروز متوجه شدم در صورتی که اقدامی جهت کنترل اون صورت نگیره ممکنه دردسر ساز بشه !!!
در صورت افزایش حجم برنامه اگر هنگام بک آپ گیری از برنامه خارج شویم عملیات فشرده سازی فرصت انجام پیدا نمیکنه و برنامه پشتیبان خراب میشه ! من برای کنترل این کار از پروگرس بار استفاده کردم نشد دکمه خروج را بعد از پشتیبان گیری قرارد دادم نشد و ...
لذا بر آن شدم از خود استاد بپرسم راه حلی هست یا خیر ؟ نمونه ضمیمه را برای تست قرار میدم ضمنا قبلا باید برنامه را با فرمها و جداول دیگه سنگین کنید خدا نگهدار
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
abdoreza57
سلام ضمن تشکر از جناب امیری بابت زحمات فراوانی که در طول حضورشون تو سایت هم در زمان کاربری و همینطور پس ار مدیریتشون ...
نمونه خوبی (ضمیمه پست شماره 4 )که استاد امیری ارائه نمودند امروز متوجه شدم در صورتی که اقدامی جهت کنترل اون صورت نگیره ممکنه دردسر ساز بشه !!!
در صورت افزایش حجم برنامه اگر هنگام بک آپ گیری از برنامه خارج شویم عملیات فشرده سازی فرصت انجام پیدا نمیکنه و برنامه پشتیبان خراب میشه ! من برای کنترل این کار از پروگرس بار استفاده کردم نشد دکمه خروج را بعد از پشتیبان گیری قرارد دادم نشد و ...
لذا بر آن شدم از خود استاد بپرسم راه حلی هست یا خیر ؟ نمونه ضمیمه را برای تست قرار میدم ضمنا قبلا باید برنامه را با فرمها و جداول دیگه سنگین کنید خدا نگهدار
احتمالا بکار گیری تابع sleep بعد از عملیت زیپ چاره ساز هست .
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub ZipFile(SourceFile, FileNameZip)
' SourceFile : نام ومسيرکامل فايلي که زيپ خواهدشد Example: "F:\MyProgram\Myfile.mdb"
' FileNameZip : نام ومسيرکامل فايل مقصد که ايجادخواهدشد Example: "F:\MyProgram\BackUp\Myfile_90-09-25.zip"
On Error GoTo errzip
Dim oApp As Object, Tmp As String
If Len(Dir(FileNameZip)) > 0 Then
Tmp = GetFilePathPart(FileNameZip, 1) & GetFilePathPart(FileNameZip, 2) & "tmp." & GetFilePathPart(FileNameZip, 3)
FileCopy FileNameZip, Tmp
Kill FileNameZip
End If
NewZip FileNameZip
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameZip).CopyHere SourceFile
Set oApp = Nothing
DoEvents
Sleep 3000 'سه ثانيه معطل مي کند
If Tmp <> "" Then
Kill Tmp
End If
Exit Sub
errzip:
MsgBox Err.Number & " - " & Err.Description
End Sub
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
دیشب که این تاپیک بوسیله کاربر عبدالرضا بالا اومد تصادفا امار بازدید را هم دیدم که 1100 نفر بود پست اخیر جناب امیری را بررسی کردم نمونه ای کم نظیر و بی نقص که واقعا با خیال راحت میتونید تو پروژه هاتون استفاده کنید ولی الان که ساعت 6 بعد ازظهر هست آمار بازدید بالای 1700 هست (دست کم 600 نفر از این تاپیک بازدید کردند ) تاپیکی که پاسخ اصلی و نهایی را فقط یه نفر داده یعنی همون پست آخری !!!
حدس بزنید این 600 نفر تو تاپیک چکار کردند ؟
خودم میگم :
1 پاسخ پرسش را بررسی کردند یا نکردند دیدند یا ندیدند!!!
2 از اینکه یه نفر هست پاسخ اکثر قریب به اتفاق سوالات را میدونه بدون اینکه مسائل را به حاشیه بکشه متعجب شدند!!
3 فقط رو تاپیک کلیک کردند بدون اینکه کاری داشته باشند !!!
4 به نظرشون این سمپل به درد نمی خورده ؟ دلیلش ؟ ها !؟ نمی دند
5 ...
دوستان خواهشی که به عنوان یه کاربر جدید تو سایت از همتون دارم این هست که قدر زحمات این عزیزان را بدونید هر چند با فشردن یه دکمه تشکر
موفق باشید و در پناه حق
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
سلام Access2013
لطف ميكنيد ، شما دوست گرامي عملكرد دستور Sleep رو توضيح بديد ؟
موفق باشيد
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
New Account
سلام Access2013
لطف ميكنيد ، شما دوست گرامي عملكرد دستور Sleep رو توضيح بديد ؟
موفق باشيد
با تشکر از دوست عزیزم جناب پیروزمهر بابت تذکر به جای ایشان .
سلام گرچه این راه فوری جواب می دهد ولی کلا با روح تابع sleep منافات دارد :
Sleep function: Suspends the execution of the current thread until the time-out interval elapses.
بنا براین باید بهترین کار را انجام داد :
بجای تابع sleep میتوانید مانند زیر عمل کنید. البته احتمالا راه های دیگری هم هست :
Sub ZipFile(SourceFile, FileNameZip)
' SourceFile : نام ومسيرکامل فايلي که زيپ خواهدشد Example: "F:\MyProgram\Myfile.mdb"
' FileNameZip : نام ومسيرکامل فايل مقصد که ايجادخواهدشد Example: "F:\MyProgram\BackUp\Myfile_90-09-25.zip"
On Error GoTo errzip
Dim oApp As Object, Tmp As String
If Len(Dir(FileNameZip)) > 0 Then
Tmp = GetFilePathPart(FileNameZip, 1) & GetFilePathPart(FileNameZip, 2) & "tmp." & GetFilePathPart(FileNameZip, 3)
FileCopy FileNameZip, Tmp
Kill FileNameZip
End If
NewZip FileNameZip
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameZip).CopyHere SourceFile
Set oApp = Nothing
DoEvents
Do While Len(Dir(FileNameZip)) = 0
Loop
Do Until FileLen(FileNameZip) > 1024
Loop
If Tmp <> "" Then
Kill Tmp
End If
Exit Sub
errzip:
MsgBox Err.Number & " - " & Err.Description
End Sub
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
متاسفانه زمان بک آب گیری طولانی و در نهایت ارور file not fond 53 میده !
لطف میکنید بررسی کنید ؟ در ضمن گاهی فایل بک اب دومی را داحل فایل زیپ شده قبل قرار میده .
اون تابع sleep مشکلش چی بود ؟ و سابروتین آخری ایرادش کجاست ؟
خدا نگهدار
-
1 ضمیمه
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
abdoreza57
سلام
متاسفانه زمان بک آب گیری طولانی و در نهایت ارور file not fond 53 میده !
لطف میکنید بررسی کنید ؟ در ضمن گاهی فایل بک اب دومی را داحل فایل زیپ شده قبل قرار میده .
اون تابع sleep مشکلش چی بود ؟ و سابروتین آخری ایرادش کجاست ؟
خدا نگهدار
در روش اخیر خط 18 ابتدا چک می کند که فایل زیپ ساخته شده یانه(در روال NewZip) در این روال یک فایل زیپ خالی به حجم یک کیلو بایت ساخته می شود و تا زمانی که محتویات فایل مورد نظر به آن منتقل نشود حجم آن بیشتر نمی شود . بنابر در خط 22 این موضوع چک شده و در صورت انجام از حلقه خارج می شود.
در ادامه فایل شما پس از اصلاح ارائه می شود.
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
ضمن تشکر از آقای امیری بابت زحمتی که کشیدند و تذکر جناب پیروزمهر که نمیدونم چرا تو این مورد من متوجه نشدم !
اینو از دید خودم که مبتدیم میگم ...
متاسفانه به نظر من اومدیم ابروش را درست کنیم زدیم چشمشو کور کردیم :
تو نمونه آخری همانطور که عرض کردم زمان بکاب گیری به صورت عجیبی افزایش یافته است خطا نمیگیره ولی کلافه کننده است (البته این درصورتی است که حجم فایل زیاد باشه ) نمونه پست 13 را چرا تغییر دادید ؟
تابع Sleep مشکل ساز هست یا دلیل دیگری داشت که تغییر کرد؟ هر چند تو بند آخری فرمودید
نقل قول:
بجای تابع sleep میتوانید مانند زیر عمل کنید. البته احتمالا راه های دیگری هم هست :
فکر میکنم باید به فکر راههای دیگری بود چون تو یه فایل حجیم کار کردن با این دکمه سخت هست!!!
خدا نگهدار
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
abdoreza57
سلام
ضمن تشکر از آقای امیری بابت زحمتی که کشیدند و تذکر جناب پیروزمهر که نمیدونم چرا تو این مورد من متوجه نشدم !
اینو از دید خودم که مبتدیم میگم ...
متاسفانه به نظر من اومدیم ابروش را درست کنیم زدیم چشمشو کور کردیم :
تو نمونه آخری همانطور که عرض کردم زمان بکاب گیری به صورت عجیبی افزایش یافته است خطا نمیگیره ولی کلافه کننده است (البته این درصورتی است که حجم فایل زیاد باشه ) نمونه پست 13 را چرا تغییر دادید ؟
تابع Sleep مشکل ساز هست یا دلیل دیگری داشت که تغییر کرد؟ هر چند تو بند آخری فرمودید
فکر میکنم باید به فکر راههای دیگری بود چون تو یه فایل حجیم کار کردن با این دکمه سخت هست!!!
خدا نگهدار
سلام
تا انجا که فهمیدم ، شما می توانید از تابع sleep استفاده کنید چون به عملیاتی که قبلا شروع شده اند کاری ندارد و فقط به عملیات جاری( که اجرای کدهای همان خط به بعد است) محدود می شود. تنها موضوعی که می ماند این است که آیا چنانچه زمان تعیین شده کمتر از مدت پروسه مورد نظرمان بود ، و فرضا دکمه فرمانی زده شد عملیات نیمه کاره رها نخواهد شد؟
معنی جمله ای هم که در بالا آمده دقیقا به این صورت است :
"تعلیق عملیات موضوع فعلی تا پایان زمان تعیین شده " بنابر این هیچ تداخلی با موضوع هایی(threads) که قبلا شروع شده ندارد .
احتمالا جناب پیروزمهر بتوانند توضیحات بیشتری در این باب جهت بنده و دیگران دوستان پیگیر این تاپیک داشته باشند .
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
سلام
نقل قول:
احتمالا جناب پیروزمهر بتوانند توضیحات بیشتری در این باب جهت بنده و دیگران دوستان پیگیر این تاپیک داشته باشند .
با عنایت به پست شماره 14 کاربر گرامی Access2013 ، متاسفانه ظاهراً توضیحات بیشتر و یا بحث بر سر کد فردی دیگه ، تفسیر به حاشیه روی میشه و بر همین اساس توضیح بیشتری ندارم چرا که حوصله جدل با کسی رو ندارم ، همون بهتر که اگر کسی کدی نوشت کسی نظری نده !
کار سختی در پیش ندارید ، در یک طرف بنده عنوان کردم کد شما با توجه به شرایط سئوال مشکل داره و در سویی دیگه در همون پست 14 ، دوستمون عنوان فرمودند :
نقل قول:
تاپیکی که پاسخ اصلی و نهایی را فقط یه نفر داده یعنی همون پست آخری
انتخاب نظرات با شماست !
بحث طولانی شد ، ببخشید
موفق باشید
پی نوشت : عبد الرضا ، دوست من
داستان مشکل تولید صابون در کارخانه ژاپنی رو در یکی از پستهام درج کرده بودم ، اون رو مطالعه کنید ، حلال مشکل شماست ! ( با همون تفکر کار کن وگرنه میدونم که نمیخواید صابون بسته بندی کنید )
همیشه به دنبال حل تمام مشکلات از طریق کد نویسی نباش ، و اگر شدی ، همیشه به دنبال پیچیدگی نباش و اگر به دنبال پیچیدگی هم رفتی به دنبال حصول فوری نتیجه دلخواه نباش
موفق باشی
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
با سلام
دوست عزیز جناب آقای پیروزمهر
حداقل شما میانه بنده با حاشیه روی را خوب می دانید . و از آن رو از شما نسبت به شرح و بسط موضوع دعوت کردم که مانند بسیاری از دوستان دیگر به مهارت و تسلط شما ایمان دارم و مطمئن بودم در این موضوع مسئله ای هست که در پست های قبلی به آن اشاره ای کردید . درست است که به فروم اکسس کم لطف تر شده اید ولی جای نظرات تان همچنان خالی است .
لذا خواهشمند است چنانچه صلاح دانستید نسبت به شرکت در هر بحثی که احتیاج به راهنمایی و یا تذکر دارد ، اقدام نمایید . این مهم نیست که مغایر نظر کسی باشد. مهم راه حل صحیح است .(در مورد خودم عرض کردم)
با آرزوی سلامتی و موفقیت شما و همه دوستان
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
Abbas Amiri
برای استفاده آسان فایل نمونه زیر را مشاهده نمایید
سلام جناب امیری
در این نمونه بکاپ گیری بصورت زیپ شده ازفایل جاری بعمل میآید ومن درکدهای فوق بجای CurrentDb.Name آدرس فایل دیگری را وارد کردم ولی نتیجه ایجاد یک فایل زیپ شده با حجم صفر گردید.
ممکن است خواهش کنم این نمونه را برای ایجاد فایل back end بصورت زیپ شده اصلاح بفرمائید؟
باتشکر
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
abas1388
سلام جناب امیری
در این نمونه بکاپ گیری بصورت زیپ شده ازفایل جاری بعمل میآید ومن درکدهای فوق بجای CurrentDb.Name آدرس فایل دیگری را وارد کردم ولی نتیجه ایجاد یک فایل زیپ شده با حجم صفر گردید.
ممکن است خواهش کنم این نمونه را برای ایجاد فایل back end بصورت زیپ شده اصلاح بفرمائید؟
باتشکر
اگر فایل FE شما MyFile و فایل BE با نام MyFile_be ودر همان پوشه باشد ، می توانید روال GetBackup را مطابق زیر تغییر دهید
Sub GetBackup()
Dim sDate As String, src, Dest
Dim dt As Long
dt = Shamsi()
sDate = "(" & IL(dt) & "-" & ay(dt) & "-" & Guon(dt) & ")"
src = CurrentProject.Path & "\" & GetFilePathPart(CurrentDb.Name, 2) & "_be." & GetFilePathPart(CurrentDb.Name, 3)
'src = CurrentDb.Name
If Dir(CurrentProject.Path & "\Backup", vbDirectory) = "" Then
MkDir CurrentProject.Path & "\Backup"
End If
Dest = CurrentProject.Path & "\Backup\" & GetFilePathPart(src, 2) & sDate & ".zip"
ZipFile src, Dest
End Sub
مورد مهم دیگر بازیابی فایل پشتیبان از فایل زیپ است که بزودی آنرا در همین تاپیک قرار می دهم .
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
امکان داره بک آپ های تهیه شده با این روش با پسورد ذخیره شوند . یعنی در قسمتی از برنامه قسمتی برای تنظیم پسورد فایل های بک آپ تعبیه بشه و وقتی دکمه تهیه نسخه پشتیبان رو می زنیم فایل پشتیبان بصورت فشرده و همراه با پسورد ذخیره شود ؟
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
1397mehrdad
امکان داره بک آپ های تهیه شده با این روش با پسورد ذخیره شوند . یعنی در قسمتی از برنامه قسمتی برای تنظیم پسورد فایل های بک آپ تعبیه بشه و وقتی دکمه تهیه نسخه پشتیبان رو می زنیم فایل پشتیبان بصورت فشرده و همراه با پسورد ذخیره شود ؟
با سلام
تاپیک زیر هم جوابگوی موضوع اصلی تاپیک هست هم برای پسورد گذاری مناسب چنانکه ابتدا فایل Back End را پسورد گذاشته و به فایل Front End ایمپورت کنید پس از آن به بهترین وجه عمل خواهد کرد
موفق باشید
https://barnamenevis.org/showthread.p...B4%D8%AF%D9%87
-
نقل قول: نمونه ای مطمعن جهت بک آپ گیری و ریستوری جداول اکسس
نقل قول:
نوشته شده توسط
emami.sie
سلام
راستش من اين نمونه رو از همين سايت دانلود كردم (ولي نمي دونم كي و از كدوم تاپيك) و توي تمام برنامه هام هم ازش استفاده مي كنم، به جرات ميشه گفت خيلي كامله ضمن اينكه كل تنظيمات Backup رو هم در اختيار كاربر قرار ميده تا با هر تركيبي كه مي خواد اين كار رو انجام بده مثلا اينكه توي نام بك آپ تاريخ روز باشه يا شمارنده،مسير ذخيره بك آپ، زيپ كردن، چند بك آپ همزمان، Compact كردن هنگام بك آپ و .... و از همه مهمتر نتيجه بك آپ رو نشون ميده كه آيا به درستي انجام شده يا نه، و اگر نه، خطاي مورد نظر رو هم توي قسمت Results نشون ميده...
موفق باشيد
يا علي
با سلام
فایل شما را دانلود کردم ولی هنگام باز شدن error می ده
-
نقل قول: نمونه ای مطمئن جهت بک آپ گیری و ریستوری جداول اکسس
لطفا پاسخ بدهید
من فایل Xzip.dll را در درایف c کاپی کردم ولی نمیدانم چگونه راجستر کنم و وقتی روی فایل فرانت اند برای backup کلیک کردم ارور می ده