PDA

View Full Version : اجرای دستور compact and repair در اکسس



milad.biroonvand
سه شنبه 21 بهمن 1393, 22:35 عصر
سلام


چطور میتونم با استفاده از وی بی دات نت دستور compact and repair روی یک دیتابیس اکسس اجرا کنم؟

gilsoft
چهارشنبه 22 بهمن 1393, 08:59 صبح
سلام


چطور میتونم با استفاده از وی بی دات نت دستور compact and repair روی یک دیتابیس اکسس اجرا کنم؟

سلام

اول رفرنس Microsoft.Office.Interop.Access.Dao رو به پروژه‌ات اضافه کن

اینم کد مربوطه:

Sub CompactAndRepairDb()
Dim dbEngine As New Microsoft.Office.Interop.Access.Dao.DBEngine
If System.IO.File.Exists("tempDb.mdb") Then System.IO.File.Delete("tempDb.mdb")
dbEngine.CompactDatabase("MyDb.mdb", "tempDb.mdb")
If System.IO.File.Exists("tempDb.mdb") Then
If System.IO.File.Exists("MyDb.mdb") Then
System.IO.File.Delete("MyDb.mdb")
System.IO.File.Move("tempDb.mdb", "MyDb.mdb")
End If
End If
End Sub

موفق باشید .....

milad.biroonvand
پنج شنبه 23 بهمن 1393, 11:11 صبح
سلام

اول رفرنس Microsoft.Office.Interop.Access.Dao رو به پروژه‌ات اضافه کن

اینم کد مربوطه:

Sub CompactAndRepairDb()
Dim dbEngine As New Microsoft.Office.Interop.Access.Dao.DBEngine
If System.IO.File.Exists("tempDb.mdb") Then System.IO.File.Delete("tempDb.mdb")
dbEngine.CompactDatabase("MyDb.mdb", "tempDb.mdb")
If System.IO.File.Exists("tempDb.mdb") Then
If System.IO.File.Exists("MyDb.mdb") Then
System.IO.File.Delete("MyDb.mdb")
System.IO.File.Move("tempDb.mdb", "MyDb.mdb")
End If
End If
End Sub

موفق باشید .....

**

اگر این رفرنس اضافه بشه که نیازی نیست برای اجرا بر روی سیستم مقصد حتما آفیس نصب باشه؟

milad.biroonvand
پنج شنبه 23 بهمن 1393, 11:26 صبح
وقتی تابع بالا رو اجرا می کنم خطای زیر رو میده

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll


Additional information: Retrieving the COM class factory for component with CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

gilsoft
پنج شنبه 23 بهمن 1393, 14:02 عصر
**

اگر این رفرنس اضافه بشه که نیازی نیست برای اجرا بر روی سیستم مقصد حتما آفیس نصب باشه؟

سلام مجدد

نمی‌دونم باید تست بشه ....



وقتی تابع بالا رو اجرا می کنم خطای زیر رو میده

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll


Additional information: Retrieving the COM class factory for component with CLSID {CD7791B9-43FD-42C5-AE42-8DD2811F0419} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).


متاسفانه اینم نمی‌دونم واسه چی این خطا رو میده .... شرمنده .... :خجالت: