اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله

الاخوة الكرام أعضاء الجروب / السلام عليكم ورحمة الله

قمت بتصميم قاعدة بيانات على أكسس 2003 وعند وضعها على جهاز  آخر لم تعمل
واكتشفت ان المشكلة في أنها كانت على أوفيس 32بت أما الجهاز الاخر فعليه أوفيس 64 بت
سؤالي كبف يمكن لي أن أجعل القاعدة تعمل على أوفيس 64 بت 

وجزاكم الله خيرا 

قام بنشر

وعليكم السلام ورحمة الله وبركاته ..

أخي أبو سلمى ، هذه المواضيع كثيرة هي المواضيع التي تحدثت عنها ، وتجد في نهاية المطاف أنه اذا تم حفظ المشروع بصيغة Accde أو Mde فإن الحل الوحيد حالياً هو تثبيت إصدار أوفيس 32 أو 64 حسب إصدار الأوفيس الذي تم حفظ المشروع عليه ...

 

أما إذا كانت القاعدة ما زالت Mdb أو Accdb ، فمواضيع تحويل الدوال للعمل على الإصدارين ، أرشح منها للإطلاع عليه :-

 

 

 

قام بنشر (معدل)

الطريقة السابقة في الشرح صعبة ولم استطع فهمها لانني مستوى بسيط 

هل من طريقة ابسط واسهل تجعل القاعدة تعمل على نواة 32 ونواة 64 أو لو قمت بغلق القاعدة Mde على نواة 64 هل ستعمل على نواة 32 أم نفس المشكلة ستظهر
السؤال بطريقة أخرى هل لو تم حويل القاعدة الى MDE على اوفيس 2010 سيكون نواة 64 وتعمل على كلاهما 32 ، 64 ؟؟

تم تعديل بواسطه أبو سلمى
قام بنشر
1 ساعه مضت, أبو سلمى said:

السؤال بطريقة أخرى هل لو تم حويل القاعدة الى MDE على اوفيس 2010 سيكون نواة 64 وتعمل على كلاهما 32 ، 64 ؟؟

حالياً في الوقت الحالي ، ليس هناك طريقة للأسف .. ولكن قد يكون هناك مستقبلاً طريقة لكسر هذه اللعنة .

ولكن تستطيع كما أشاد أستاذنا منتصر باستعمال أداة الأستاذ موسى ..

قام بنشر
2 ساعات مضت, أبو سلمى said:

السؤال بطريقة أخرى هل لو تم حويل القاعدة الى MDE على اوفيس 2010 سيكون نواة 64 وتعمل على كلاهما 32 ، 64 ؟؟

عندما تكون ملفات اكسس بالإمتداد mde أو accde فهذا يعني أنه قد تم تشفيرها وفقاً للبيئة التي تم تشفيرها فيها بالتالي إذا تم تشفيرها في بيئة 32 بت فلن تعمل إلا في بيئة 32 بت ونفس الشيئ لـ 64 بت .

15 دقائق مضت, أبو سلمى said:

شكرا ولكن لم تعرف أي كود اقوم بتحويله في القاعدة 

هذا يعتمد على نقطة مهمة هل التطبيق وهو بالإمتداد mdb أو accdb يعمل بدون مشاكل في كلا النواتين أم لا؟

فإذا كان يعمل بدون مشاكل فلن يكون هناك أي اكواد بحاجة للتعديل

أما إذا كان يعمل في 32 بت ولم يعمل في 64 بت فغالباً ستكون المشكلة في دوال API وحل هذه المشكلة بسيط جدا

إفتح محرر الأكواد ومن قائمة Debug --> Compile YourDatabaseName (طبعا سيظهر إسم التطبيق مكان الكلمة YourDatabaseName) وسيتوقف المؤشر عند أول دالة أو إجراء (وغالباً ستبدأ بالكلمة المفتاحية Declare وأحيانا قد تكون هذه الكلمة مسبوقة بكلمة Private أو Public) وسأوضح لك بمثال واقعي

هذا المثال يحتوي على دالتين وإجراء API ستعمل في 32 بت فقط ولن تعمل في 64 بت

Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long

قمت بنسخها وذهبت لأداة الأخ موسى وقمت بالخطوات الموضحة بالأصفر

Untitled.jpg.68c87357f9eddc4c998a809e1a3f9a38.jpg

تم تحديد خيار (توافق 32/64) ولصقت الكود الأصلي في الجزء الأيمن ثم النقر على زر (تشغيل المعالج) لتم تحويل الكود إلى هذا الشكل

#If VBA7 Then
    Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
    Declare PtrSafe Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As LongPtr, ByVal lpsz As String, ByVal lpFontEnumProc As LongPtr, ByVal lParam As LongPtr) As Long
    Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr
#Else
    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
    Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long
    Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
#End If

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

قم بتكرار العملية إلى أن يصبح خيار Compile YourDatabaseName غير مفعل كما بالصورة

Untitled2.jpg.cee11e1e4a3eb5f5822dc698dbdd7119.jpg

وعندما تجد أن كلمة Compile مع إسم التطبيق أصبح كما بالصورة يكون تطبيقك أصبح جاهز للعمل على النواتين بدون أي مشاكل

عندما أقول يعمل على النواتين أقصد وهو بالإمتداد mdb أو accdb أما إذا كان بالإمتداد mde أو accde فإن البيئة التي سيعمل فيها هي نفس البيئة التي تم تشفيره فيها

أرجو أن يكون الشرح واضح وإذا كان هناك أي إستفسار آو توضيح فتفضل وأسأل

تحياتي

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

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information