أبو سلمى قام بنشر سبتمبر 2 قام بنشر سبتمبر 2 السلام عليكم ورحمة الله الاخوة الكرام أعضاء الجروب / السلام عليكم ورحمة الله قمت بتصميم قاعدة بيانات على أكسس 2003 وعند وضعها على جهاز آخر لم تعمل واكتشفت ان المشكلة في أنها كانت على أوفيس 32بت أما الجهاز الاخر فعليه أوفيس 64 بت سؤالي كبف يمكن لي أن أجعل القاعدة تعمل على أوفيس 64 بت وجزاكم الله خيرا
Foksh قام بنشر سبتمبر 2 قام بنشر سبتمبر 2 وعليكم السلام ورحمة الله وبركاته .. أخي أبو سلمى ، هذه المواضيع كثيرة هي المواضيع التي تحدثت عنها ، وتجد في نهاية المطاف أنه اذا تم حفظ المشروع بصيغة Accde أو Mde فإن الحل الوحيد حالياً هو تثبيت إصدار أوفيس 32 أو 64 حسب إصدار الأوفيس الذي تم حفظ المشروع عليه ... أما إذا كانت القاعدة ما زالت Mdb أو Accdb ، فمواضيع تحويل الدوال للعمل على الإصدارين ، أرشح منها للإطلاع عليه :-
أبو سلمى قام بنشر سبتمبر 2 الكاتب قام بنشر سبتمبر 2 (معدل) الطريقة السابقة في الشرح صعبة ولم استطع فهمها لانني مستوى بسيط هل من طريقة ابسط واسهل تجعل القاعدة تعمل على نواة 32 ونواة 64 أو لو قمت بغلق القاعدة Mde على نواة 64 هل ستعمل على نواة 32 أم نفس المشكلة ستظهر السؤال بطريقة أخرى هل لو تم حويل القاعدة الى MDE على اوفيس 2010 سيكون نواة 64 وتعمل على كلاهما 32 ، 64 ؟؟ تم تعديل سبتمبر 2 بواسطه أبو سلمى
منتصر الانسي قام بنشر سبتمبر 2 قام بنشر سبتمبر 2 لماذا لاتجرب أداة VBA Code Doctor المقدمة من الأخ @Moosak
Foksh قام بنشر سبتمبر 2 قام بنشر سبتمبر 2 (معدل) 10 ساعات مضت, أبو سلمى said: السؤال بطريقة أخرى هل لو تم حويل القاعدة الى MDE على اوفيس 2010 سيكون نواة 64 وتعمل على كلاهما 32 ، 64 ؟؟ حالياً في الوقت الحالي ، ليس هناك طريقة للأسف .. ولكن قد يكون هناك مستقبلاً طريقة لكسر هذه اللعنة 😈 . ولكن تستطيع كما أشاد أستاذنا منتصر باستعمال أداة الأستاذ موسى .. تم تعديل سبتمبر 3 بواسطه Foksh إضافة الإيموجي فقط ..
أبو سلمى قام بنشر سبتمبر 2 الكاتب قام بنشر سبتمبر 2 شكرا ولكن لم تعرف أي كود اقوم بتحويله في القاعدة جزاكم الله خيرا
منتصر الانسي قام بنشر سبتمبر 2 قام بنشر سبتمبر 2 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 قمت بنسخها وذهبت لأداة الأخ موسى وقمت بالخطوات الموضحة بالأصفر تم تحديد خيار (توافق 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 غير مفعل كما بالصورة وعندما تجد أن كلمة Compile مع إسم التطبيق أصبح كما بالصورة يكون تطبيقك أصبح جاهز للعمل على النواتين بدون أي مشاكل عندما أقول يعمل على النواتين أقصد وهو بالإمتداد mdb أو accdb أما إذا كان بالإمتداد mde أو accde فإن البيئة التي سيعمل فيها هي نفس البيئة التي تم تشفيره فيها أرجو أن يكون الشرح واضح وإذا كان هناك أي إستفسار آو توضيح فتفضل وأسأل تحياتي 1
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان