السلام عليكم و رحمة الله تعالى و بركاته
إن من بين الأشياء الأكثر إرهاقا التي تعيق عمل المبرمجين هو تحديث قاعدة البيانات لدى الزبون
فلا تستطيع إعطاءه قاعدة جديدة لأن جميع بياناته مسجلة في تلك القاعدة
أما إضافة التحديث يدويا هذا يتطلب منك التنقل إلى الزبون أو الإتصال عن بعد و ربما الزبون لا يملك الأنترنت
و الأكثر من ذلك ربما نستطيع التحديث يدويا لقاعدة البيانات و ماشي الحال فرضا هذا الشخص له عدد كبير من النسخ الإحتياطية 60 أو 70 أو أكثر و أراد ربط البرنامج بأحد النسخ الإحتياطية هل يتوجب على المبرمج التنقل له مرة ثانية؟؟
لكل مبرمج طريقته الخاصة بإضافة التحديث لقاعدة بيانات الزبون مع الحفاظ على بياناته
سوف أقوم بطرح طريقتي التي أعمل بها و أتمنى من زملائي الأساتذة ممن لديهم طرق أخرى طرحها من أجل إثراء الموضوع.
أولا:
أنا أضع وحدة نمطية في ملف الواجهة تتحسس لوجود التحديث في قاعدة الخلفية إن لم تجدها فتقوم تلقائيا بإضافة هذا التحديث.
الكود يعتمد على أوامر SQL و قد سبق لي أن شرحت هذه الدوال في هذا الموضوع: شرح دوال SQL
التحديث هو عبارة عن إضافة جدول جديد أو إضافة حقل لجدول موجود
الوحدة النمطية التالية: تقوم بإضافة جدول جديد لقاعدة البيانات اسمه tbl2 و إضافة حقل Age لجدول tbl1
Function edit_db()
On Error Resume Next
Dim app As Access.Application
Dim file_data As String
Dim sq As String
'مسار القاعدة
file_data = CurrentProject.Path & "\DB.mdb"
Set app = CreateObject("Access.Application")
app.OpenCurrentDatabase (file_data)
app.Visible = False
DoCmd.SetWarnings False
'كود إنشاء جدول
sq = "CREATE TABLE tbl2_fav ( id COUNTER PRIMARY KEY, name_adm text(50), num integer)"
app.DoCmd.RunSQL sq
' كود إضافة حقل لجدول موجود
sq = "ALTER TABLE tbl1 ADD COLUMN Age integer"
app.DoCmd.RunSQL sq
DoCmd.SetWarnings True
app.Quit acQuitSaveAll
Set app = Nothing
MsgBox "تمت العملية بنجاح"
End Function
ونقوم بإستدعاء هذه الوحدة النمطية عند فتح ملف الواجهة
حاول تحذف الجدول tbl2 و الحقل Age من الجدول tbl1 من الملف db و شغل الملف programme ثم أعد فتح ملف db سوف تجد البرنامج قد أضاف الجدول و الحقل تلقائيا.
update-db.rar