ورود

View Full Version : تهیه نسخه پشتیبان فقط از جداول



meschian
یک شنبه 02 آبان 1389, 13:48 عصر
من می خواهم در ا کسس 2007 با کلیک در رو ی کلید "نسخه پشتیبان" فقط از جدوال یک نسخه پشتیبان تهیه نمایم و در فولدر تعیین شده ذخیره نمایم لطفاٌ یک نمونه بگذارید

amirzazadeh
یک شنبه 02 آبان 1389, 18:43 عصر
من می خواهم در ا کسس 2007 با کلیک در رو ی کلید "نسخه پشتیبان" فقط از جدوال یک نسخه پشتیبان تهیه نمایم و در فولدر تعیین شده ذخیره نمایم لطفاٌ یک نمونه بگذارید
سلام
از اين لينك كمك بگيريد:
http://barnamenevis.org/forum/showpost.php?p=497555&postcount=42
........................
موفق باشيد

meschian
سه شنبه 04 آبان 1389, 10:03 صبح
سلام
از اين لينك كمك بگيريد:
http://barnamenevis.org/forum/showpost.php?p=497555&postcount=42
........................
موفق باشيد



در اکسس 2007 کار نمیکند و خطا میدهد

amirzazadeh
سه شنبه 04 آبان 1389, 10:13 صبح
لطفا نمونه ضميمه رو ببينيد:

RESMAILY
سه شنبه 04 آبان 1389, 10:15 صبح
به نام خدا
با سلام. شما مي توانيد جداول را تك تك به فايل پشتيبان Import يا كپي كنيد. شبيه به كد زير مثلا

Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
For Each obj In dbs.AllTables
strName = Trim(obj.Name)
strX = Mid(strName, 1, 4)
If strX = "MSys" Then GoTo 10
strPrjct = CurrentProject.Name
strNpr = Right(strPrjct, 3)
DoCmd.SetWarnings False
strPath = CurrentProject.path
DoCmd.CopyObject strPath & "\" & db & "." & strNpr, _
strName, acTable, strName

meschian
سه شنبه 04 آبان 1389, 14:07 عصر
به نام خدا
با سلام. شما مي توانيد جداول را تك تك به فايل پشتيبان Import يا كپي كنيد. شبيه به كد زير مثلا

Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentData
For Each obj In dbs.AllTables
strName = Trim(obj.Name)
strX = Mid(strName, 1, 4)
If strX = "MSys" Then GoTo 10
strPrjct = CurrentProject.Name
strNpr = Right(strPrjct, 3)
DoCmd.SetWarnings False
strPath = CurrentProject.path
DoCmd.CopyObject strPath & "\" & db & "." & strNpr, _
strName, acTable, strName


با تشکر
اما من می خواهم برنامه این کار را برایم انجام دهد و فقط از جداول (tables) یک فایل پشتیبان(backup) بسازد (در اکسس 2007) آیا کسی کدی بلد است که این کار را انجام دهد.

RESMAILY
چهارشنبه 05 آبان 1389, 09:32 صبح
به نام خدا
با سلام. دوست عزيز كد فوق را در برنامه تان قرار دهيد و با يك commandboton آن را اجرا كنيد.
كافي است به جاي db نام بانك بك آپ مورد نظررا بگذاريد.
درصورتيكه بانك مزبور وجود نداشته باشد مي شود آن را ازدرون برنامه تان ايجاد نماييد.

meschian
چهارشنبه 05 آبان 1389, 13:49 عصر
به نام خدا
با سلام. دوست عزيز كد فوق را در برنامه تان قرار دهيد و با يك commandboton آن را اجرا كنيد.
كافي است به جاي db نام بانك بك آپ مورد نظررا بگذاريد.
درصورتيكه بانك مزبور وجود نداشته باشد مي شود آن را ازدرون برنامه تان ايجاد نماييد.


با سلام
باتشکر از شما
اما وقتی کد را اجرا می کنم خطا (ضمیمه 1) را میدهد
وسپس (ضمیه 2) الان من باید چکار کنیم کجای دستور اشتباه است
در ضمن من به جاي db نام بانك بك آپ مورد نظررا هم گذاشتم اما اجرا نشد و همین خطا را داد اگر امکان دارد یک نونه ارسال کنید

RESMAILY
شنبه 08 آبان 1389, 09:39 صبح
به نام خدا
با سلام. درجايي نيستم كه نمونه فوري تقديم كنم. ولي توجه بفرماييد كد مربوطه داراي مراحل زير است
1 - ابتدا جداول غير سيستمي را در بانك جاري پيدا مي كند
2 - آن را به آدرس بانك پشتيبان كپي مي كند
چون تصوير ارسالي شما واضح نبود. من حدس مي زنم كه شما آدرس بانك پشتيبان را درست ننوشته باشيد
لذا منظور از اينكه به جاي db نام بانك پشتيبان را بگذاريد به ترتيب زير است
dim db as string
db = "C:\myDb.mdb" مثلا
يعني مسير كامل بانك پشتيبان + نام بانك و فرمت مربوطه mdb يا mde انشااله نتيجه مي گيريد.

meschian
شنبه 08 آبان 1389, 12:24 عصر
به نام خدا
با سلام. درجايي نيستم كه نمونه فوري تقديم كنم. ولي توجه بفرماييد كد مربوطه داراي مراحل زير است
1 - ابتدا جداول غير سيستمي را در بانك جاري پيدا مي كند
2 - آن را به آدرس بانك پشتيبان كپي مي كند
چون تصوير ارسالي شما واضح نبود. من حدس مي زنم كه شما آدرس بانك پشتيبان را درست ننوشته باشيد
لذا منظور از اينكه به جاي db نام بانك پشتيبان را بگذاريد به ترتيب زير است
dim db as string
db = "C:\myDb.mdb" مثلا
يعني مسير كامل بانك پشتيبان + نام بانك و فرمت مربوطه mdb يا mde انشااله نتيجه مي گيريد.


بنام خدا
با سلام و خسته نباشی
باز هم خطا میدهد در صورت امکان یک نمونه در اسرع وقت ارسال نمایید باز هم تاکید می کنم "اکسس 2007 " لطفاٌ فایل نمونه اکسس 2007 باشد
با کمال تشکر"

RESMAILY
یک شنبه 09 آبان 1389, 10:52 صبح
به نام خدا
با سلام. ا آكسس 2007 در اختيار ندارم. اين نمونه را ببينيد. مطمئن باشيد در2007 هم كار مي كند. خودتان بسط بدهيد

meschian
یک شنبه 09 آبان 1389, 11:46 صبح
به نام خدا
با سلام. ا آكسس 2007 در اختيار ندارم. اين نمونه را ببينيد. مطمئن باشيد در2007 هم كار مي كند. خودتان بسط بدهيد


بنام خدا
با عرض سلام و تشکر از ارسال فایل
دقیقاٌ همان چیزی است که می خواستم و فقط یک مشکلی مسیربانک را
D:\New Folder\back.mdb می گذارم خطا میدهد و آیا برای بازیابی هم از همین دستور باید استفاده کرد

mahdi_107
دوشنبه 10 آبان 1389, 07:14 صبح
با سلام
حال بفرماييد از جداول لينك شده چگونه مي شود پشتيبان گرفت

RESMAILY
دوشنبه 10 آبان 1389, 08:08 صبح
به نام خدا
با سلام. براي گرفتن پشتيبان روي مثلا فلاش ديسك. من ترجيح مي دهم از API زير استفاده نمايم
CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
و با اين دستور

intX = CopyFile((strPath_Source), (strPath_Dest), (0))
كه intX توفيق يا عدم توفيق تابع را برمي گرداند. صفر عدم موفقيت و باقي اعداد موفقيت.
در مورد بازيابي هم اگر جداول در فايل جداگانه باشند(باصطلاح backend ,...) البته با استفاده از دستور فوق مي شود آن را بازيابي نمود. با اين فرق كه جاي مقصد و مبدا فايل بايد عوض شود.
وگرنه با استفاده از توابع دروني آكسس و DAO و يا ADO بسته به نوع استفاده شما، ابتدا بانك پشتيبان را ازدرون برنامه صدا زده و سپس جداول را با همان دستور اولي و با عوض كردن مقصد و مبدا بازيابي نماييد.
قدري عبارات بنده پيچ و تاب پيدا كرد. ولي دوستان آزمايش كنند نتيجه مي گيرند. اگر نشد يك نمونه آماده , jrndl خواهم كرد انشااله.

