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

تحويل قاعدة البيانات من 32 الي 64


إذهب إلى أفضل إجابة Solved by jjafferr,

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

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

 

 

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

 

Public Sub MessageBoxH(hwndThreadOwner As Long)

 

   Dim hInstance As LongPtr
   Dim hThreadId As LongPtr
   
   hInstance = GetWindowLong(hwndThreadOwner, GWL_HINSTANCE)
   hThreadId = GetCurrentThreadId()

 

   m_hHook = SetWindowsHookEx(WH_CBT, AddressOf _
   MsgBoxHookProc, hInstance, hThreadId)
End Sub
 

debug.png

رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

المشكلة ليست في هذا السطر ، وانما في تصريح مكتبة الوندوز SetWindowsHookEx 

جرب واعمل هذا التغيير :

#if win64 then
public Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr
#else
public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
#endif

 

  • Thanks 1
رابط هذا التعليق
شارك

6 ساعات مضت, jjafferr said:

وعليكم السلام 🙂

 

المشكلة ليست في هذا السطر ، وانما في تصريح مكتبة الوندوز SetWindowsHookEx 

جرب واعمل هذا التغيير :

#if win64 then
public Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr
#else
public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
#endif

 

تغيرت الرسالة الي 

 

 

غلق 1.png

رابط هذا التعليق
شارك

في 29‏/6‏/2023 at 21:18, jjafferr said:

السلام عليكم 🙂

 

تقريبا جميع الوحدات النمطية خضعت للتغيير 🙂
رجاء تجربة جميع الازار 🙂

 

1566.اخفاء واظهار كائنات الاكسس.accdb.zip 757.33 kB · 6 downloads

@jjafferr 

اخي الفاضل الكريم بارك الله فيك 

تم اغلاق القاعدة بنجاح علي اوفيس 64بت 

 

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

 

الان قاعدة البيانات علي جهاز كمبيوتر وهو السرفر وعليه اوفيس 32بت وتم تقسيم القاعدة الي امامي (نماذج ) وخلفي (الجداول)

ثم تم اغلاق القاعدة بتحويلها الي accde علي نفس الجهاز 

 

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

واذا قمت باغلاق الملف الاصلي علي اوفيس 64 بت يعطيني رسالة بان ملف الجداول المرتبطة غير موجود فما الحل اخي 

 

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

ارجوا اكون اوضحت مشكلتي 

رابط هذا التعليق
شارك

12 دقائق مضت, ابو عبد الرحمن اشرف said:

@jjafferr 

اخي الفاضل الكريم بارك الله فيك 

تم اغلاق القاعدة بنجاح علي اوفيس 64بت 

 

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

 

الان قاعدة البيانات علي جهاز كمبيوتر وهو السرفر وعليه اوفيس 32بت وتم تقسيم القاعدة الي امامي (نماذج ) وخلفي (الجداول)

ثم تم اغلاق القاعدة بتحويلها الي accde علي نفس الجهاز 

 

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

واذا قمت باغلاق الملف الاصلي علي اوفيس 64 بت يعطيني رسالة بان ملف الجداول المرتبطة غير موجود فما الحل اخي 

 

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

ارجوا اكون اوضحت مشكلتي 

وتقريبا القاعدة كما هي وزيادة في الاطمئنان الي حضرتك المرفق 

 

 

1566.aa.accdb

رابط هذا التعليق
شارك

11 دقائق مضت, jjafferr said:

يجب ان تكون عندك نسختين ، واحدة لنواة 32بت ، واخرى لنواة 64بت 🙂

لم افهم اخي 

انا الان عندي نسختين 64 و 32

 

رابط هذا التعليق
شارك

الحاسبة التي تم تنصيب اكسس 32بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 32بت ،

والحاسبة التي تم تنصيب اكسس 64بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 64بت.

 

لا يمكنك الخلط بينهم

  • Confused 1
رابط هذا التعليق
شارك

2 دقائق مضت, jjafferr said:

الحاسبة التي تم تنصيب اكسس 32بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 32بت ،

والحاسبة التي تم تنصيب اكسس 64بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 64بت.

 

لا يمكنك الخلط بينهم

اعتذر لعدم فهمي اخي الحبيب

كل ما اتمناه الان هو هل هناك امكانية لكي تعمل قاعدة البيانات علي النواتين لاني قسمت القاعدة علي جهاز معين كيف يقرا الجهاز الاخر القاعدة (الجداول)

رابط هذا التعليق
شارك

القاعدة الخلفية (الجداول) :

لا يهم اي نسخة من الاوفيس/الاكسس تم تنصيبها ، فالملف الذي به الجداول يعمل على النواتين ، ويجب ان يكون بصيغة accdb او mdb (طبعا تستطيع تغيير الصيغة لاحقا للتمويه ، الى bak مثلا) ،

 

القاعدة الامامية (نماذج)  :

بما ان برنامجك يعمل على النواتين الآن ، فإذا تركته بصيغة accdb ، فانه سيعمل على جميع نسخ الاكسس (2007 او اكبر) ، وسواء نواة 32بت او 64بت ،

اما اذا اردت ان تقفل البرنامج وتحوله الى صيغة accde :

- يجب ان تستعمل حاسبة منصّب عليها اوفيس/اكسس 32بت ، ومنها تعمل نسخة مقفولة بصيغة accde ، وهذه النسخة يمكنك استخدامها فقط على الحواسيب التي عليها اوفيس/اكسس 32بت ،

- يجب ان تستعمل حاسبة منصّب عليها اوفيس/اكسس 64بت ، ومنها تعمل نسخة مقفولة بصيغة accde ، وهذه النسخة يمكنك استخدامها فقط على الحواسيب التي عليها اوفيس/اكسس 64بت.

 

وبغض النظر ، سواء عندك نسخة accde لنواة 32بت او 64بت ، فالنسختين تعملان مع الجداول ، 

ويمكنك ربط نسخة النواة 32بت وربطها مع الجداول ، وعلى حاسبات اخرى عليها نسخة نواة 64بت وكذلك ربطها بالجداول ، داخل نفس الشبكة.

  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information