أحمد العيسى قام بنشر الأربعاء at 18:41 قام بنشر الأربعاء at 18:41 السلام عليكم بالمرفقات ثلاث تطبيقات بسيطة ورائعة من عمل أبو جودي والأخت زهرة منهم من يقتصر فلتره على إظهار mdb والآخر على accdb المفترض أن البرنامج الناتج يتوافق مع أوفيس 2003 بالإضافة للإصدارات التالية بالطبع سوف نري مع الشمول البرمجي الناحية الجمالية بأفضل صورة وأنا واثق من هذا شكراً لجميع الزملاء مقدماً وتهنئة لنا بعودة أبو جودي للمنتدى من جديد تفعيل وإلغاء الشفت1.mdb تفعيل وإلغاء الشفت2.mdb تفعيل وإلغاء الشفت3.mdb
ابو جودي قام بنشر الأربعاء at 21:04 قام بنشر الأربعاء at 21:04 هو المفروض ان المرفق الثانى بيدعم كل الامتدادت من المرفقات اللى حضرتك شاركتها لكن على كل حال اليك المرفق بعد عمل اعادة هيكلة شاملة للكود كاملا تفعيل وإلغاء الشفت.mdb
أحمد العيسى قام بنشر الخميس at 04:56 الكاتب قام بنشر الخميس at 04:56 معذرة يبدو أن الهيكلة تحتاج مراجعة لتحقيق الهدف النهائي فى الفلترة : يكفى السطر الثالث ( كل الملفات ) أيضاً هل من الممكن بعد اختيار ملف أكسس :اكتشاف الفاعلية تلقائياً (تمكين ، نعطيل ) وبذلك يكون زر واحد فقط هو من يتم اختياره بالنسبة لملف *.accdb لم ينجح التطبيق فى تغيير الخاصية
Foksh قام بنشر بالامس في 13:27 قام بنشر بالامس في 13:27 (معدل) بناءً على طلبك أخي @أحمد العيسى ، هذه مشاركة بسيطة ، جربها رجاءً على أوفيس 2003 وأخبرني بالنتيجة .. حيث الأكواد في مديول واحد :- Option Compare Database Option Explicit Private mDbPass As String Public Sub SelectExternalDB(frm As Object) Dim fd As Object Set fd = Application.FileDialog(3) fd.Title = "Select Database" fd.Filters.Clear fd.Filters.Add "Access Files", "*.accdb;*.mdb" If fd.Show = -1 Then frm.Controls("Txt_PathDB").Value = fd.SelectedItems(1) mDbPass = "" CheckShift frm, fd.SelectedItems(1) End If End Sub Public Sub CheckShift(frm As Object, dbPath As String) Dim db As Object, wrk As Object, prp As Object Dim isEnabled As Boolean Set wrk = DBEngine.Workspaces(0) On Error Resume Next Set db = wrk.OpenDatabase(dbPath, False, False, "") If Err.Number = 3031 Then Err.Clear mDbPass = InputBox("قاعدة البيانات محمية، يرجى إدخال كلمة المرور:", "كلمة المرور") If mDbPass = "" Then Exit Sub Set db = wrk.OpenDatabase(dbPath, False, False, ";PWD=" & mDbPass) End If If db Is Nothing Then Exit Sub isEnabled = True For Each prp In db.Properties If prp.Name = "AllowBypassKey" Then isEnabled = prp.Value Exit For End If Next prp If isEnabled Then frm.Controls("OptMain").Value = 2 frm.Controls("Btn_Doit").Caption = "إلغاء تفعيل مفتاح الشيفت" frm.Controls("Lbl_Info").Caption = "الحالة: مفتاح الشيفت مفعل" & vbCrLf & dbPath Else frm.Controls("OptMain").Value = 1 frm.Controls("Btn_Doit").Caption = "تفعيل مفتاح الشيفت" frm.Controls("Lbl_Info").Caption = "الحالة: مفتاح الشيفت غير مفعل" & vbCrLf & dbPath End If db.Close Set db = Nothing End Sub Public Sub ExecuteToggle(frm As Object) Dim dbPath As String dbPath = frm.Controls("Txt_PathDB").Value If Len(dbPath) = 0 Then Exit Sub Dim db As Object, wrk As Object, prp As Object Set wrk = DBEngine.Workspaces(0) On Error Resume Next If Len(mDbPass) > 0 Then Set db = wrk.OpenDatabase(dbPath, False, False, ";PWD=" & mDbPass) Else Set db = wrk.OpenDatabase(dbPath, False, False, "") End If If db Is Nothing Then Exit Sub Dim newState As Boolean If frm.Controls("OptMain").Value = 1 Then newState = True Else newState = False End If db.Properties("AllowBypassKey") = newState If Err.Number = 3270 Then Err.Clear Set prp = db.CreateProperty("AllowBypassKey", 1, newState) db.Properties.Append prp End If db.Close Set db = Nothing CheckShift frm, dbPath End Sub والإستدعاء في زر اختيار الملف :- Private Sub Btn_Select_Click() SelectExternalDB Me End Sub وزر التنفيذ :- Private Sub Btn_Doit_Click() ExecuteToggle Me End Sub وصورة من الأداة :- حيث عند اختيارك لأي قاعدة بيانات ، سيتم الكشف عن حالتها ، إن كان مفتاح الشيفت مفعلاً مسبقاً فسيتم تطبيق الإختيار تلقائياً على Disabled - غير مفعلة . وإذا كان مفتاح الشيفت غير مفعل مسبقاً ، فسيتم تطبيق الإختيار على Enabled - مفعلة . وسيكون التفعيل من خلال زر واحد فقط تتغير تسميته حسب الحالة .. وإذا كانت قاعدة البيانات محمية بكلمة مرور فسيظهر لك رسالة لإدخال كلمة مرور قاعدة البيانات فور اختيارها ، وعند تنفيذ الإجراء الذي تريده للتأكيد .. ShiftEnabled.mdb تم تعديل بالامس في 13:28 بواسطه Foksh إضافة آخر سطر 1
ابو جودي قام بنشر بالامس في 13:32 قام بنشر بالامس في 13:32 في 16/4/2026 at 06:56, أحمد العيسى said: فى الفلترة : يكفى السطر الثالث ( كل الملفات ) ما هو فى المرفق القديم بتاعى كنت عامل كده بس يبدو لان حضرتك مأخدتش بالك انا عملتها كده فى المرفق الجديد بس علشان اوضح لحضرتك واثبت لك انها تعمل مع كل الاصدارات فياريت تتأكد من المرفق باسم : تفعيل وإلغاء الشفت2.mdb اللى حضرتك ارفقته وحتجد اساسا انه مافيهوش اى مشاكل في 16/4/2026 at 06:56, أحمد العيسى said: بالنسبة لملف *.accdb لم ينجح التطبيق فى تغيير الخاصية اسف انا كتبت الكود وجربته وكان شغال على كل الامتدادت لكل الاصدارات ولكن عند المراجعة استوقفنى استخدام : Workspaces واعتقد ان استخدام :DBEngine.Workspaces(0) يرث إعدادات محرك المشغل الحالي لذلك يبدو ان حضرتك تستخدم اصدار اقل من 2007 لذلك حدثت هذه المشكلة على ما يبدو ودى المرفق الجديد تفعيل وإلغاء الشفت-V2.mdb 1
أحمد العيسى قام بنشر بالامس في 15:06 الكاتب قام بنشر بالامس في 15:06 (معدل) شكراً للسادة الأعزاء Foksh ، ابو جودي مبدئياً .. التطبيقان كل منهما يلبى المطلوب فى بيئة تشغيله عند التشغيل على أكسس 2003 يقوم باللازم نحو اللاحقة mdb وعند التشغيل على أكسس 2007 يتعامل مع الملفات دات اللاحقة accdb أحتاج لمزيد من التجارب لاحقاً !! تم تعديل منذ 23 ساعات بواسطه أحمد العيسى
Foksh قام بنشر منذ 23 ساعات قام بنشر منذ 23 ساعات 37 دقائق مضت, أحمد العيسى said: عند التشغيل على أكسس 2003 يقوم باللازم نحو اللاحقة mdb ليس لدي نسخة 2003 حتى أقوم بالتجربة ، ولكن الأمر مرهون بتجربتك على أكثر من إصدار أخي الكريم .. جرب كلا الحلين وأعتقد أنك سترسو على بر الإجابة بأمان . 1
أحمد العيسى قام بنشر منذ 5 ساعات الكاتب قام بنشر منذ 5 ساعات 18 ساعات مضت, Foksh said: ليس لدي نسخة 2003 حتى أقوم بالتجربة بسيطة .. إذا أردت : فيما يلى رابط لتحميل Portable_Office 2003 من صنعي ، جربه مطلوب تعديل بسيط على تطبيقك: عند الضغط على زر تفعيل مفتاح الشيفت / إلغاء مفتاح الشيفت ، يتم التنقل بين عناصر الاختيار Disable و Enaable والعكس لا يتم إذا تم التأشير واختيار عناصر الاختيار لا يتم تغير المسمى على زر تفعيل مفتاح الشيفت طبقاً للإختيار والمطلوب التعديل هنا
Foksh قام بنشر منذ 4 ساعات قام بنشر منذ 4 ساعات 11 دقائق مضت, أحمد العيسى said: إذا تم التأشير واختيار عناصر الاختيار لا يتم تغير المسمى على زر تفعيل مفتاح الشيفت طبقاً للإختيار والمطلوب التعديل هنا أصغر همومك أخي أحمد .. كمثال ؛ في حدث بعد التحديث للعنصر OptMain ، جرب الفكرة التالية أو كما تريد لحاجتك :- Private Sub OptMain_AfterUpdate() If Me.OptMain.Value = 1 Then Me.Btn_Doit.Caption = "إلغاء تفعيل مفتاح الشيفت" Else Me.Btn_Doit.Caption = "تفعيل مفتاح الشيفت" End If End Sub
ابو جودي قام بنشر منذ 3 ساعات قام بنشر منذ 3 ساعات استاذ @أحمد العيسى خلينى اوضح شئ مهم جدا جدا وانا عدلت الاكواد بسببها يستحيل ان اكسس اقل فى اصدار 2007 يقوم بعمل تفعيل او الغاء تفعيل بالشفت لقواعد بيانات تمت على اصدارات اعلى من او يساوى 2007 السبب: السبب ان الاصدارات الاقل تعتمد على محرك اساسا لا يستطيع التعامل مع قواعد بيانات تمت على اصدارات احدث واللى نتيجتها الرسالة اللى انت شاركتها ولكن العكش ممكن فمحرك قواعد البيانات الحديثة يمكنه التعامل مع قواعد البيانات الاقل من 2007 جملة الاتصال لتمرير كلمة المرور تختلف بين الاصدارات اقل من 2007 واعلى من او يساوى الاصدار 2007 واتفضل المرفق 1
أحمد العيسى قام بنشر منذ 3 ساعات الكاتب قام بنشر منذ 3 ساعات (معدل) منذ ساعه, Foksh said: أصغر همومك أخي أحمد .. كمثال ؛ في حدث بعد التحديث للعنصر OptMain ، جرب الفكرة التالية أو كما تريد لحاجتك :- Private Sub OptMain_AfterUpdate() If Me.OptMain.Value = 1 Then Me.Btn_Doit.Caption = "إلغاء تفعيل مفتاح الشيفت" Else Me.Btn_Doit.Caption = "تفعيل مفتاح الشيفت" End If End Sub لا أعرف وجهة نظرك فى أن التطبيق يتعامل مع موديول ، ولكنى أحترمها طبعاً فى حين أنه يحتوى على نموذج واحد يتيم يمكن وضع كل أوامر الموديول به ملاحظتك حدث بعد التحديث للعنصر OptMain لم يكن غائباً عنى ولكن كنت أفكر فى وظيفة التطبيق المتشابكة وأن الحدث هل سوف يؤثر فيها ؟ إقتراحى إذا أعجبك: وضع زري أمر "إلغاء تفعيل" ، "تمكين تفعيل" وليس زر واحد مع خفوت أحدهما وقت الحاجة لأحدهما التعديل فى بيان "Lbl_Info" بالنموذج أو الاستغناء عنها خد راحتك .. أعلم أن دماغك متكلفة ويمكنك أن تضيف من إبداعاتك الكثير ، فى انتظار مرفقك المعدل تم تعديل منذ 3 ساعات بواسطه أحمد العيسى
أحمد العيسى قام بنشر منذ 3 ساعات الكاتب قام بنشر منذ 3 ساعات (معدل) 18 دقائق مضت, ابو جودي said: استاذ @أحمد العيسى خلينى اوضح شئ مهم جدا جدا وانا عدلت الاكواد بسببها يستحيل ان اكسس اقل فى اصدار 2007 يقوم بعمل تفعيل او الغاء تفعيل بالشفت لقواعد بيانات تمت على اصدارات اعلى من او يساوى 2007 تمام 100 % لماذا أصمم على أن أن يكون التطبيق بأكسس 2003 لأن جميع إصدارات الأكسس التالية تقوم بتشغيل هذا التطبيق ما لم نضيف خصائص عالية من الإصدارات الحديثة لذلك ذكرت أن تطبيق حضرتك قد نجح فى التأثير على التطبيقات ذات اللاحقة accdb بشرط تشغيله من داخل 2007 فما فوق لكن فى أكسس 2003 لن يؤثر إلا فى التطبيقات mdb تم تعديل منذ 3 ساعات بواسطه أحمد العيسى
ابو جودي قام بنشر منذ 3 ساعات قام بنشر منذ 3 ساعات 8 دقائق مضت, أحمد العيسى said: تمام 100 % لماذا أصمم على أن أن يكون التطبيق بأكسس 2003 لأن جميع إصدارات الأكسس التالية تقوم بتشغيل هذا التطبيق ما لم نضيف خصائص عالية من الإصدارات الحديثة لذلك ذكرت أن تطبيق حضرتك قد نجح فى التأثير على التطبيقات ذات اللاحقة accdb بشرط تشغيله من داخل 2007 فما فوق لكن فى أكسس 2003 لن يؤثر إلا التطبيقات mdb طيب انا سوف أراجع الكود واتيك بنسخة احترافية من الكود فى نموذج واحد كامل بمرفق بعد عمل بعض التحسينات والاول جرب كل شئ ولو تمام انت اعمله بالاصدار 2003
تمت الإجابة ابو جودي قام بنشر منذ 2 ساعات تمت الإجابة قام بنشر منذ 2 ساعات المرفق بعد التجربة على 2003 لو تمام يبقى ماشئ الحل لو فى مشكلة ظهرت قم بانشاء قاعدة بيانات جديدة من الاصدار 2003 وبعد ذلك قم بتصميم النموذج والاكواد من هذه النسخة واخرنا النتيجة من فضلك تفعيل وإلغاء الشفت-V2.accdb 1
أحمد العيسى قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه 58 دقائق مضت, ابو جودي said: المرفق بعد التجربة على 2003 لو تمام يبقى ماشئ الحل الله ينور بتشغيل المرفق من داخل أكسس 2007 وتطبيقه على ملفين إحداهما حديث " تجربة.accdb " والآخر قديم تنسيق 2003 " مدرسين.mdb " تمام لكلا الملفين ، وأعتقد أنه لا حاجة لتحويل هذا المرفق إلى نظام 2003 لأن المطلوب هو تأثيره على ملفات 2003 بجانب تأثيره على الملفات الأحدث 1
ابو جودي قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه يعنى كده كل امورك تمام ؟ واللا محتاج اى حاجة تانى ؟..
أحمد العيسى قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه تمام يا أستاذنا وبلاش كل شوية تهددنا بأنك هتسيب المنتدى إحنا منقدرش نستغنى عنك
ابو جودي قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه من فضلك بس جرب تعمل ملف accde ومرة كمان مع ملف mde لانه المفروض يرفض لانهم ما يتعدلوا وياريتك لو تجرب قواعد Accde , Mdb بكلمات مرور وطبعا كلمات المرور على القاعدة مش على محرر الاكواد علشان بس تتأكد أن كل شئ شغال معك تمام لانى حملت السخة للاوفيس البورتابل اللى انت قلت عليها وللاسف مش شغالة مع ويندوز 64 بت تقريبا وبغض النظر عن الفكرة الموجودة فى النموذج بالشكل ده انا اول تعديل تعديل لى على القاعدة دى قلت انها قاعدة الاستاذة أم عهود مش شغلى ولا افكار انا افتكر بس انا استخدمت فى اول تعديل فيل ديلوج بدل دوال API وعارف ان الدوال اسرع بس وقتها مكنتش بأعرف احول الدول ل 64 بصراحة وتانى تعديل وقتها اضافة كلمة المرور فلو فى اى شئ مش عاجبك فى الافكار او عاوز تضيف اى شئ او تكستميز اى حاجة بشكل معين قولى انا بصراحة واعتذر مكنتش مركز قوى مع المشاركات كنت باشوف اخر واحد واحاول استنتج الوجوار ماشئ ازاى لانى كنت مشغول جدا بصراحة مش حضحك عليك كسلت ادور على دوال API واحولها بدل الفيل يلدوج والربط المتأخر
أحمد العيسى قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه (معدل) 28 دقائق مضت, ابو جودي said: من فضلك بس جرب تعمل ملف accde ومرة كمان مع ملف mde ده فعلاً اللى عملته بالتفصيل : تفعيل ، عدم تفعيل للملفات mdb ، accdb جربت الآن على ملف mde وكمان عملت له كلمة سر للقاعدة أثناء الفتح الخاص قبل تحويلها وتم اختبار ظهور وإخفاء كلمة سر القاعدة وتفعيلها وإلغاء تفعيلها وكله تمام وأكرر شكري مرة أخرى للعلم فقط أنا شغال على ويندوز 7 32 بت وعليه أوفيس 2003 أساسي ، وأوفيس 2007 بورتابل وهذه بيئة التجارب عندى قد يكون هناك مشكلة فى أوفيس 2003 البورتابل الذى رفعته هنا ، فالجميع يعلم أن التثبيت أفضل طبعاً من ملف بورتابل تم تعديل منذ 1 ساعه بواسطه أحمد العيسى
Foksh قام بنشر منذ 42 دقائق قام بنشر منذ 42 دقائق مبارك عليك الحل .. وعذراً لعدم المتابعة معك في وقتها ، بس كنت خارج من الشغل للأسف .. 58 دقائق مضت, أحمد العيسى said: تمام لكلا الملفين ، وأعتقد أنه لا حاجة لتحويل هذا المرفق إلى نظام 2003 لأن المطلوب هو تأثيره على ملفات 2003 بجانب تأثيره على الملفات الأحدث في المرفق اللي رفعتهولك ، كان فعلاً يتم التنفيذ على الإمتدادين MDB و ACCDB من إصدارات 2007 وما فوق .. لكنك بحثت عن فكرة زرين لكل وظيفة ، وهذا كان يسيراً جداً من خلال الفكرة اللي طرحتها .. ولكن كل الطرق تؤدي إلى روما - ما دامت روما قريبة - .. وفعلاً نسختك اللي رفعتها ما اشتغلتش عندي أنا كمان وده اللي خلاني أطلع وقلت بجرب على كمبيوتر تاني .. 👍🏻
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان