منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 (/showthread.php?tid=8027)



ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - mazen - 18-03-13

انا كنت شغال بكود 2003 وكان شغال معايا بس في 2007 مش شغال كود الضغط واصلاح قاعدة البيانات ارجو التعديل

Dim Engine

Engine = CreateObject("JRO.JetEngine")

Engine.CompactDatabase("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\td.mdb;user id=admin;jet oledb:database password=22403", _
"provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Compact_td.mdb;user id=admin;jet oledb:database password=22403")

علما باني غيرت الامتداد provider=microsoft.ace.oledb.12.0;data وامتداد الملف td.accdb
والمشكلة قائمة


ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - Easy4ever - 18-03-13

استخدم هذا الإجراء في الضغط والإصلاح

PHP كود :
Public Sub CompactAccessDBT(ByVal connectionString As StringByVal mdwfilename As String)

Try
 
Dim Engine CreateObject("JRO.JetEngine")

Engine.CompactDatabase("provider=microsoft.ace.oledb.12.0;" "Data Source=" Application.StartupPath "\td.accdb;" "Jet OLEDB:Database Password=22403;" _
"Jet OLEDB:Engine Type=5;"_
"provider=microsoft.ace.oledb.12.0;" _
"Jet OLEDB:Database Password=22403;" _
"Data Source=" Application.StartupPath "\td.accdb.tmp" ";" _
 
"Jet OLEDB:Engine Type=5;")
 
Dim FullPath As String IO.Path.GetDirectoryName(Application.StartupPath "\td.accdb")
IO.File.Delete(Application.StartupPath "\td.accdb")
Dim filename As String IO.Path.GetFileName(Application.StartupPath "\td.accdb" ".tmp")
Dim GetFileNameWithoutExtension As String IO.Path.GetFileNameWithoutExtension(Application.StartupPath "\td.accdb" ".tmp")
FileSystem.Rename(Application.StartupPath "\td.accdb" ".tmp"FullPath "\" & GetFileNameWithoutExtension) 

Catch ex As Exception

If InStr(ex.Message.ToUpper, "
password".ToUpper) Or InStr(ex.Message.ToUpper, "password".ToUpper) Then
MsgBox("
Password is invalid.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Password Database")

ElseIf My.Computer.FileSystem.FileExists(Application.StartupPath & "
\td.accdb") = False Then
MsgBox("
Database Not found!", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Erorr")

Else
MsgBox("
Pressure operation failed!, Be sure not to open the database from another source.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Erorr")

End If
End Try
End Sub 

عدلت لك الإجراء بالمعطيات إللي كتبتها لنا وهي كتالي
اسم قاعدة البيانات td.accdb
كلمة السر 22403

بعد نسخ الإجراء
أكتب كود الأستدعاء ، ضع هذا الكود في زر ( ضغط وإصلاح ) حتى يستعدي الإجراء

PHP كود :
Call CompactAccessDBT(NothingNothing



ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - mazen - 18-03-13

الكود اداني رسالة خطا databases not foud
وغير ذاللك بيمسح القديمة بدون وضع قاعدة بيانات اخري ومرة اخري بيغير الامتداد
ومفيش اي رسالة بتوضح لو تم الضغط اولا


ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - Easy4ever - 19-03-13

MAZEN كتب :الكود اداني رسالة خطا databases not foud
وغير ذاللك بيمسح القديمة بدون وضع قاعدة بيانات اخري ومرة اخري بيغير الامتداد
ومفيش اي رسالة بتوضح لو تم الضغط اولا

أنظر لهذا الموضوع


ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - mazen - 19-03-13

مشكور جدا والحمد للة تم الحل بالغاء وانا مشعارف .temp دة بتغير الامتداد اية الاهمية بالكود بتعنا


ارجو التعديل كود ضغط واصلاح قاعدة اكسيس 2007 - Easy4ever - 19-03-13

.temp عباره عن ملف مؤقت حتى يتعامل مع قاعدة البيانات دون صورتها الحقيقيه