كل الانشطه
- الساعة الأخيرة
-
اممممم ، جميل يعني أحسن شيء و الأفضل هو ، أن يتم :- تصميم النماذج المراد استخدامها كـ Popup مسبقاً بهذه الخصائص . استخدام معلمة في OpenArgs لتحديد ما إذا كان النموذج سيفتح كـ Popup أو لا .. في حدث OnLoad للنموذج ، التحقق من OpenArgs وتعديل السلوك حسب الحاجة ( بدون تغيير الخصائص الأساسية ) . أعتقد هذا الحل يتجنب مشاكل الأمان ، وأيضاً يوفر مرونة معقولة ( نسبياً إلى حد ما 😅 ) دون الحاجة لتعديل التصميم أثناء التشغيل .
- 10 replies
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
طبعا دى خصائص ولتمرير هذه الخصائص لابد من فتح النموذج اولا فى وضع التصميم وهو مخفى حتى لا يلاحظ المستخدم ثن تمرير هذه الخصائص من الكود الى النموذج ثم اغلاقه مع الحفظ ثم اعادة فتحه اللى قلته سابقا ده السيناريو النظرى والمحتوم ولا سبيل أو طريق سواه لتحقيق مرادك ولكن هناك عدة تساؤلات يجب طرحها هل لو القاعدة مأمنه يعمل ؟ هل لو الاطارات مخفيه يعمل ؟ هل لو تم تشفير القاعده الى Accde يعمل ؟ الله اعلم لذلك ابتعدت عنها تماما
- 10 replies
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
ما شاء الله تبارك الله !!! ايه التحفة الجميلة دي أداة رائعة بالفعل ومهنية في تنظيم التنقل بين النماذج ، وأعجبتني عدة مميزات فيها :- التصميم المتكامل : التعداد FormOpenMode شامل ويغطي جميع حالات الفتح تقريباً ، مما يجعل الأداء مرناً وقابلاً للتوسعة . وطبعاً التحكم الدقيق من خلال دعم WhereCondition و OpenArgs يضيف طبقة احترافية للتواصل بين النماذج . وهنا تحفة فنية عجبتني كمان وهي منع التكرار من خلال lastCall فكرة ذكية لتجنب إهدار الموارد . بس سؤال خطر على بالي ، وأكيد لم يخف عنك يا تحفتنا هل يمكن إضافة خاصية فتح نموذج كـ "Popup" (نافذة منبثقة) لوضع acWindowNormal مع إمكانية التمرير فوق النماذج الأخرى . جزاك الله خيراً على هذا المجهود ، وجعلها في ميزان حسناتك
- 10 replies
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
nssj replied to nssj's topic in قسم الأكسيس Access
الذي فهمته من كلامك أخي الكريم أن المشكلة قد تكون في جعل حقل الترقيم التلقائي (ID) هو المفتاح الأساسي فقمت بإضافة حقل رقمي آخر ليكون هو المفتاح الأساسي وهو حقل (bookID) وأنشأت العلاقات بين الجداول وعندما حاولت نقل المعلومات لجدول الربط (TAB_takhrij_X) حصلت نفس المشكلة ففرغت جدول الربط من المعلومات لأقوم بإضافتها من جديد يدويا من خلال نموذج (book) ولم تحدث مشكلة في الصفحات الأولى وعندما ذهبت لآخر صفحتين من كتاب (طبقات أصبهان) وجدوله (bookx) وحاولت إضافة رقم ربط خرجت نفس الرسالة وحتى أقطع الشك باليقين قمت بإنشاء قاعدة بيانات جديدة (3book) وأنشأت جدولين صغيرين بدون بيانات، لكن بنفس تصميم وأسماء الجداول السابقة، وأنشأت جدول الربط (TAB_takhrij_X) وجعلته فارغا لأقوم بتعبئته يدويا عبر نموذج (book) والكتاب الأول (طبقات أصبهان) وجدوله (bookx) وفيه خمس صفحات فقط تم ربطه عبر جدول الربط بلا مشاكل وكذا في الكتاب الثاني (تاريخ أصبهان) وجدوله (bookx2) إلى أن وصلت للصفحة (6) وعندما أضفت رقم الربط خرجت الرسالة أنا أجري تحديثا على جدول (bookx2) فلماذا تخرج لي رسالة أنه مطلوب سجل مرتبط في جدول (bookx) وكلاهما من الجداول الفرعية ولا رابط بينهما وكأن العلاقة المنشأة تتطلب وجود ترابط بين أرقام (bookID) في الجداول الفرعية هذا تفسيري لما حدث .. ولست من أهل الخبرة ولا أدري إن كان ما قمتُ به هو ما قصدته أخي الكريم .. أم أنني أخطات الفهم book3.accdb -
علشان فاضل ساعة على موعد الدوا بتاع الـ.................. 😂😂 أنتبهت لاحقا أنك ذاكرها بس مش حاطها من ضمن الأمثلة 😎✌ يا تحفة 😁👊
- 10 replies
-
- 1
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
- Today
-
أفكار لامعة أخي فادي @Foksh 😊👌🌷 .. لك أجمل تحية 😊🌹 ما أجمل هذي الأدوات اللي تسهل العمل وتضع الحلول الجذرية لأغلب المشاكل اللي تواجهنا .. ............ بصراحة أحاول أحشر نفسي في الموضوع لكن ما عندي شي أضيفة بعد ملاحظات فطاحلة الأكسس هنا 😅🖐 لذلك سألتزم المتابعة والاستفادة وجني الثمار بعد نضجها إن شاء الله 😄✌🌹🌟🌷
- 14 replies
-
- اداة تحويل الاكواد،
- 32 الى 64،
-
(و1 أكثر)
موسوم بكلمه :
-
مش مرتاح لك مش عارف ليه حاسس ان واحد تحفة دي بوصلة تتجه نحو التكه يا اللي فاضلة على أخر السكة بس ما علينا هأعمل حالى مش شايف السطر هاد اجمالا يعنى كل المميزات والخدمات التي يقدمها الكود وطرق الاستدعاءات المختلفة توضح الالية وكمان فى مرفق علشان واحد صاحبنا بس مش راح أحكى عن اسمه لو دخل الموضوع من غير مرفق راح يضل يزعق لي
- 10 replies
-
- 1
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
استاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @jjafferr كل الفضل لكم ولأساتذتي العظماء بعد رب العزة سبحانه وتعالي انتم الضياء الذى يضئ ظلمات جهلنا والنجوم التي بها نهتدى جزاكم الله خيـــرا
- 10 replies
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
ما شاء الله تبارك الله ... 😊🌹🌟 تحفة فنية نزين بيها المكتبة العامرة .. من واحد تحفة 😁👌🌷 الميزة هذي إنت ذاكرها من ضمن المميزات 😎☝
- 10 replies
-
- 1
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
وعليكم السلام الافكار الجديدة دائما تخلينا نفكر خارج الصندوق، شكرا جزيلا اخوي ابو جودي 🙂
- 10 replies
-
- 1
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
اولا لى عظيم الشرف ان تكون اول تجربه ومشاركة لاستاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @ابوخليل 🌹 وشهادتكم وسام فخر وعزة جزاكم الله خير انتم وكل اساتذتى الذين اتعلم منهم فلكم جميعا كل القضل بعد رب العزة سبحانه وتعالى خطرت على بالى دالة بسيطه جدا لعمل مجرد سويتش باغلاق نموذج وفتح اخر بحيث امرر اسماء النماذج للداله ولكن بعد ذلك قلت لاجهل الكود اكثر شكوليه ومرونة ليتم التعامل معه من خلال البراميترز وبقدر الامكان حاولت ان يكون اسلوب الاستظعاء سهل ومرن جدا جدا وبعد ذلك خطر على بالى اضاافة شروط الفتح و openings قلت فى نفسيى ولما لا اوسع الكوظ لتكون ظاله واحدة وتلبى العديد من الخدمات لتشمل معظم الرغبات وطبعا لن ننسي دوال الاكسس اصلا هى اساس الكود والافكار ولكن تمت تمت برمجة دالة واحدة شاملة لعدة وظائف وخدمات بمناسبة التقارير فكرت فيها برضو بس فعلا تعبت ومش قادر فى الوقت الحالى لكن ان شاء الله هى فكرة فى البال والخاطر الله المستعان
- 10 replies
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
ابوخليل replied to nssj's topic in قسم الأكسيس Access
👍 -
يسرني ان يكون ردي هو الاول على الموضوع عمل جميل احترافي .. يختصر على المطور الكثير على المطور او المبرمج اعتماد هذه الدالة في بداية مشروعه من اجل يعتاد عليها وينسى دوال اكسس الافتراضية يتبادر الى الذهن سؤال .. هل سيتم دمج التقارير _على الأقل _ ضمن هذه الدالة؟ بكذا يمكن ننسى دوال اكسس فعلا
- 10 replies
-
- 1
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
ابو جودي replied to nssj's topic in قسم الأكسيس Access
من اجل ذلك انصح دائما بعدم الاقتراب من حقل الترقيم الخاص بالاكسس واتصح بتركه للاكسس اولا انسخ الجداول فى نفس القاعدة كنسخ احتياطيه قم باقراغ الجداول الاساسيه حازل ترك حقول الترقيم التلقائية للاكسس انشئ حقول خصاة بالمفاتيح اعط خصائص الانديكس لها بابشكل المناسب قم بعمل العلاقات قم بنسخ بيانات الجداول الاساسية اولا بعد ذلك انسخ بيانات الجداول الفرعيه بناء على ترتيب العلاقات سينتج جداول اخطاء فى حال عدم وجود قيم قى مفاتيح الربط المختلفه -
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
nssj replied to nssj's topic in قسم الأكسيس Access
يعني لكل كتاب أرقام (ID) الخاصة به ورقم (ID) هو لعدد الصفحات أو الأحاديث حسب طبيعة الكتاب فهذا الكتاب عدد صفحاته (500) وبالتالي عدد (ID) هو (500) وذاك الكتاب عدد صفحاته (2000) وبالتالي عدد (ID) هو (2000) وأصلا فالكتابين المرفقين في الملف أنا اختصرتهما إلى (100) وإلا فأحدهما (2090) والآخر (4970) والذي ظهر لي أن لكي تكون العلاقة فيها تكامل فينبغي أن تكون كل هذه الجداول الفرعية لها نفس عدد (ID) وإلا لماذا يرفض إضافة رقم لــ (ID) موجود في جدول (bookx) وغير موجود في (book2) وإذا كان الأمر كذلك فهل من حل ؟ -
هل تبحثون عن طريقة مرنة وقوية للتحكم في فتح وإغلاق النماذج في قواعد البيانات ؟ إليكم دالة NavigateForm الحل الأمثل لتبسيط إدارة فتح وإغلاق النماذج أو التبديل بين الفتح/والإغلاق بكفاءة عالية! ما هي دالة NavigateForm ؟ NavigateForm هي دالة تستخدم في وحدة نمطية عامة (Module) لإدارة النماذج بطريقة احترافية تقوم الدالة بـالآتي : إغلاق النموذج الحالي أو نموذج محدد فتح نموذج آخر بوضع عرض محدد (مثل العرض العادي - الحوار - التصميم - المخفي - . . . .. إلخ) التبديل بإغلاق نموذج وفتح أخر أو فتح نموذج أخر مع الابقاء على النموذج الأب مفتوح تطبيق فلاتر عبر WhereCondition لتحديد السجلات المعروضة تمرير بيانات إضافية عبر OpenArgs لتخصيص سلوك النموذج الدالة مثالية للمطورين اللي عايزين تنقل سلس بين النماذج مع تحكم دقيق في أوضاع الفتح والإغلاق سواء في تطبيقات بسيطة أو معقدة مميزات دالة NavigateForm مرونة عالية: تدعم إغلاق النموذج الحالي أو إغلاق نموذج محدد أو فتح نموذج بوضع معين أو الجمع بين العمليات دي في استدعاء واحد تعداد مخصص (FormOpenMode): يشمل كل أوضاع فتح النماذج الشائعة: - DefaultMode: الوضع الافتراضي - NormalMode: العرض العادي (Form View) - DesignMode: وضع التصميم (Design View) - DatasheetMode: عرض ورقة البيانات (Datasheet View) - PreviewMode: معاينة الطباعة (Print Preview) - LayoutMode: عرض التخطيط (Layout View) - AddMode: إضافة سجل جديد - EditMode: تعديل السجلات - ReadOnlyMode: القراءة فقط - HiddenMode: فتح النموذج في الوضع المخفي - DialogMode: فتح النموذج كحوار (يوقف تنفيذ الكود حتى الإغلاق) معالجة الأخطاء: تتضمن معالجة أخطاء مدمجة للتعامل مع حالات زي: - أسماء نماذج غير موجودة - محاولة إغلاق نموذج غير مفتوح - أخطاء تشغيل غير متوقعة التعامل مع الإغلاق اليدوي: الدالة بتتعامل بذكاء مع إغلاق النماذج يدويًا (مثل ضغط "X" في النافذة) وبتضمن إمكانية إعادة فتح النموذج بدون مشاكل منع الاستدعاءات المتكررة: بتمنع فتح النموذج مرتين بنفس المعاملات لو كان مفتوح بالفعل، مع إعادة تعيين السجل بعد كل عملية توثيق احترافي: الكود مرفق بتوثيق مفصل يشرح المعاملات و الأوضاع و وأمثلة الاستدعاء سهولة التكامل: يمكن استدعاؤها من أحداث النماذج (مثل أزرار OnClick) أو ماكرو أو كود VBA آخر دعم الفلاتر والبيانات الإضافية: بتسمح بتطبيق فلاتر عبر WhereCondition وتمرير بيانات مخصصة عبر OpenArgs الكود الكود متاح في وحدة نمطية عامة (basNavigateForm)، ويتضمن: تعداد FormOpenMode لتحديد أوضاع الفتح دالة IsFormPresent للتحقق من وجود النموذج دالة NavigateForm لإدارة فتح وإغلاق النماذج Option Compare Database Option Explicit ' متغير عام للتحكم في طباعة رسائل التصحيح Public DebugPrintEnabled As Boolean ' تعداد لتحديد أوضاع فتح النموذج Public Enum FormOpenMode DefaultMode = 0 ' الوضع الافتراضي (يفتح النموذج بإعدادات Access الافتراضية) NormalMode = 1 ' العرض العادي (Form View) DesignMode = 2 ' وضع التصميم (Design View) DatasheetMode = 3 ' عرض ورقة البيانات (Datasheet View) PreviewMode = 4 ' عرض معاينة الطباعة (Print Preview) LayoutMode = 5 ' عرض التخطيط (Layout View) AddMode = 6 ' وضع إضافة سجل جديد EditMode = 7 ' وضع تعديل السجلات ReadOnlyMode = 8 ' وضع القراءة فقط HiddenMode = 9 ' الوضع المخفي (Hidden) DialogMode = 10 ' وضع الحوار (Dialog) End Enum ' ======================================================================= ' الدالة: التحقق من وجود نموذج في قاعدة البيانات ' الوصف: ترجع True إذا كان النموذج موجودًا في قاعدة البيانات، وFalse إذا لم يكن موجودًا ' المعاملات: formName (String) - اسم النموذج المراد التحقق منه ' ' المؤلف: [ابو جودي - منتديات أوفيسنا] ' تاريخ الإنشاء: 24 مايو 2025 ' الإصدار: 2.1 ' ======================================================================= Public Function IsFormPresent(formName As String) As Boolean On Error Resume Next Dim formObj As Object Set formObj = CurrentProject.AllForms(formName) IsFormPresent = Not (formObj Is Nothing) ' طباعة نتيجة التحقق إذا كانت الطباعة مفعلة If DebugPrintEnabled Then Debug.Print "IsFormPresent: التحقق من النموذج '" & formName & "': " & IsFormPresent End If Set formObj = Nothing On Error GoTo 0 End Function ' ======================================================================= ' NavigateForm ' ' وصف: ' دالة عامة للتحكم في فتح وإغلاق نماذج Microsoft Access. تتيح إغلاق ' النموذج الحالي أو نموذج محدد، وفتح نموذج آخر بوضع محدد مع إمكانية ' تمرير بيانات إضافية عبر OpenArgs وتطبيق فلتر عبر WhereCondition. ' إذا كان النموذج المراد فتحه مفتوحًا بالفعل، يتم إغلاقه وإعادة فتحه ' بالوضع المحدد مع الحفاظ على OpenArgs وWhereCondition. ' ' المعاملات: ' - formToClose (اختياري، String): اسم النموذج المراد إغلاقه. ' - formToOpen (اختياري، String): اسم النموذج المراد فتحه. ' - openMode (اختياري، FormOpenMode): وضع فتح النموذج. ' - openArgs (اختياري، Variant): بيانات إضافية لتمريرها إلى النموذج المفتوح. ' - WhereCondition (اختياري، String): شرط فلترة لتحديد السجلات المعروضة. ' ' القيمة المرجعة: ' - Boolean: True إذا نجحت العملية، False إذا حدث خطأ. ' ' أمثلة: ' Call NavigateForm ' إغلاق النموذج الحالي ' Call NavigateForm("Form1") ' إغلاق Form1 ' Call NavigateForm("", "Form2", DialogMode) ' فتح Form2 كحوار ' Call NavigateForm("Form1", "Form2", AddMode) ' إغلاق Form1 وفتح Form2 لإضافة سجل ' Call NavigateForm("", "Form2", NormalMode, "CustomerID=123", "ID=123") ' فتح Form2 مع فلتر ' Call NavigateForm("Form1", "Form2", DialogMode, "Source=MainForm") ' إغلاق Form1 وفتح Form2 كحوار ' Call NavigateForm("", "Form1", DialogMode, , "ID=456") ' إغلاق Form1 وإعادة فتحه كحوار مع فلتر ' ' ملاحظات: ' - تأكد من وجود النماذج المحددة في قاعدة البيانات. ' - وضع DialogMode يوقف تنفيذ الكود حتى إغلاق النموذج. ' - وضع DesignMode قد يكون مقيدًا في قواعد البيانات المحمية. ' - استخدم المتغير العام DebugPrintEnabled لتفعيل طباعة رسائل التصحيح أثناء التجربة. ' - OpenArgs يمكن استخدامه في حدث OnLoad أو OnActivate للنموذج لمعالجة البيانات الممررة. ' - يمكن استدعاء الدالة من ماكرو باستخدام RunCode: NavigateForm() ' - إذا كان النموذج مفتوحًا، سيتم إغلاقه وإعادة فتحه بالوضع المحدد. ' - WhereCondition يتم تطبيقه عند فتح النموذج. ' - يتم منع الاستدعاءات المتكررة بنفس المعاملات فقط إذا كان النموذج مفتوحًا. ' - يتم إعادة تعيين سجل الاستدعاء بعد نجاح أو فشل العملية. ' ' المؤلف: [ابو جودي - منتديات أوفيسنا] ' تاريخ الإنشاء: 24 مايو 2025 ' الإصدار: 2.1 ' ======================================================================= Public Function NavigateForm(Optional ByVal formToClose As String = "", _ Optional ByVal formToOpen As String = "", _ Optional ByVal openMode As FormOpenMode = DefaultMode, _ Optional ByVal openArgs As Variant = Null, _ Optional ByVal WhereCondition As String = "") As Boolean On Error GoTo ErrHandler ' متغير ثابت لتتبع آخر استدعاء Static lastCall As String Dim currentCall As String currentCall = formToClose & "|" & formToOpen & "|" & openMode & "|" & IIf(IsNull(openArgs), "Null", openArgs) & "|" & WhereCondition ' التحقق من التكرار: نتجاهل فقط إذا كان النموذج مفتوحًا ونفس المعاملات If currentCall = lastCall And formToOpen <> "" Then If IsFormPresent(formToOpen) And CurrentProject.AllForms(formToOpen).IsLoaded Then If DebugPrintEnabled Then Debug.Print "NavigateForm: تجاهل استدعاء متكرر بنفس المعاملات: " & currentCall End If NavigateForm = True Exit Function End If End If ' تحديث lastCall lastCall = currentCall ' افتراض النجاح NavigateForm = True ' طباعة المعاملات عند دخول الدالة If DebugPrintEnabled Then Debug.Print "NavigateForm: استدعاء الدالة مع المعاملات - formToClose: '" & formToClose & "', formToOpen: '" & formToOpen & "', openMode: " & openMode & ", openArgs: " & IIf(IsNull(openArgs), "Null", openArgs) & ", WhereCondition: '" & WhereCondition & "'" End If ' إذا لم يتم تمرير أي معاملات، أغلق النموذج الحالي If formToClose = "" And formToOpen = "" Then If Not Screen.ActiveForm Is Nothing Then If DebugPrintEnabled Then Debug.Print "NavigateForm: إغلاق النموذج الحالي '" & Screen.ActiveForm.Name & "'" End If DoCmd.Close acForm, Screen.ActiveForm.Name, acSaveNo ' إعادة تعيين lastCall بعد الإغلاق lastCall = "" Else If DebugPrintEnabled Then Debug.Print "NavigateForm: لا يوجد نموذج حالي مفتوح" End If End If Exit Function End If ' التحقق إذا تم تمرير اسم نموذج للإغلاق If formToClose <> "" Then If IsFormPresent(formToClose) Then If CurrentProject.AllForms(formToClose).IsLoaded Then If DebugPrintEnabled Then Debug.Print "NavigateForm: إغلاق النموذج '" & formToClose & "'" End If DoCmd.Close acForm, formToClose, acSaveNo ' إعادة تعيين lastCall بعد الإغلاق lastCall = "" Else If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToClose & "' غير مفتوح" End If End If Else If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToClose & "' غير موجود" End If MsgBox "النموذج '" & formToClose & "' غير موجود في قاعدة البيانات.", vbExclamation, "خطأ" NavigateForm = False ' إعادة تعيين lastCall بعد الفشل lastCall = "" Exit Function End If End If ' التحقق إذا تم تمرير اسم نموذج للفتح If formToOpen <> "" Then If IsFormPresent(formToOpen) Then ' إذا كان النموذج مفتوحًا بالفعل، أغلقه If CurrentProject.AllForms(formToOpen).IsLoaded Then If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToOpen & "' مفتوح بالفعل، سيتم إغلاقه" End If DoCmd.Close acForm, formToOpen, acSaveNo End If ' فتح النموذج بالوضع المحدد If DebugPrintEnabled Then Debug.Print "NavigateForm: فتح النموذج '" & formToOpen & "' بوضع " & openMode & IIf(IsNull(openArgs), "", ", openArgs: " & openArgs) & IIf(WhereCondition = "", "", ", WhereCondition: " & WhereCondition) End If Select Case openMode Case NormalMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, , , openArgs Case DesignMode DoCmd.OpenForm formToOpen, acDesign, , WhereCondition, , , openArgs Case DatasheetMode DoCmd.OpenForm formToOpen, acFormDS, , WhereCondition, , , openArgs Case PreviewMode DoCmd.OpenForm formToOpen, acPreview, , WhereCondition, , , openArgs Case LayoutMode DoCmd.OpenForm formToOpen, acLayout, , WhereCondition, , , openArgs Case AddMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, acFormAdd, , openArgs Case EditMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, acFormEdit, , openArgs Case ReadOnlyMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, acFormReadOnly, , openArgs Case HiddenMode DoCmd.OpenForm formToOpen, acNormal, , WhereCondition, , acHidden, openArgs Case DialogMode DoCmd.OpenForm formToOpen, , , WhereCondition, , acDialog, openArgs Case Else DoCmd.OpenForm formToOpen, , , WhereCondition, , , openArgs End Select ' إعادة تعيين lastCall بعد فتح النموذج lastCall = "" Else If DebugPrintEnabled Then Debug.Print "NavigateForm: النموذج '" & formToOpen & "' غير موجود" End If MsgBox "النموذج '" & formToOpen & "' غير موجود في قاعدة البيانات.", vbExclamation, "خطأ" NavigateForm = False ' إعادة تعيين lastCall بعد الفشل lastCall = "" Exit Function End If End If Exit Function ErrHandler: If DebugPrintEnabled Then Debug.Print "NavigateForm: حدث خطأ: " & Err.Description End If MsgBox "حدث خطأ: " & Err.Description, vbExclamation, "خطأ" NavigateForm = False ' إعادة تعيين lastCall بعد الخطأ lastCall = "" End Function طريقة الاستخدام إنشاء الوحدة النمطية: افتح محرر VBA في (Alt + F11) أنشئ وحدة نمطية جديدة (Insert > Module) انسخ الكود أعلاه والصقه في الوحدة احفظ الوحدة النمطية باسم : basNavigateForm استدعاء الدالة: يمكن استدعاء NavigateForm من أحداث النماذج (مثل OnClick لزر) أو ماكرو أو كود VBA آخر أمثلة الاستدعاء: ' إغلاق النموذج الحالي Call NavigateForm ' إغلاق نموذج محدد Call NavigateForm("Form1") ' فتح نموذج في وضع الحوار Call NavigateForm("", "Form2", DialogMode) ' إغلاق Form1 وفتح Form2 في وضع إضافة سجل Call NavigateForm("Form1", "Form2", AddMode) ' فتح نموذج مع فلتر Call NavigateForm("", "Form2", NormalMode, , "CustomerID=123") ' فتح نموذج مع OpenArgs Call NavigateForm("", "Form2", DialogMode, "Source=MainForm") ' فتح نموذج مخفي Call NavigateForm("", "Form2", HiddenMode) ' فتح نموذج في وضع التصميم Call NavigateForm("", "Form2", DesignMode) ' فتح نموذج في عرض ورقة البيانات Call NavigateForm("", "Form2", DatasheetMode) وأخيـــــرا مرفق بسيط للتجربة NavigateForm (V2.1).accdb
- 10 replies
-
- 3
-
-
-
- شخابيط
- شخابيط وأفكار
-
(و33 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وأفكار
- شخابيط وافكار
- شخابيط ابو جودى
- شخابيط و أطروحات
- اوفيسنا
- منتديات أوفيسنا
- منتديات اوفيسنا
- قسم الاكسس
- قسم الأكسيس
- قسم الأكسيس access
- إدارة فتح وأغلاق النماذج
- فتح وأغلاق النماذج
- فتح وإغلاق النماذج
- فتح نموذج واغلاق النموذج الحالى
- اغلاق النموذج الحالى وفتح نموذج اخر
- navigateform
- microsoft access
- vba
- إدارة النماذج
- فتح النماذج
- إغلاق النماذج
- formopenmode
- فلتر wherecondition
- wherecondition
- فلتر
- openargs
- برمجة access
- كود vba
- نماذج access
- تنقل بين النماذج
- ماكرو access
- debugprint
- قاعدة بيانات access
- تطوير تطبيقات access
-
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
ناقل replied to nssj's topic in قسم الأكسيس Access
معليش هذه مافهمتها ... ممكن شرح لها -
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
nssj replied to nssj's topic in قسم الأكسيس Access
ليست المشكلة بين الجدول الأصل والفروع المشكلة بين الجداول الفروع وهي جداول الكتب: bookx // bookx2 .. .. فرقم (ID) هو تبع لعدد الصفحات او الأحاديث فلا يمكن أن تتوافق أعداد صفحات الكتب والأحاديث -
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
ناقل replied to nssj's topic in قسم الأكسيس Access
ممكن تستخدم الحذف من خلال كود مباشر لاي ID كتاب محذوف يتم حذف الصفحات المقابلة له في الجدول الابن وبدون استخدام التكامل المرجعي -
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
nssj replied to nssj's topic in قسم الأكسيس Access
حصل خطأ ورفعت الملف الخطأ .. هذا الملف الصحيح book2.accdb -
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
ناقل replied to nssj's topic in قسم الأكسيس Access
نعم من لوازم التكامل المرجعي ان يكون للسجل المضاف في جدول الابن سجل مرتبط في جدول الاب -
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
nssj replied to nssj's topic in قسم الأكسيس Access
الذي يظهر لي أن المشكلة في وجود بعض أرقام (ID) في أحد الجداول وعدم وجودها في جدول آخر هذا ما ظهر لي عندما أنشأت جدولا جديدا فارغا للربط (XXXX) وجعلت العلاقة بالشكل المطلوب وعندما نقلت المعلومات بالنسخ واللصق رفض أن يدخل هذا الصف لأنه لا يوجد (ID) برقم (39) في جدول (bookx) وعندما حاولت أن أضيف رقما جديدا في جدول الربط يدويا من خلال النموذج (book) خرجت هذه الرسالة لأنه لا يوجد (ID) برقم (100) في جدول (bookx2) وكأنه من لوازم (التكامل المرجعي) أن يوجد ترابط بين أرقام (ID) في كل الجداول وهذا متعذر بالطبع، فلكل جدول أرقام (ID) الخاصة به هل ما استنتجتُه صحيح .. وما العمل ؟ ما فعلتُه كان قبل أن أرى مشاركتك أخي الكريم .. وأعتقد أن ما طلبتَه هو ما قمتُ به book2.accdb -
طلب طريقة لتصدير الملف او التنسيق الى اكسيل
hegazee replied to البرنس النصراوي's topic in منتدى الاكسيل Excel
إن شاء الله يمكنك نسخ محتوى صفحة ويب وتنسيقه في ملف إكسيل باستخدام عدة طرق: 1. النسخ اليدوي من خلال نسخ المحتوى من صفحة الويب ثم لصقها في شيت إكسيل 2. ممكن تستخدم Power Query كالآتي: افتح إكسيل وانتقل إلى علامة التبويب Data أو البيانات. اختر Get Data ثم From Web أو الحصول على بيانات ثم من الويب. أدخل رابط صفحة الويب. ستظهر نافذة تعرض الجداول أو العناصر المتوفرة في الصفحة. اختر الجدول المطلوب. قم بتحميل البيانات إلى إكسيل، ويمكنك تنسيقها بعد ذلك.- 1 reply
-
- 1
-
-
مساعدة في الربط بين الجداول مع خاصية (فرض التكامل المرجعي)
ناقل replied to nssj's topic in قسم الأكسيس Access
هناك طريقة تحايل ولكني لست متأكد من جدواها .... 1- اعمل نسخة احتياطية من القاعدة لديك 2- امسح بيانات الجداول ( bookX - bookX2 - TAB_takhrij_X ) 3- انشأ العلاقات التي تريدها 4- انسخ بيانات الجداول من النسخة الاحتياطية الى الجداول الثلاث 5- جرب واعلمنا بالنتيجة شاهد البتيجة -
ضم (Macro1) و (Macro2) معا وتوحيد البحث في شيت واحد
Foksh replied to algammal's topic in منتدى الاكسيل Excel
حسناً ، سأرى ما يمكنني فعله عند عودتي للمنزل ان شاء الله مساءً .. وقد نبحث عن حل آخر لحل مشكلة تتالي التحديث على البيانات