مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و طرق حلها

مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و طرق حلها ,ايقاف الحفظ التلقائي في الاكسيس,اكسيس,دروس اكسيس,برنامج مفتوح المصدر,

مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و طرق حلها

مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و طرق حلها نستعرض في هذا المقال مجموعه من مشاكل نقل ملفات الاكسيس من جهاز الي اخر و طرق حلها

نستعرض في هذا المقال مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و كيفيه التغلب علي هذه المشاكل بابسط الخطوات البرمجيه
و تظهر هذه المشاكل ليس فقط في ملفات قواعد البيانات المصممه بالاكسيس فقط لكن تظهر في بعض انواع قواعد البياتات الاخري مثل قواعد البيانات المصممه بالاوركل و
غيرها فهذه المشاكل ليست بالامر المعقد اذا فهمنا سبب هذه المشكله و طريقه الحل مستخدمين ابسط الطرق التي يمكن ان يقوم بها المستخدم النهائي مهما كانت خبره
المستخدم النهائي بسيطه 
في كثير من الاحوال و عند نقل ملفات الاكسيس
من جهاز الي جهاز تتوقف هذه الملفات عن العمل و يظهر للمستخدم رسائل تحذريه من ان
هناك مشكله برمجيه في الكود و مع ان الكود البرمجي سليم و تتوقف عن العمل و يمكن

ان يرجع ذلك الي العديد من الاسباب من اهمها

  • اختلاف اعدادات اللغه و التاريخ
  • اختلاف في نواه الويندز بين النواه 32 والنواه 64
  • بالاضافه الي اختلاف اصدارات الاوفيس
  • عدم وجود بعض المكتبات البرمجيه

مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و طرق حلها

اختلاف اعدادات اللغه و التاريخ في جهاز مصمم

قاعده البيانات عن اعدادات اللغه و التاريخ في جهاز الجديد و يمكن معالجتها بتعديل
اعدادات اللغه و الوقت و المكان بحيث تطابق مع جهاز المبرمج و تثبيت حزمه دعم
اللغه من اعدادات اللغه اذا لزم الامر

مشاكل نقل ملفات قواعد البيانات من جهاز الي اخر و طرق حلها

اختلاف في نواه الويندز بين النواه 32 والنواه 64 

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

 
#If VBA7 Then

    ' ففي هذا الكود نقوم بفحص اذا كان محرر الاكود من النوع vba7   و في هذه الحاله تكون نسخه 64 و نقوم باستدعاء الداله Declare PtrSafe Function و المستخدمه للعمل مع هذه النواه

    Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _

        Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Boolean

#Else

#If VBA6 Then

    ' اذا كان محرر الاكواد من النوع vba6  ففي هذه الحاله يقوم الكود باستدعاء الداله Declare Function 

    Private Declare Function GetOpenFileName Lib "comdlg32.dll" _

        Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long

#End If

#End If
ففي هذا الكود نقوم بفحص اذا كان محرر الاكود
من النوع
vba7   و في هذه الحاله تكون نسخه 64 و نقوم باستدعاء
الداله
Declare
PtrSafe Function
و المستخدمه للعمل مع هذه النواه اما
اذا كان محرر الاكواد من النوع
vba6
 ففي هذه الحاله يقوم الكود باستدعاء الداله Declare Functionو بهذه الفكره البسيطه تجاونا مشكله اختلاف نواه الويندز
اختلاف اصدارات الاوفيس و يمكن معالجتها من خلال تثبيت برنامج access runtime لنفس لاصدار الاوفيس الموجود عند مصمم قاعده البيانات عدم وجود بعض المكتبات البرمجيه نتيجه اختلاف
نسخه الاوفيس او اي سبب اخر فبعض المكتبات يجب اضافتها بشكل يدوي الي قاعده البيانات و يمكن التغلب علي هذه المشكله من خلال ارفاق كل المكتبات البرمجيه المستخدمه مع ملف قاعده البيانات و تثبيتها برمجيا
و يمكن تنفيذ ذلك بالعديد منها استخدام ملفات سجل النظام او ارفاق ملفات المكتبات البرمجيه الا ان افضلها من وجهه نظري ارفاق
ملفات المكتبات البرمجيه
و ما يميز هذه الطريقه انها في حاله عدم وجود الملف في الجهاز فسيوم الكود البرمجي باضافته من الملفات المرفقه  ويمكن اضافتها اما بشكل
يدوي او بالكود مع بدايه عمل البرنامج 
نستعرض مثال لاضافه المكتبه البرمجيه microsoft Office 14 Object Library
نحتاج الي ملف MSO.DLL الموجودضمن ملفات system 32  مشكله هذه الطريقهضروره تحديد ملفات المكتبات البرمجيه نقوم بادرج modules  مديول جديد
 
Option Compare Database

Sub addListReferences()
‘ قمنا بافتراض متغر لتخزين مسار قاعده البييانات و الذي سنقوم بتخزين المكتبات البرمجيه في نفس المسار
Dim SourceFile
‘هنا وضعنا مسار افتراضي لملفات المكتبات البرمجيه بجوار ملف قاعده البيانات
SourceFile = Application.CurrentProject.Path & "MSO.DLL"
'في حاله وجود مشكله في الكود انتقل الي نقطه التصحيح
On Error GoTo CanNotAddWord
'لتنشيط المكتبات برمجيا
Application.VBE.ActiveVBProject.References.AddFromFile SourceFile

Exit Sub
'نقطه التحصيح البرمجي

CanNotAddWord:
‘للتاكد من وجود الملف المراد تنشيطه برمجيا داخل مسار قاعده البانات
‘ فاذا لم ياكد من ان هذا الملف هو الملف المطلوب  سيقوم الكود بارسال رساله تنبيهيه للمستخدم
If Right(SourceFile, 7) <> "MSO.DLL" Then
'رساله تنبيه في حاله عدم وجود الملف
MsgBox "MSO.DLL" & " " & "لا يمكن العثور علي الملف", vbCritical, "انتبه"
End If
End Sub


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

مواضيع ذات صله

يمكنك الاطلاع علي هذا المقال لفهم الفكره 

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *