توقيت مدينة القدس الشريف

 مكتبة تعليم أكسس

Education Library Accessــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

   Upload and download files تحميل وتنزيل الملفات                                                    Upload Files رفع ملفات

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

الموضوع :            الربط التلقائي للجداول

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

من المعروف ان قواعد البيانات المصممة باستخدام الاكسس تحتوي علي جميع الكائنات من جداول ونماذج وتقارير ووحدات نمطية وماكرو وقد نلجا في بعض الاحيان الي تقسيم قاعدة البيانات الي قاعدتين الاولى تحتوي علي النماذج والتقارير والاستعلامات والوحدات النمطية والماكرو

والقاعدة الثانية تحتوي علي الجداول وفي هذة الحالة لابد من ربط القاعدة الاولي بالثانية

ودائما يتم الربط بطريقة اعتيادية من خلال الذهاب الي قائمة أدوات ثم إحتيار أدوات مساعدة لقواعد  البيانات ثم إدارة الجداول المرتبطة

ولتسهيل عملية ربط الجداول كان لابد من ايجاد طريقة أخري يتم من خلالها ربط الجداول تلقائيا بمجرد تشغيل قاعدة البيانات التي تحتوي علي النماذج بمجرد فتح النموذج الرئيسي

ويتم ذلك بإنشاء وحدة نمطية بها الكود التالي

 Option Compare Database
 Option Explicit

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
Function BackFile()

BackFile = CurrentProject.Path & "\sTable_be.mdb"

End Function
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
Function CheckFile() As Integer

On Error GoTo Error:
   
Open BackFile For Input As #1
Close
CheckFile = 1
Exit Function

Error:
    Exit Function
   
End Function

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
Function AutoLink()

If CheckFile <> 1 Then
DoCmd.OpenForm "PathFrm"
 DoCmd.Close acForm, "sFRM"
GoTo 10
End If

Dim FrontObj As AccessObject, FrontDB As Object
Set FrontDB = Application.CurrentData

For Each FrontObj In FrontDB.AllTables
If Left(FrontObj.Name, 4) <> "MSys" Then
DoCmd.DeleteObject acTable, FrontObj.Name
End If
Next FrontObj

Dim BackObj As TableDef, BackDB As Database
Set BackDB = DBEngine.Workspaces(0).OpenDatabase(BackFile, True, False)

For Each BackObj In BackDB.TableDefs
If Left(BackObj.Name, 4) <> "MSys" Then
DoCmd.TransferDatabase acLink, "Microsoft Access", BackFile, acTable, BackObj.Name, BackObj.Name

End If
Next BackObj

Set FrontDB = Nothing
Set BackDB = Nothing

DoCmd.OpenForm "sFRM"
10:

End Function 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ثم في حدث عند الفتح للنموذج نكتب الكود التالي

Private Sub Form_Load()
If CheckFile = 1 Then
'MsgBox "لم يتغير مكان الجداول"
 AutoLink

Else
'MsgBox " تم تغير مكان الجداول", vbInformation
 AutoLink

End If
End Sub

والمثال المرفق يوضح عملية الربط التلقائي بدون تحديد المسار حيث يتم البحث عن قاعدة البيانات المطلوبة لربط الجداول اينما كانت

ومرفق مثال لربط قاعدة بيانات بمسار محدد توضع حيث يتم وضع قاعدة البيانات التي تحتوي غلي الجداول في نفس مجلد قاعدة الواجهة

ومثال لربط قاعدة الواجهة باكثر من قاعدة والمثال المرفق لربط الواجهة بقاعدتين ويمكن لك الربط باكثر من ذلك بنفس الطريقة 

 

 

 

 

 

 

 

    الملفات         عامة         فلسطين        أخرى

   الرئيسية        الصور         المقالات   

 
Make a Free Website with Yola.