الحلبي قام بنشر أغسطس 22 قام بنشر أغسطس 22 السلام عليكم مرفق مثال مصغر عند البحث فى المنتدى يوجد كثير من الاسئلة حول هذا الموضوع ووجد موضوع استاذنا الفاضل / جعفر يشرح كيف تجعل برنامج يعمل على النوايتين ـ ولكن للاسف بعض الامور لم افهمها لانى ضغيف جدا فى الاكسس ولذلك ارجو ان يعمل المثال المرفق على النواتين 32 -64 مثل برنامج استاذنا الفاضل / جعفر وانا استخدم 32 بت ولكن عندى لاب به 64 فسوف اجرب على الاثنين جزاكم الله خير نسيت ارفق المثال النواتين 32 و 64.accdb
ابو جودي قام بنشر أغسطس 22 قام بنشر أغسطس 22 50 دقائق مضت, الحلبي said: يوجد كثير من الاسئلة حول هذا الموضوع ووجد موضوع استاذنا الفاضل / جعفر يشرح كيف تجعل برنامج يعمل على النوايتين ـ ولكن للاسف بعض الامور لم افهمها لانى ضغيف جدا فى الاكسس اى برامج يتم تصميمها بالشكل الطبيعى تعمل على النواتان يا دكتور بدون اى مشاكل اما الاكواد والتى تعتمد الربط الديناميكى Dynamic Link Libraries اى التى تعتمد على ما نسميه بملفات DLL بناء على دوال API أى Application Programming Interface يعنى واجهة برمجة التطبيقات مثلا مثل Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long هى التى تحتاج الى معاملة من نوع خاص لاعادة صياغتها لتعمل على النواتان وهذا ما تناوله استاذى القدير و معلمى الجليل الاستاذ @jjafferr فى موضوعه
الحلبي قام بنشر أغسطس 22 الكاتب قام بنشر أغسطس 22 29 دقائق مضت, ابو جودي said: وهذا ما تناوله استاذى القدير و معلمى الجليل الاستاذ @jjafferr فى موضوعه استاذنا الفاضل ومعلمى القدير الباشمنهدس ابو جودى كنت متوقع حضرتك تدخل او الاستاذ الفاضل / @ابوخليل وانتما كثيرا ماتقدمون المساعدة لامثالى حضرتك تشرح لى وكانى فى السنة النهائية فى كلية اكسس استاذى الفاضل ايه الكود الذى اضعة فى البرنامج عشان يشتغل على النواتين ياريت حضرتك لو تكرمت تضع هذا الكود فى المثال المرفق
محمد احمد لطفى قام بنشر أغسطس 25 قام بنشر أغسطس 25 مثل ما أشار عليه أستاذى ابو جودى ( اى برامج يتم تصميمها بالشكل الطبيعى تعمل على النواتان يا دكتور بدون اى مشاكل ) الملف المرفق يعمل على النواتين
Eng.Qassim قام بنشر أغسطس 25 قام بنشر أغسطس 25 الكود الذي اشار اليه استاذنا محمد عصام @ابو جودي يعمل على النواة 32 بت اما اذا اردت تحويله الى نظام يعمل على 64 بت ..في رأيي تعمل نسخة ثانية ..فتصبح الدالة كما يلي : Private Declare ptrsafe Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long 'طبعا هناك برامج متقدمة تستطيع فيها ان يعمل نفس البرنامج على 32 بت او 64 بت ..مثل #If VBA7 And Win64 Then 'x64 Declarations Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #Else 'x32 Declaration Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #End If تحتاج منك الاطلاع والقراءة ..وهناك الكثير في المنتدى مما تطيب لها نفسك تحياتي دكتور
الحلبي قام بنشر أغسطس 25 الكاتب قام بنشر أغسطس 25 6 ساعات مضت, محمد احمد لطفى said: مثل ما أشار عليه أستاذى ابو جودى استاذ / محمد احمد لطفى هذا مثال صغير انا عملته صغير ومختصر لذلك يعمل على النواتين اما البرنامج الذى اعمل عليه كبير جدا ولا يعمل على 64 بت ولكن يعمل على 32 بت 4 ساعات مضت, Eng.Qassim said: اما اذا اردت تحويله الى نظام يعمل على 64 بت ..في رأيي تعمل نسخة ثانية ..فتصبح الدالة كما يلي : استاذى ومعلمى القدير / قاسم ان اريد ان يعمل على النواتين بمعنى عندى جهاز 32 بت يعمل بدون مشاكل ولو نقلته على جهاز 64 يعمل بدون مشاكل هل الكود الذى حضرته ارفقته يعمل على النوايتن ام انه يعمل على 64 فقط جزاكم الله خير على المدخله والاجابات المفرحة
Moosak قام بنشر أغسطس 27 قام بنشر أغسطس 27 دكتور @الحلبي سأحاول تبسيط المسألة لك بأبسط شرح ممكن أن تحصل عليه 🙂 * لكي يعمل عندك البرنامج على النواتين في نفس الوقت ... في الأغلب أنت ستحتاج تغيير نوع محدد من الأكواد .. وهي الأكواد التي تأتي كلمة ......... Declare ............. في سياقها .. لكي يعمل الكود على النواة 32 يكتب الكود هكذا : .....................................Private Declare Function ولكي يعمل الكود على النواة 64 يتم إضافة كلمة واحدة وهي ptrsafe بعد كلمة Declare فيصبح الكود هكذا : ................................... Private Declare ptrsafe Function ولكي تجمع بين هذين الخيارين من أجل أن يعمل البرنامج على الأجهزة المختلفة مهما كانت النواة يتم كتابتهما معا هكذا : #If VBA7 And Win64 Then 'For :64 Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #Else 'For :32 Private Declare Function apiGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #End If وهذا هو مختصر المختصر 🙂
الحلبي قام بنشر أغسطس 27 الكاتب قام بنشر أغسطس 27 2 ساعات مضت, Moosak said: وهذا هو مختصر المختصر 🙂 رائع جدا وجميل جدا هذا الشرح اين انت من زمان اشكرك معلمنا الفاضل @Moosak واين اضع هذا الكود جزاك الله كل خير وبارك فيك ورزقك من غير حساب
Moosak قام بنشر أغسطس 27 قام بنشر أغسطس 27 24 دقائق مضت, الحلبي said: واين اضع هذا الكود دكتورنا @الحلبي .. هذه العملية التي وضحتها لك تعملها فقط لو أنت مستخدم في برنامجك هذا النوع من الأكواد .. وإذا كنت مستخدمنها وموجودة في برنامجك فعلا .. إبحث في أكواد البرنامج عن الكلمة Declare .. وطبق على تلك الدوال نفس الشرح اللي وضحته لك سابقا .. 🙂
الحلبي قام بنشر أغسطس 28 الكاتب قام بنشر أغسطس 28 تمام جزاك الله كل خير 10 ساعات مضت, Moosak said: وطبق على تلك الدوال نفس الشرح اللي وضحته لك
ابو جودي قام بنشر أغسطس 29 قام بنشر أغسطس 29 اعتذر للتأخير يا دكتور اقرأ مقال مايكروسوفت ده الدنيا هتوضح اكثر وهتكون مدرك كمان للتغيرات التى يجب ان تحدث لعمل التوافقية لكل نواة https://learn.microsoft.com/ar-sa/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.