PDA

View Full Version : compact کردن فایل اکسس



samiasoft
دوشنبه 02 دی 1392, 19:45 عصر
ایا در خود ویژوال بیسیک هم میشود بدون نیاز به خود نرم افزار Microsoft Access فایل دیتابیس را compact کرد؟


http://samisoft.ir/1/images/LB5fR.jpg

vbhamed
سه شنبه 03 دی 1392, 15:17 عصر
سلام
بله ميشه
Dim x As New DBEngine
x.CompactDatabase "c:\data.mdb", "c:\data_compact.mdb"
فقط از منوي Project گزينه References آيتم Microsoft DAO ... Object Library رو علامت بزنيد

samiasoft
سه شنبه 03 دی 1392, 17:50 عصر
سلام
بله ميشه
Dim x As New DBEngine
x.CompactDatabase "c:\data.mdb", "c:\data_compact.mdb"
فقط از منوي Project گزينه References آيتم Microsoft DAO ... Object Library رو علامت بزنيد

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

چگونه ارتباط با Adodc را هنگامی که میخوام کمپکت کنم رو ببندم و بعدش که تمام شد عمل کمپکت اتصال به Adodc انجام بگیره؟
کد بستن Adodc به چه صورتی هست؟

شما نظری دیگری برای استفاده از این کد در این حالت دارین؟

vbhamed
چهارشنبه 04 دی 1392, 09:11 صبح
سلام
Adodc1.Recordset.ActiveConnection = Nothing
و دوباره اگر دستور Adodc1.Refresh رو بديد متصل ميشه

samiasoft
چهارشنبه 04 دی 1392, 23:33 عصر
Dim x As New DBEngine
x.CompactDatabase "c:\data.mdb", "c:\data_compact.mdb"


اگر دیتابیس دارای رمز باشد این را باید چگونه به کار برد؟

alirezabahrami
پنج شنبه 05 دی 1392, 14:54 عصر
اگر دیتابیس دارای رمز باشد این را باید چگونه به کار برد؟
سلام
با اجازه دوست و استاد بزرگوار آقاحامد عزیز!
با فرض اینکه دیتابیس در مسیر برنامه باشد و پسورد آنهم 123 باشد کد فوق را باید بصورت زیر تغییر دهید:


DBEngine.CompactDatabase App.Path & "\data.mdb", App.Path & "\data_compact.mdb", , , ";pwd=123"


البته قبل از اجرای کد فوق ، باید از طریق تابع Dir چک شود که اگر data_compact.mdb در مسیر برنامه بود از طریق تابع kill حذف شود .
موفق باشید

samiasoft
پنج شنبه 05 دی 1392, 15:23 عصر
البته قبل از اجرای کد فوق ، باید از طریق تابع Dir چک شود که اگر data_compact.mdb در مسیر برنامه بود از طریق تابع kill حذف شود .
موفق باشید

همین تابع رو هم میشه بگین چطوری استفاده کنم

یعنی من میخواهم وقتی کمپکت شد دقیقا با همون اسم قبلی ذخیره بشه و فایل قبلی رو حذف کنه

بدین صورت که

Dim X As New DBEngine
X.CompactDatabase App.Path & "\data.mdb", App.Path & "\data.mdb", ";pwd=123", , ";pwd=123"


اما خطا میده که فایل وجود دارد

alirezabahrami
پنج شنبه 05 دی 1392, 17:23 عصر
همین تابع رو هم میشه بگین چطوری الستفاده کنم

یعنی من میخواهم وقتی کمپکت شد دقیقا با همون اسم قبلی ذخیره بشه و فایل قبلی رو حذف کنه

بدین صورت که

Dim X As New DBEngine
X.CompactDatabase App.Path & "\data.mdb", App.Path & "\data.mdb", ";pwd=123", , ";pwd=123"


اما خطا میده که فایل وجو د دارد
سلام
نمونه ضمیمه را ببین!
یاعلی

alirezabahrami
پنج شنبه 05 دی 1392, 18:13 عصر
همین تابع رو هم میشه بگین چطوری الستفاده کنم

یعنی من میخواهم وقتی کمپکت شد دقیقا با همون اسم قبلی ذخیره بشه و فایل قبلی رو حذف کنه

بدین صورت که

Dim X As New DBEngine
X.CompactDatabase App.Path & "\data.mdb", App.Path & "\data.mdb", ";pwd=123", , ";pwd=123"


اما خطا میده که فایل وجو د دارد
سلام
به این صورت هم میتوانی عمل کنی!


DBEngine.CompactDatabase App.Path & "\data.mdb", App.Path & "\data_compact.mdb", , , ";pwd=125"
Kill App.Path & "\data.mdb"
Name App.Path & "\data_compact.mdb" As App.Path & "\data.mdb"


در کد بالا بعد از انجام عمل فشرده سازی دیتابیس با تابع kill فایل data.mdb (فایل اولیه) حذف میشود و در مرحله بعد فایل کامپکت شده data_compact.mdb به data.mdb تغییر نام پیدا می کند.
یا علی