RESMAILY
سه شنبه 11 آبان 1389, 11:20 صبح
به نام خدا
با سلام. قول داده بودم يك نمونه تقديم نمايم. انشااله به كار دوستان بخورد.

meschian
سه شنبه 11 آبان 1389, 12:33 عصر
به نام خدا
با سلام. قول داده بودم يك نمونه تقديم نمايم. انشااله به كار دوستان بخورد.


بنام خدا
با سلام و تشکر از ارسال فایل
اما فقط کلید پشتیبان کار میکند و کلید بازیابی فقط یک جدول را از فایل پشتیبان import میکند(که این کار را با پیغام توجه انجام میدهد) و کلیدهای فلاش هم که اجرا نمیشود.
آیا بهتر نیست به جای کلید کپی روی فلاش، همان کلید پشتیبان در هنگام اجرا آدرس درایو و نام فایل پشتیبان را بخواهد (مانند گزینه save as در بیشتر برنامه ها) که فایل پشتیبان را به آدرس دلخواه ذخیره نماییم و همچنین کلید بازیابی هم به همین صورت اجرا شود
باز هم از شما تشکر مینمایم
موفق باشید

RESMAILY
پنج شنبه 13 آبان 1389, 11:42 صبح
به نام خدا
با سلام. مثال را براي سهولت بيان خودم زده ام. وگرنه همه اش را مي شود در يك تابع گذاشت و با متعغيرهاي مختلف پاسخ گرفت.
همانطور كه در كد برنامه ملاحظه مي نماييد. يافتن و ايمپورت جداول درون يك حلقه است و تا جدول درون بانك وجد داشته باشد، اين حلقه برقرار است (Next Obj) پس شايد اشكال از جاي ديگر است.
در مورد فلاش هم شايد لازم است كه مسير و نام درايو فلاش كنترل شود. من به عنوان مثال (L) را انتخاب كرده ام.
يك دستور كپي هم خود VBA دارد. به امتحانش مي ارزد.
اجمالا كپي روي فلاش از روي فايل backEnd است. ولي كپي و دريافت از BackEnd بوسيله اكسپورت و ايمپورت.
ولي با CopyObject هم مي شود.

meschian
شنبه 15 آبان 1389, 15:12 عصر
به نام خدا
با سلام. مثال را براي سهولت بيان خودم زده ام. وگرنه همه اش را مي شود در يك تابع گذاشت و با متعغيرهاي مختلف پاسخ گرفت.
همانطور كه در كد برنامه ملاحظه مي نماييد. يافتن و ايمپورت جداول درون يك حلقه است و تا جدول درون بانك وجد داشته باشد، اين حلقه برقرار است (Next Obj) پس شايد اشكال از جاي ديگر است.
در مورد فلاش هم شايد لازم است كه مسير و نام درايو فلاش كنترل شود. من به عنوان مثال (L) را انتخاب كرده ام.
يك دستور كپي هم خود VBA دارد. به امتحانش مي ارزد.
اجمالا كپي روي فلاش از روي فايل backEnd است. ولي كپي و دريافت از BackEnd بوسيله اكسپورت و ايمپورت.
ولي با CopyObject هم مي شود.

بنام خدا
با سلام و خسته نباشید
بازهم از زحمات شما جهت ارسال فایل نمونه تشکر و قدردانی میکنم;
کار شما بسیار خوب بود فقط اگر بشود در هنگام تهیه فایل پشتیبان آدرس محل ذخیره سوال شود (درایو و فولدر دلخواه)و در هنگام بازیابی هم به همین صورت انجام شود بسیار عالی میشود
در صورت اجرای این عملیات لطفاٌ کد مربوطه ویا یک فایل نمونه ارسال نمایید
بازهم از محبت شما ممنونم
انشااله خدا خیرتان دهد.