اذهب الي المحتوي
أوفيسنا

نجوم المشاركات

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      58

    • Posts

      5089


  2. منتصر الانسي

    منتصر الانسي

    المشرفين السابقين


    • نقاط

      37

    • Posts

      1452


  3. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      28

    • Posts

      11653


  4. عبدالله بشير عبدالله

Popular Content

Showing content with the highest reputation since 08/23/26 in all areas

  1. أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كمطورين لبرامج وقواعد بيانات آكسيس ، نعلم جميعاً أن أكبر تحدٍ يواجهنا بعد الانتهاء من برمجة أي مشروع هو مرحلة نشر البرنامج وتثبيته لدى العميل . وكثيراً ما نتفاجأ باتصالات وشكاوى متكررة من العملاء . أذكر منها :- ❌ الماكرو لا يعمل والأزرار لا تستجيب ، ( بسبب شريط الأمان الأصفر ) ❌ البرنامج تم حظره من الويندوز لأنه محمل من الإنترنت ، ( مشكلة الـ Unblock ) ❌ البرنامج بطيء أو يرفض تشغيل الأكواد من السيرفر المشترك ، ( Network Locations ) ❌ رسالة خطأ مفاجئة تقول: MaxLocksPerFile Exceeded عند ترحيل البيانات من هنا ، وُلدت فكرة هذه الأداة المتكاملة لتكون الحل الجذري والنهائي لكافة مشاكل الأمان ، والتوثيق ، وتهيئة بيئة التشغيل لأي مشروع آكسيس بضغطة زر واحدة . 🌟 فمن هي هذه اللأداة :- اسم الأداة :- مركز التوثيق وإدارة إعدادات الأمان في آكسيس - Access Security & Trust Center Manager التوافقية :- متوافقة مع كافة أنظمة ويندوز ( Windows 7 / 10 / 11 ) بنواتي ( 32-bit و 64-bit ) إصدارات أوفيس المدعومة :- تعمل بتوافقية تامة مع ( 2007, 2010, 2013, 2016, 2019, 2021, و Office 365 ) 🛠️ الميزات والوظائف الرئيسية للأداة :- 1️⃣ إدارة مركز التوثيق والأمان (Trust Center & Macros) توثيق مسار المشروع فوراً ، وإضافة مجلد البرنامج ومجلداته الفرعية إلى المواقع الموثوقة (Trusted Locations) تلقائياً تمكين الماكرو و ActiveX . بخيار للتحكم في تفعيل الماكرو وعناصر التحكم دون ظهور أي رسائل تحذير مزعجة للعميل إلغاء شرائط التحذير وإخفاء شريط الرسائل الأصفر عند فتح البرنامج 2️⃣ فك حظر الملفات المحملة تلقائياً (Unblock Files) فك حظر ملفات البرنامج المحملة عبر الإنترنت أو الواتساب أو الشبكة من خلال مسح القيود من الريجستري تلقائياً تعديل سياسة ويندوز لمرفقات الملفات (SaveZoneInformation) لمنع حظر الملفات مستقبلاً 3️⃣ دعم كامل لشبكات وسيرفرات الشركات (Network Readiness) تمكين مسارات الشبكة ( AllowNetworkLocations ) والسماح لآكسيس بتشغيل الأكواد والماكرو من السيرفرات ومحركات الأقراص المشتركة (\\Server\Share) إلغاء تحذيرات الروابط والمرفقات الخارجية ( DisableHyperlinkWarnings ) ، وفتح التقارير الخارجية كملفات الـ PDF أو الروابط بسلاسة وبدون رسائل التحذير الأمنية 4️⃣ تحسين محرك البيانات وإصلاح العرض الرسومي (Engine & Graphics) زيادة سعة أقفال السجلات ( MaxLocksPerFile = 500,000 ) وذلك لمنع انهيار الاستعلامات الضخمة وتضارب المستخدمين في الشبكة المحلية إصلاح وميض النماذج ( DisableHardwareAcceleration ) بتعطيل التسريع الرسومي لبطاقات الشاشة لمنع وميض النماذج أو اختفاء الأزرار 5️⃣ تخصيص بيئة و واجهة البرنامج (UI & Startup Options) قفل كواليس المشروع ( AllowSpecialKeys ) من خلال تعطيل المفاتيح الخاصة مثل (F11) لحماية جزء التنقل من عبث المستخدمين إلغاء رسائل التأكيد بتعطيل رسائل التأكيد عند الحذف ، التعديل ، واستعلامات الإجراءات التحكم بمظهر آكسيس وذلك من خلال إظهار أو إخفاء شريط الحالة السفلي الرمادي ، والكائنات المخفية ، وجداول النظام ، وسلوك مفتاح Enter ، وتعطيل شاشة ترحيب أوفيس للتشغيل المباشر 🚀 الميزة الجديدة والمطورة :- مشغل العميل التلقائي ( Client Launcher Generator ) تحتوي الأداة على زر تصدير مشغل الإعدادات ، والذي يقوم بإنشاء ملف باتش تنفيذي ( .bat ) يتميز بما يلي :- طلب صلاحية تشغيل المسؤول ذاتياً ( Self-Elevating UAC ) بمجرد فتحه ودون الحاجة لتشغيله كمسؤول Run As Administrator ذكاء التصدير بحد ذاته سيمكنك من تصدير ملف التشغيل والضبط لنفس قاعدة البيانات الحالية ، أو استعراض وتحديد أي قاعدة بيانات خارجية ( accdb أو accde ) لإنشاء المشغل الخاص بها في مجلدها مباشرة تجهيز الجهاز فوراً في لحظة واحدة بحيث يقوم المشغل بضبط كافة إعدادات الأمان في ريجستري العميل وفتح البرنامج مباشرة في ثوانٍ معدودة 🧹 الصيانة الذكية وضبط المصنع :- إزالة التوثيق لمجلد المشروع من خلال زر مخصص لإلغاء توثيق المجلد ومسح سجلات الملف من مسارات الريجستري لأوفيس بالكامل استعادة ضبط المصنع والإعدادات الإفتراضية ستجعل إمكانية استرجاع إعدادات الأمان الافتراضية الأصلية لبرنامج آكسيس أمر في غاية السهولة وفي لحظة واحدة 📥 كيفية الاستخدام :- استيراد النموذج Frm_SecuritySettings والوحدة النمطية Mod_Trust إلى مشروعك فتح النموذج لضبط الخيارات التي تناسبك ( الخيارات تقرأ حالتها اللحظية مباشرة وتتلون ديناميكياً حسب الحالة بالأبيض أو الأصفر ) الضغط على حفظ وتطبيق لتطبيقها فوراً على جهازك ، أو الضغط على تصدير المشغل لتوليد ملف التشغيل الجاهز للعملاء 📸 صورة لواجهة الأداة :- ملف الأداة مفتوح المصدر ، للتحميل :- Trust Center.zip
    6 points
  2. اعرض الملف ⭐ هدية ~ الحل المتكامل لتحزيم وتوزيع تطبيقات أكسس كملف تنفيذي احترافي 2026 ⭐ أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كثيراً ما يقضي مطور ومبرمج قواعد بيانات أكسس أياماً وليالي في تصميم وبرمجة نظامه بأعلى درجات الإتقان والإحترافية ، ولكن عند وصول لحظة تسليم البرنامج للعميل تبدأ التحديات الحقيقية 😵 ، والتي ألخصها بما يلي :- كيف أمنع العميل من العبث بالتصميم وكود الـ VBA ؟ كيف أتخلص من رسائل الأمان المزعجة ؟ كيف أقوم بتثبيت الخطوط الخاصة وتجهيز المرفقات وملفات الـ Back-End بسلاسة ؟ كيف أُقدّم البرنامج للعميل في صورة ملف تثبيت احترافي ( Setup.exe ) وبأيقونة مخصصة ؟ من هذا المنطلق ، وخدمة لإخواني المطورين وصانعي تطبيقات الآكسيس ، يسعدني أن أضع بين أيديكم اليوم أداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder وهي أداة متطورة تم بناؤها من داخل أكسس نفسه باستخدام نسخة محمولة من Inno ، لتتولى أتمتة عملية التحزيم والتوزيع بالكامل بنقرة زر واحدة ودون أي تعقيد . 🛠️ الميزات والوظائف الرئيسية للأداة :- 1️⃣ التحويل التلقائي الذكي إلى ( ACCDE / MDE ) ، وهنا يلعب الدور إصدار آكسيس الذي تم تشغيل الأداة من خلاله . تحويل فوري ومحمي لقاعدة البيانات بنقرة واحدة لحماية أكواد الـ VBA . فحص وتشخيص ذكي للأخطاء . الأداة لا تكتفي بإظهار رسائل خطأ غامضة ؛ بل تفحص تلقائياً ( صيغة الملف ، القفل والتزامن ، المراجع البرمجية المفقودة بالاسم ، وأخطاء التجميع ... إلخ ) لتخبرك بالسبب الدقيق وحله فوراً . 2️⃣ الأمان وحماية البرنامج :- تعطيل المفتاح الخاصة وخصوصاً مفتاح الـ Shift . حيث تقوم بقفل تشغيل البرنامج بزر Shift وأي مفاتيح خاصة ، لمنع الدخول للنوافذ الخلفية أو نافذة التنقل أو محرر الأكواد . إضافة المواقع الموثوقة ( Trusted Locations ) ؛ فتقوم بتسجيل مسار البرنامج تلقائياً في سجل الويندوز (داخل الـ Registry ) لتعمل الماكرو وأكواد VBA بدون أي تحذيرات أمان. حماية التثبيت بكلمة مرور . وهذه تتيح إمكانية تشفير ملف التثبيت وحمايته بكلمة سر تمنع غير المصرح لهم من تنصيبه . 3️⃣ المعمارية المزدوجة وفصل البيانات ( Front-End و Back-End ) :- دعم كامل للأنظمة المقسمة ؛ بحيث يمكنك تحديد مسار تثبيت مختلف ومستقل لملف البيانات (Back-End) عن ملف الواجهة . دعم تضمين مجلدات وملفات إضافية غير محدودة (مستندات ، صور ، أدلة تشغيل ... إلخ ) . 4️⃣ دعم الأجهزة غير المزودة بأوفيس ( Access Runtime ) :- إمكانية تضمين حزمة التثبيت الخاصة بـ Microsoft Access Runtime ليعمل برنامجك على أي جهاز عميل لا يملك نسخة أوفيس مثبته داخل الويندوز . 5️⃣ التثبيت التلقائي للخطوط واتفاقية الاستخدام :- خيار لتثبيت خطوط البرنامج الخاصة في نظام ويندوز العميل تلقائياً . إظهار شاشة اتفاقية الترخيص ( License Agreement ) قبل بدء التثبيت . 6️⃣ واجهة تثبيت تفاعلية ومخصصة :- تمكنك الأداة من إنشاء إختصارات سطح المكتب وقائمة ابدأ بأيقونة التطبيق المخصصة . دعم واجهات التثبيت باللغة ( العربية / الإنجليزية / أو كلاهما ) ليختار العميل لغته المفضلة لواجهة التثبيت . 7️⃣ نافذة تيرمنال عصرية وملونة ( Live Log Terminal ) :- شاشة سجل تفاعلية حديثة ، تعرض خطوات البناء لحظة بلحظة بنظام ألوان متناسق وواضح ومخصص لسهولة المتابعة . 📥 كيفية الاستخدام :- اختر مشروعك أو أنشئ مشروعاً جديداً . حدد ملف قاعدة البيانات الرئيسي ( وملف قاعدة البيانات الخلفية - الجداول - إن وجد ) والأيقونة . قم بتفعيل الخيارات التي تناسبك من لوحة التحكم ، مثل ( Shift , Trusted Location , Fonts , Runtime ... إلخ ) . اضغط على زر إنشاء حزمة التثبيت ، وسيتكفل البرنامج بالباقي لتجد ملف الـ EXE جاهزاً للتسليم 😁 . 📸 صورة لواجهة الأداة وتبويباتها :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. أتمنى أن تكون هذه الأداة عوناً وإضافة نافعة لجميع المطورين والمبرمجين في مشاريعهم القادمة ونسألكم خالص الدعاء بظهر الغيب .. صاحب الملف Foksh تمت الاضافه 09/05/26 الاقسام قسم الأكسيس  
    5 points
  3. اعرض الملف أداة البحث السريع {سلسلة الأدوات المساعدة المخصصة} أي شخص يتعامل مع برامج وتطبيقات قواعد البيانات لايمكن أن يستغني عن إستخدام أي وسيلة من وسائل البحث عن البيانات فمثلاً عندما تريد تصفية نموذج بيانات الموظفين لإستعراض بيانات موظف واحد فقط , أو كمثال آخر إذا كنت تعمل على شاشة المبيعات وتريد إدخال رقم الصنف فتقوم بفتح قائمة الأصناف والبحث عن الصنف المطلوب لإرجاع كود الصنف والإحتفاظ به في جدول المبيعات , والكثير من الأمثلة الأخرى المشكلة هنا هو أنك ستكون مضطر لإنشاء نموذج بحث لكل مكان ستحتاج فيه إلى البحث عن البيانات أو على الأقل نموذج واحد لكل نوع من أنواع البيانات ولحل هذه المشكلة أقدم لكم اليوم أداة جميلة وبسيطة تمنحكم إمكانية الحصول على أي عدد قد تحتاجونه من قوائم البحث وبإستخدام نموذج واحد فقط (بالأصخ نموذج رئيسي وآخر فرعي) وقد أسميت الأداة بإسم أداة البحث السريع لأنها بالفعل تقدم أسرع تجربة بحث قد تجدها سواء كنت تستخدم الماوس أو لوحة المفاتيح وكما هو موضح بالصورة المتحركة فلو رأينا سرعة الوصول لنتيجة البحث بإستخدام الماوس وقارناها مع مربع التحرير والسرد أو مربع القائمة سيكون الفارق كبير وكما تعودنا سأرفق لكم ملفي القالب والنسخة التوضيحية والتي ستجدون بداخلها أمثلة عملية لإستخدام الأداة مع ملاحظات وتعليمات أرجو قرائتها بعناية أرجو أن تجدوا في هذه الأداة الفائدة والعون في تسهيل أعمالكم تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/08/26 الاقسام قسم الأكسيس  
    4 points
  4. وعليكم السلام ورحمة الله وبركاته تم العاء AC3 وربط المعادلة بالخلية AC1 للقائمتين مع اضافة كود تلقائي لمسح احد القائمتين عند اختيار الاخرى __المقياس المتدرج 3456 الصفوف العليا2026 - نسخة.xlsb
    4 points
  5. Version 1.3

    106 تنزيل

    أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كثيراً ما يقضي مطور ومبرمج قواعد بيانات أكسس أياماً وليالي في تصميم وبرمجة نظامه بأعلى درجات الإتقان والإحترافية ، ولكن عند وصول لحظة تسليم البرنامج للعميل تبدأ التحديات الحقيقية 😵 ، والتي ألخصها بما يلي :- كيف أمنع العميل من العبث بالتصميم وكود الـ VBA ؟ كيف أتخلص من رسائل الأمان المزعجة ؟ كيف أقوم بتثبيت الخطوط الخاصة وتجهيز المرفقات وملفات الـ Back-End بسلاسة ؟ كيف أُقدّم البرنامج للعميل في صورة ملف تثبيت احترافي ( Setup.exe ) وبأيقونة مخصصة ؟ من هذا المنطلق ، وخدمة لإخواني المطورين وصانعي تطبيقات الآكسيس ، يسعدني أن أضع بين أيديكم اليوم أداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder وهي أداة متطورة تم بناؤها من داخل أكسس نفسه باستخدام نسخة محمولة من Inno ، لتتولى أتمتة عملية التحزيم والتوزيع بالكامل بنقرة زر واحدة ودون أي تعقيد . 🛠️ الميزات والوظائف الرئيسية للأداة :- 1️⃣ التحويل التلقائي الذكي إلى ( ACCDE / MDE ) ، وهنا يلعب الدور إصدار آكسيس الذي تم تشغيل الأداة من خلاله . تحويل فوري ومحمي لقاعدة البيانات بنقرة واحدة لحماية أكواد الـ VBA . فحص وتشخيص ذكي للأخطاء . الأداة لا تكتفي بإظهار رسائل خطأ غامضة ؛ بل تفحص تلقائياً ( صيغة الملف ، القفل والتزامن ، المراجع البرمجية المفقودة بالاسم ، وأخطاء التجميع ... إلخ ) لتخبرك بالسبب الدقيق وحله فوراً . 2️⃣ الأمان وحماية البرنامج :- تعطيل المفتاح الخاصة وخصوصاً مفتاح الـ Shift . حيث تقوم بقفل تشغيل البرنامج بزر Shift وأي مفاتيح خاصة ، لمنع الدخول للنوافذ الخلفية أو نافذة التنقل أو محرر الأكواد . إضافة المواقع الموثوقة ( Trusted Locations ) ؛ فتقوم بتسجيل مسار البرنامج تلقائياً في سجل الويندوز (داخل الـ Registry ) لتعمل الماكرو وأكواد VBA بدون أي تحذيرات أمان. حماية التثبيت بكلمة مرور . وهذه تتيح إمكانية تشفير ملف التثبيت وحمايته بكلمة سر تمنع غير المصرح لهم من تنصيبه . 3️⃣ المعمارية المزدوجة وفصل البيانات ( Front-End و Back-End ) :- دعم كامل للأنظمة المقسمة ؛ بحيث يمكنك تحديد مسار تثبيت مختلف ومستقل لملف البيانات (Back-End) عن ملف الواجهة . دعم تضمين مجلدات وملفات إضافية غير محدودة (مستندات ، صور ، أدلة تشغيل ... إلخ ) . 4️⃣ دعم الأجهزة غير المزودة بأوفيس ( Access Runtime ) :- إمكانية تضمين حزمة التثبيت الخاصة بـ Microsoft Access Runtime ليعمل برنامجك على أي جهاز عميل لا يملك نسخة أوفيس مثبته داخل الويندوز . 5️⃣ التثبيت التلقائي للخطوط واتفاقية الاستخدام :- خيار لتثبيت خطوط البرنامج الخاصة في نظام ويندوز العميل تلقائياً . إظهار شاشة اتفاقية الترخيص ( License Agreement ) قبل بدء التثبيت . 6️⃣ واجهة تثبيت تفاعلية ومخصصة :- تمكنك الأداة من إنشاء إختصارات سطح المكتب وقائمة ابدأ بأيقونة التطبيق المخصصة . دعم واجهات التثبيت باللغة ( العربية / الإنجليزية / أو كلاهما ) ليختار العميل لغته المفضلة لواجهة التثبيت . 7️⃣ نافذة تيرمنال عصرية وملونة ( Live Log Terminal ) :- شاشة سجل تفاعلية حديثة ، تعرض خطوات البناء لحظة بلحظة بنظام ألوان متناسق وواضح ومخصص لسهولة المتابعة . 📥 كيفية الاستخدام :- اختر مشروعك أو أنشئ مشروعاً جديداً . حدد ملف قاعدة البيانات الرئيسي ( وملف قاعدة البيانات الخلفية - الجداول - إن وجد ) والأيقونة . قم بتفعيل الخيارات التي تناسبك من لوحة التحكم ، مثل ( Shift , Trusted Location , Fonts , Runtime ... إلخ ) . اضغط على زر إنشاء حزمة التثبيت ، وسيتكفل البرنامج بالباقي لتجد ملف الـ EXE جاهزاً للتسليم 😁 . 📸 صورة لواجهة الأداة وتبويباتها :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. أتمنى أن تكون هذه الأداة عوناً وإضافة نافعة لجميع المطورين والمبرمجين في مشاريعهم القادمة ونسألكم خالص الدعاء بظهر الغيب ..
    3 points
  6. معادلة جلب العنوان: =IFERROR(INDEX($K$4:$K$1000,MATCH($B4&$C4&$D4,$H$4:$H$1000&$I$4:$I$1000&$J$4:$J$1000,0)),"") معادلة جلب المهنة: =IFERROR(INDEX($L$4:$L$1000,MATCH($B4&$C4&$D4,$H$4:$H$1000&$I$4:$I$1000&$J$4:$J$1000,0)),"") في إصدارات Excel القديمة يجب إدخال المعادلة كمصفوفة بالضغط على: Ctrl + Shift + Enter أما في Excel 365 وExcel 2021 فيكفي الضغط على Enter فقط، ولا حاجة لاستخدام Ctrl + Shift + Enter.
    3 points
  7. وعليكم السلام ورحمة الله وبركاته .. إليك معادلات شاملة للعيارات من 18 - 24 للحركات مبيعات ومشتريات :- عدد حركات المبيعات للعيار 18 :- ="عدد حركات المبيعات عيار 18 = "&COUNTIFS(C:C,"مبيعات",F:F,18) عدد حركات المشتريات للعيار 18 :- ="عدد حركات المشتريات عيار 18 = "&COUNTIFS(C:C,"مشتريات",F:F,18) عدد حركات المبيعات للعيار 21 :- ="عدد حركات المبيعات عيار 21 = "&COUNTIFS(C:C,"مبيعات",F:F,21) عدد حركات المشتريات للعيار 21 :- ="عدد حركات المشتريات عيار 21 = "&COUNTIFS(C:C,"مشتريات",F:F,21) عدد حركات المبيعات للعيار 24 :- ="عدد حركات المبيعات عيار 24 = "&COUNTIFS(C:C,"مبيعات",F:F,24) عدد حركات المشتريات للعيار 24 :- ="عدد حركات المشتريات عيار 24 = "&COUNTIFS(C:C,"مشتريات",F:F,24) ولو أردت التوسع بتحديد الجديد والمستعمل كمثال :- ="عدد حركات المبيعات الجديدة عيار 21 = "&COUNTIFS(C:C,"مبيعات",E:E,"جديد",F:F,21) ="عدد حركات المبيعات الجديدة عيار 24 = "&COUNTIFS(C:C,"مبيعات",E:E,"جديد",F:F,24) ="عدد حركات المشتريات الجديدة عيار 21 = "&COUNTIFS(C:C,"مشتريات",E:E,"جديد",F:F,21) ="عدد حركات المشتريات الجديدة عيار 24 = "&COUNTIFS(C:C,"مشتريات",E:E,"جديد",F:F,24) ويمكن استعمال معادلة عامة تقرأ تلقائياً الخلايا بقيمها النصية ، كمثال لصف وصنف واحد :- ="عدد حركات "&E1&" "&E2&" عيار "&F3&" = "&COUNTIFS(C:C,E1,E:E,E2,F:F,E3) فتكون النتيجة للمثال السابق = عدد حركات الحالة جديد عيار 21 = 0 وهذا حالياً ما استطعت تنفيذه من طلبك .. الملف للتوضيح :- Book1.xlsx
    3 points
  8. بالرغم من تجربتى للكود الاسماء تتغير ولا مشكلة تاكد من ان خيارات الحساب تلقائي وليس يدوي طباعة.xlsb
    3 points
  9. جرب هذا الملف فعل محتوى الماكرو ثم 1 ادخل على الاعدادات وسجل : نسبة كل من السائق والمندوب أرقام السيارات والعملاء والمندوبين وسائقين 2 ثم ادخل على شاشة الإدخال وسجل بيانات الرحلة ثم اضغط ترحيل بيانات ستظهر النتيجة في صفحة قاعدة البيانات وسيظهر ملخص حركة النقل بالكامل في صفحة لوحة القيادة شركة نقل.xlsm
    3 points
  10. اعرض الملف أداة إنشاء الخيارات المخصصة بإستخدام القوائم المختصرة {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم طريقة أخرى من طرق إنشاء قوائم الخيارات المخصصة ولكن هذه المرة بإستخدام القوائم المختصرة السياقية كل ما يتطلب معرفته للعمل بهذه الأداة ستجدونه موضحا ضمن المرفقات وكما تعودنا فمرفق لكم ملف أكسس بإسم النسخة التوضيحية تحتوي على أمثلة عملية توضح طريقة عمل الأداة وطرق الإستفادة منها بالإضافة إلى نسخة بإسم القالب يحتوي الكائنات المطلوب إستيرادها تم في هذه الأداة الأخذ بالإقتراحات التي قدمها الأخ @Foksh والأخ @Moosak في موضوع الأداة السابقة هنا فأصبح نموذج ببناء صيغة أمر الإستدعاء يقوم بإضافة عبارة Select Case ضمن الصيغة وتم إستخدام دالة بدل الإجراء ليتم إرجاع قيمة الخيار مباشرة لأني رأيت بصراحة أن هذين الإقتراحين هما الأنسب لهذه الأداة أرجو أن تجدوا في هذه الأداة الفائدة العلمية والعملية وفي إنتظار أي ملاحظات تقدمونها تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/19/26 الاقسام قسم الأكسيس  
    2 points
  11. من جمال الفكرة قمت بتنفيذها مباشرة الآن أصبح بالإمكان تصدير الكائنات المطلوبة فقط لعمل الأداة مع التحقق لعدم تصديرها أكثر من مرة
    2 points
  12. كلامك صحيح وفي محله ولكني أريد توضيح نقطة هنا من باب العلم بالشئ لا أكثر هذا ليس شرط في كل الحالات ولكنه سيكون كإجراء وقائي حتى نتأكد من أن لا يتم تنفيذ إجراء بغير قصد فمثلاً في المثال الأول في النسخة التوضيحية نلاحظ عدم حصول أي شيئ عند عدم تحديد أي عنصر في القائمة ولو عدنا للكود خلف زر الأمر سنجد عدم وجود عبارة Case Else Dim intResult As Integer intResult = GetOptions("نموذج إدخال البيانات" & _ ";نموذج تعديل البيانات" & _ ";نموذج إستعراض البيانات" & _ ";نموذج تحديد معايير تصفية التقارير") Select Case intResult Case Is = 1 DoCmd.OpenForm "frm01" Case Is = 2 DoCmd.OpenForm "frm02" Case Is = 3 DoCmd.OpenForm "frm03" Case Is = 4 DoCmd.OpenForm "frm04" End Select ولكن في المثال الثاني سنجد أنه سيتم تنفيذ إجراء لم يكن في الحسبان في هذه الحالة سيتطلب منا إضافة عبارة Case Else وعلى رأي المثل الوقاية خير من العلاج إن شاء الله سأقوم يإضافة هذا الأمر ضمن بناء صيغة الأمر بالإضافة إلى معالجة الملاحظة المقدمة من الأخ @Moosak وذلك في النسخة الجديدة التي أقوم فيها بإضافة الهدية القيمة المقدمة منك
    2 points
  13. كتبت لك الحل في المشاركة السابقة واكرر لم توضح الرقم الاصل او الاساسي هل هو في الخلية O10 او K9 لان الحل يختلف والنتيجة تختلف بفرضية ان الرقم الاصل الاولي هو في K9 اليك الملف AS.xlsx
    2 points
  14. وعليكم السلام ورحمة الله وبركاته اولا لم توضح الرقم الاساسي هل هو في الخلية O10 او K9 اذا كان القيمة في الخلية O10 هي الاساس غيّر معادلة الخلية H10 لتكون: =K10 اما إذا كان الأساس هو نسبة الـ 9% من المجموع الكلي (95975.95) غيّر قيمة الخلية O10 لتكون معادلة بدلاً من رقم ثابت =O9*9% والسبب ان نسبة 9% للرقم 95975.95 ليست 8637.8400 وانما 8637.8355 والفرق بينهما 0.0045 ضرب 12=0.05 (5 سنتيم)
    2 points
  15. أخواني وأساتذتي ومعلمينا ( دون استثناء ) كثير من المطورين ومصممي قواعد البيانات والمشاريع الخاصة بهم ، عندما يقوم بحفظ مشروعه بصيغة Accde ؛ بتفاجئ بأن جهاز العميل لم يقم بتشغيل قاعدة البيانات رغم خلوها من جميع الأخطاء البرمجية ، أو عدم التوافقية في الأكواد بين الناتين 32 و 64 . ولذا يلجأ لحفظ قاعدة البيانات بإصدار مطابق لإصدار أوفيس العميل المثبت في جهازه . أو إجبار العميل على تثبيت إصدارات حديثة أو بنواة معينة ... إلخ . اليوم كانت لي تجربة لتقوم بمهمة تشغيل قاعدة بياناتك على أي إصدار وعلى أي نواة وعلى أي ويندوز دون الحاجة لأي تدخل من مطور البرنامج . تجربتي اليوم ستقوم على مشروع مفتوح المصدر تم طرحه بعنوان الأداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder كتجربة ليس إلا في هذا الموضوع هنا . على العموم وللتوضيح سأقوم بإرفاق ملف قاعدة البيانات ، والتجربة ممن يرغب بمشاركتنا رأيه ما يلي :- ذكر إصدار ونواة آكسيس الذي قام بالتجربة عليه . ذكر اصدار الويندوز ونواتها أيضاً . ممن يملك إصدارين من آكسيس على جهازه ( مثل أخوكم 😅 ، لدي الإصدارين 2019 - 64 ، والإصدار 2010 - 32 ) ، تجربة الفكرة على الاصدارين ومشاركتنا رأيه بنجاح أو فشل التجربة وهي عنوان الموضوع . وهذه صورة من جهازي الشخصي الذي أملك إصدارين مثبتين عليه . المشاركة مفتوحة لمن يرغب وغير مقتصرة على أحد 😇 . وبناء على النتائج والتفاعل ، سأقوم بفتح موضوع مخصص وطرح الأداة والشرح عنها بكامل تفاصيلها وآلية العمل عليها . وتشجيعاً لمن رغب بالتجربة .. جرب في مربع نص المسار اكتب إشارة # يليها مباشرة officena.net ، وهنا السر العجيب . لاحظ الصورة للتوضيح :- ♻ حيث سيتم استخراج قاعدة البيانات مفتوحة المصدر Accdb وليس Accde ♻ يعني يا صديقي يا مطور البرنامج ، لو في يوم من الأيام ولو بعد 10 سنين ؛ جاء العميل راكضاً ويريد منك إضافات وتعديلات جديدة . وتفاجأت بأن النسخة الأصلية ضاعت منك أو لم تعد موجودة في جهازك ولأي سبب من الأسباب .. فقط اكتب كلمة المرور التي حددتها في الأداة التي سيتم طرحها منفردة في موضعها الخاص , وستحصل على قاعدة بياناتك الأصلية مفتوحة المصدر 😁 . حجم الملف المرفق أكبر من الحد المسموح به ، لذا سأرفعه برابط مباشر على جوجل درايف من هنا . طبعاً حجم قاعدة البيانات هو 10 ميجا ..
    2 points
  16. أعتذر بشدة فعلاً هذا الخطأ كان في القالب والحقيقة لاأعرف كيف حصل ففي الغالب أقوم بتجهيز القالب بناءً على أخر نسخة من النسخة التوضيحية قبل رفعها للمنتدى الغريب أنه لم يذكر أحد هذه المشكلة قبل الأخ @أحمد العيسى تم تصحيح الخطأ وإعادة رفع الأداة
    2 points
  17. بسيطة أخي الكريم .. إذا أردت الإعتماد على المعادلة السابقة في الخلية لكل اسم ، فيمكن استخدام المعادلة التالية في الخلية N9 كمثال ، ونفس الأمر تقوم بسحبها لأسفل :- =TRIM(MID(TRIM(Q9), LEN(O9) + 1, LEN(Q9))) أما إذا كنت تريد معادلة مستقلة ولا تعتمد على المعادلة الأولى لاستخلاص اللقب ( كعدم وجودها أساساً ) ، استخدم المعادلة التالية كمثال :- =TRIM(MID(TRIM(Q9), FIND("^", SUBSTITUTE(TRIM(Q9)&" ", " ", "^", IF(OR(LEFT(TRIM(Q9), 3)="بن ", LEFT(TRIM(Q9), 4)="أبو ", LEFT(TRIM(Q9), 4)="ابو "), 2, 1))) + 1, LEN(Q9))) ملفك بالمحاولتين :- فصل.xlsx
    2 points
  18. يمكنك استخدام الدالة Application.OnTime لتشغيل إجراء آخر بعد دقيقة من استدعاء الكود: Sub StartTimer() 'تشغيل الإجراء SaveAndClose بعد دقيقة Application.OnTime Now + TimeValue("00:01:00"), "SaveAndClose" End Sub Sub SaveAndClose() ThisWorkbook.Save 'حفظ الملف Application.Quit 'إغلاق Excel End Sub طريقة العمل عند تشغيل StartTimer يبدأ المؤقت. ينتظر Excel دقيقة واحدة. يتم استدعاء الإجراء SaveAndClose. يتم حفظ المصنف ثم إغلاق برنامج Excel. إذا كنت تريد إغلاق المصنف فقط دون إغلاق برنامج Excel بالكامل: Sub StartTimer() Application.OnTime Now + TimeValue("00:01:00"), "SaveAndCloseWorkbook" End Sub Sub SaveAndCloseWorkbook() ThisWorkbook.Save ThisWorkbook.Close SaveChanges:=True End Sub وإذا أردت تغيير المدة إلى 5 دقائق مثلاً: Application.OnTime Now + TimeValue("00:05:00"), "SaveAndClose" بهذه الطريقة يتم التنفيذ في الخلفية بعد المدة المحددة دون استخدام حلقات انتظار (Loop) أو Application.Wait.
    2 points
  19. اعرض الملف أداة إنشاء مجموعات الخيارات المخصصة {سلسلة الأدوات المساعدة المخصصة} من منا لم يواجه عند تصميم تطبيق ما لحالات تتوقف على إستجابة المستخدم لتوجيه سير العمل بإتجاه مختلف عن الآخر وأغلب هذه الحالات نستخدم فيها مربع الحوار MsgBox فنطلب منه مثلاً الرد بنعم أو لا أو موافق أو إلغاء الأمر .... إلخ حسناً ماذا لو واجهت حالات تتطلب أكثر من ثلاثة خيارات مثلاً وأريد أن تكون هذه الخيارات مكتوبة بشكل صريح فسيكون من الصعب إستخدام MsgBox فنحن سنكون محكومين بمسميات الأزرار الإفتراضية والتي قد لا تعبر عن المطلوب بطريقة صحيحة صحيح أنه يمكننا إستخدام أداة مربع حوار المهام TaskDialog لنحصل على النتيجة المطلوبة وأحسن ولكن قد يرى البعض أنه ليس بحاجة لإستخدامها لأي سبب من الأسباب وسيفضل أن يقوم بإنشاء نموذج مخصص لهذه الحالة فقط ... حسناً وماذا إذا إحتاج إلى قائمة خيارات أخرى؟ عندها سيضطر إلى إنشاء نموذج ثاني وثالث ... وهكذا لكل ما سبق أقدم لكم اليوم أداة أعتبرها من الأدوات المثيرة للإعجاب وذلك لأنها رغم بساطتها إلا أنها تقدم خدمة لاغنى عنها بل وتوفر علينا الكثير من الوقت والجهد ولبساطتها لم أحتاج إلى كتابة أي تعليمات لشرح طريقة عملها فكل ماهو مطلوب هو تعبئة بعض مربعات النص فقط ويمكن مشاهدة النتيجة مباشرة وعند الإنتهاء يتم النقر على زر النسخ ولصق الكود في أي حدث تريد ... هذا كل شيء ماعليك إلى أن تكمل التعليمات البرمجية المترتبة على نتيجة التحديد وكما تعودنا ستجدون في المرفقات ملفي أكسس الأول بإسم القالب ويحتوي على نموذجين ووحدة نمطية والحقيقة أنك لست بحاجة إلا إلى نموذج واحد إلى جانب الوحدة النمطية في النسخ النهائية (وهما ماستجدونهما في النسخة التوضيحية) أما نموذج منشئ صيغة أمر الإستدعاء فلن تحتاجه إلا خلال التطوير وهنا يجب علي أن أتقدم بألشكر للأخ العزيز @Foksh والذي دائماً ما يتحفنا بهدايا تقدم في ظاهرها وظائف رئيسية وفي باطنها تقدم وظائف أخرى فرعية أو مخفية لاتقل في أهميتها عن الوظيفة الأساسية التي تقدمها الأداة ومن ضمن هذه الهدايا المخفية كانت وظيفة تحويل أي تطبيق إلى وظيفة إضافية Add-in لذا فقد قمت بإستخدام الكود الخاص به لمنح إمكانية حفظ الأداة كوظيفة إضافية ليمكن للجميع الإستفادة من الإداة في جميع تطبيقات أكسس دون الحاجة إلى إستيراد نموذج منشئ صيغة أمر الإستدعاء ملف أكسس الآخر فهو بإسم (النسخة التوضيحية) وستجدون فيه بعض الأمثلة لطريقة الإستفادة من الأداة (أحد الأمثلة أعتبره هدية بحد ذاته) ملاحظة مهمة : أرجو قراءة التعليقات المرفقة بالكود الخاص بكل زر أمر لكل مثال فستجدون فيها توضيح لكل إجراء في الأخير أرجو أن تنال الأداة إعجابكم وأن تجدو فيها الفائدة في أعمالكم وإذا كان لدى أي أحد أي إستفسار أو ملاحظة فلا يبخل علينا بها تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/01/26 الاقسام قسم الأكسيس  
    2 points
  20. السلام عليكم اساتذي الاعزاء .. ارجو ابداء ملاحظاتكم على تصميم واجهات برنامج ادارة معارض السيارات ..ليتسنى لي الاستفادة من ارائكم وتوجيهاتكم مع التقدير
    2 points
  21. 2 points
  22. وعليكم السلام ورحمة الله وبركاته .. رغم عدم قناعتي بهيكلة وتصميم الملف ، اعتقد أن ذهابك إلى جدول منفصل لعمليات البيع وجدول آخر منفصل لعميات الشراء ، أو جدول الحركات الموحد العام وهو جدول يعرض تفاصيل لجميع حركات المخزن ( بيع ، شراء ، مرتجع ، تحويل من إلى ... إلخ ) ، ولكن بحقول موحدة ( TransID , DocType , DocID , Item , Qty , Price , Discount ) ؛ حيث DocType كمثال ، سيحدد هل الحركة هي حركة بيع أم شراء ، وبذلك لا تحتاج لتكرار حقول sale_qty و buy_qty .... ولكن !! في فكرة التنفيذ على الزر ، استعمل الحدث التالي :- Private Sub Command160_Click() On Error GoTo ErrHandler If Me.NewRecord Or IsNull(Me.sale_id) Then MsgBox "يرجى تحديد فاتورة بيع أولاً", vbExclamation + vbMsgBoxRight, "" Exit Sub End If If Me.Dirty Then Me.Dirty = False Dim db As DAO.Database Dim rsBuy As DAO.Recordset Dim rsSaleDet As DAO.Recordset Dim rsBuyDet As DAO.Recordset Dim newBuyID As Long Set db = CurrentDb Set rsBuy = db.OpenRecordset("buy", dbOpenDynaset) rsBuy.AddNew rsBuy!reg_date = Me.reg_date rsBuy!code = Me.code rsBuy!explain = Me.explain rsBuy!discount = Me.discount rsBuy!note = Me.note rsBuy!saving = Me.saving newBuyID = rsBuy!buy_id rsBuy.Update rsBuy.Close Set rsBuy = Nothing Set rsSaleDet = db.OpenRecordset("SELECT * FROM details WHERE sale_id = " & Me.sale_id, dbOpenSnapshot) Set rsBuyDet = db.OpenRecordset("details", dbOpenDynaset) Do While Not rsSaleDet.EOF rsBuyDet.AddNew rsBuyDet!buy_id = newBuyID rsBuyDet!item = rsSaleDet!item rsBuyDet!buy_qty = rsSaleDet!sale_qty rsBuyDet!buy_price = rsSaleDet!sale_price rsBuyDet!buy_discount_percent = rsSaleDet!sale_discount_percent rsBuyDet!note = rsSaleDet!note rsBuyDet!m = rsSaleDet!m rsBuyDet!check = rsSaleDet!check rsBuyDet!serial = rsSaleDet!serial rsBuyDet.Update rsSaleDet.MoveNext Loop rsSaleDet.Close: Set rsSaleDet = Nothing rsBuyDet.Close: Set rsBuyDet = Nothing DoCmd.OpenForm "buy", acNormal, , "buy_id = " & newBuyID Exit Sub ErrHandler: MsgBox "حدث خطأ أثناء نسخ الفاتورة الحالية", vbCritical + vbMsgBoxRight, "" End Sub تفضل الملف المرفق :- yasser_10.zip
    2 points
  23. تم تعديل المرفق بحيث يتم تجميع عدد الأيام من حقل Mod2 في الإستعلام وتم إضافة دالة لتحويل عدد الأيام هذه إلى سنة - شهر - يوم تحياتي وحدة الاجازات السنوية.accdb
    2 points
  24. تغشيش مرة وحدة .. لو كنت أريد التغشيش لما تحدثنا أنا وأخي منتصر بخصوص نقطة داخل الملف الأصلي قام أخي منتصر بكشفها من أول رد 😜 خلينا نبحر في بحرنا البسيط .. ولا انت بترمي العاب نارية ( فـتّـيشة ) لمافجأة من مفاجآتك 😉 الملف مشتق من أحد المشاريع ، وهناك نقطة ذكرها أخي منتصر أيضاً في السر لتصميم الجداول بوضعها الحالي .. وأخبرته أنها فعلاً جزء من مشروع ولم أرفق أكثر من حاجتي دون إجراء تغيير بنسة الجداول كاملةً . أشد على يدك في هذه 100% وها نحن ننتظر مساهمات بأفكار أخرى جميلة كأصحابها
    2 points
  25. شكرا على التغشيش 😂 .. بس هذا ما كان من ضمن التحدي 😅🖐️ وكما قال العزيز @منتصر الانسي كان التركيز على حل المشكلة الأساسية .. بصراحة خطر في بالي إضافة عدة إجراءات ولكن رأيت أنه أساسا مش جميع عناصر أو مكونات الفاتورة موجودة لذلك تركت الفروع واهتميت بموضوعنا الرئيسي وشي آخر من ضمن النواقص أيضا .. أنه عند إضافة سجل جديد لا يتم الحفظ لأن الحقل [InvoiceID] يطالبك بوضع قيمة بحكم أنه مفتاح أساسي للفاتورة !! 😎 وكذلك عند تغيير القائمة الرئيسية أو الفرعية الأصل أن يتم تفريغ القائمة التالية لأن العناصر تغيرت (أنا عملتها في مشاركاتي ) .. وأفكار وإضافات كثيييييرة غيرها ولكنها مش موضوعنا اليوم .. 😅🖐️ أخي منتصر شكرا للتنبيه لهذه النقطة .. أنت مبدع ما شاء الله عليك .. أما بالنسبة لي أعتقد أنه تم حلها في الفكرة الثانية ✌ ملاحظة : تم تحديث الملفات في مشاركتي السابقة (بعد التسريبات من قاعة التصحيح 😂 )
    2 points
  26. يبدو أن بيني وبين أخي @Moosak توارد خواطر فقد كان تركيزنا على حل المشكلة موضوع التحدي وهي مشكلة إختفاء نصوص مربعات التحرير والسرد , كذلك التشابه الكبير بين فكرتي وفكرته الأولى وأقول هذا لأن حلينا يقومان على أساس مربع نص + مربع تحرير وسرد مع إختلاف بسيط في نقطة واحدة ففي البداية كانت طريقة العمل عندي أني أجعل عرض مربع التحرير والسرد بعرض السهم فقط وبقية المسافة يغطيها مربع النص ولكني لاحظت أننا سنخسر وظيفة هامة وهي وظيفة الإكمال التلقائي للنص فلو كان لدينا قائمة كبيرة فمن غير العملي أن نظل ننزل إلى أن نجد القيمة المطلوبة ولكن وظيفة الإكمال التلقائي تجعلنا نقفز إلى القيمة المطلوبة بمجرد كتابة الأحرف الأولى لذلك توصلت للفكرة التي نفذتها وهي أن أجعل عرض مربع التحرير والسرد تساوي عرض مربع النص + مسافة تساوي عرض السهم وجعلته خلف مربع النص عن طريق النقر عليه بالزر الأيمن وتحديد الموضع (Position) - إرسال إلى الخلف (Send to Back) ثم وبإستخدام الكود وبمجرد إنتقال التركيز إلى مربع النص ييم نقل التركيز آلياً إلى مربع التحرير والسرد (الذي لن يكون فارغاً بالطبع) وعند الخروج من مربع التحرير والسرد يعود مربع النص للواجهة وبهذا نكون قد حصلنا على أفضل مافي العالمين وبدون أن يشعر المستخدم العادي بأي فرق. وكما كنت قد ذكرت فهذا الحل قابل للتطوير فمثلاً يمكننا كتابة كود يقوم بمطابقة خصائص مربع النص مع مربع التحرير والسرد مثل الطول والعرض والموقع ونوع وحجم الخط .... إلخ لنحصل على تطابق تام ولا يكون هناك أي مجال لظهور خلل أثناء التنقل بين عناصر التحكم تحياتي
    2 points
  27. اختر تجاهل الملف بعد تصحيح احتساب الساعات و الدقائق. لا تنسى اختيار الرد كحل نظام_تأخير_الموظفين_2.xlsx
    2 points
  28. تفضل كلمة المرور 123 عبارة ترحيبية (1).xlsm
    2 points
  29. ولكن أليس في هذا الأمر بعض الخطورة فقد يؤدي إلى تعطيل النظام وأنا أعتبر أن هذا هو أفضل حل يقضي على المشكلة تماماً وهو حل لم أجد أن أحد قد توصل إليه قبلك ياخي العزيز إذا كنت قد إستطعت إختراق الكود المصدري للأوفيس فهذا لايعني أن الجميع قادر على ذلك فجميعنا نعلم أن أكبر عيوب الأكسس هو الأمان (وهذا لايعني أنه لا يمكن تأمينه بمستوى أمان يستحيل على الغالبية العظمى من المستخدمين تجاوزه) ولكن هذا العيب يعتبر ثمن بسيط مقابل الخدمة التي يقدمها أكسس خصوصاً لنوعين من الأشخاص - الراغبين في تعلم تصميم وبرمجة أنظمة قواعد البيانات فطريقة تصميم قاعدة بيانات في أكسس هي نفسها لجميع قواعد البيانات الأخرى بالإضافة لتعلم التفكير المنطقي والخوارزميات لتصميم النماذج والتقارير - أصحاب المشاريع الصغيرة والمتوسطة في الحصول على أنظمة آلية تساعد في تنظم أعمالهم بدون تحمل أي تكاليف ضخمة للعتاد والدعم الفني
    1 point
  30. جربت الملف المرسل وبالفعل تم تشغيل ملف الأكسس في الحالتين زلكن الفكرة هنا ليس أنه يتم تشغيل accde على النواتين بل أن العملية تعتمد على برنامج التحزيم نفسه فهو يقوم بتشفير ملف accdb وتحويله إلى accde بناء على نواة الأوفيس المنصب على الجهاز إذا فمن ناحية لم يتم التغلب على المشكلة نفسها وإنما من ناحية أخرى فقد تم الإلتفاف علي المشكلة بطريقة ذكية جداً للوصول للهدف رائع بشمهندس فادي
    1 point
  31. أضم صوتي لصوتك ماشاء الله ولا أروع تمت التجربة بعد التعديل وتمت العملية بنجاح باهر
    1 point
  32. أولاً شكراً لكم على التفاعل وعلى المقترحات التي قدمتموها وبالفعل هذه المقترحات في محلها وقد فكرت فيها شخصياً ولكن إسمحوا لي توضيح فكرتي في سبب عدم العمل بها سبب عدم إضافة هذه الأسطر كان بسبب إختلاف الصيغة بإختلاف الإجراء الذي سيتم بناءً على الخيار المحدد فمن خلال الأمثلة سنجد أنه مرة ظهر بالشكل الذي ذكرته في ردك وفي مكان آخر ظهر بهذا الشكل Call OpenCustomOptions("إختر الإدارة المطلوبة" _ , "الإدارة العامة" _ , "البحث والتطوير" _ , "الخدمات العامة" _ , "العمليات" _ , "المالية" _ , "المبيعات والتسويق" _ , "المشتريات" _ , "الموارد البشرية" _ , "تكنولوجيا المعلومات") DoCmd.OpenForm "frmEmployees", , , "EmpDepartment='" & strResult & "'" لاحظ أننا إكتفينا بأخذ القيمة النصية ووضعناها كمعيار تصفية مباشرة بدون إستخدام عبارة Select Case بالإضافة إلى ذلك في الحالات التي سيكون فيها خيارين فقط فقد يكون من الأفضل إستخدام عبارة IF بدلاً عن Select Case هذا من ناحية ومن ناحية أخرى فإن الأداة ترجع لنا قيمتين واحدة رقمية والأخرى نصية فإذا تم إضافة هذه الأسطر فهل يتم كتابتها بناء على القيم الرقمية أم النصية ؟ وكما تفضلت وذكرت في كلامك فإن تفضيلي عدم إضافة أسطر خاصة بعبارة Select Case حتى لا يظن المستخدم العادي بأنها إلزامية ويجب أن تكون بتلك الصيغة الحقيقة لا أخفيكم بأنه في البداية كان يتم إنشاء صيغة الكود لتكون بهذا الشكل Call OpenCustomOptions("حدد أحد الخيارات التالية" _ ,"الخيار الأول" _ ,"الخيار الثاني" _ ,"الخيار الثالث") 'intResult يمكن الحصول على رقم الخيار المحدد من خلال المتغير العام 'strResult ويمكن الحصول على نص الخيار المحدد من خلال المتغير العام 'يمكنك إستخدام أحدهما أو كلاهما بحيث تظهر هذه الثلاثة أسطر بعد صيغة الأمر وتراجعت عنها حتى لا يبقيها المستخدم العادي وكأنها جزء من الكود (يمكنكم الإطلاع على كود الحدث SetCode خلف النموذج frmCustomOptionsBuilder وستجدون أني قمت بتعليق الأسطر الثلاثة) بعد هذا التوضيح هل تعتقدون أن وجهة نظري كانت في محلها أم أني بالغت في الحذر ؟ فلو رأيتم أنه من الأفضل إضافة الأسطر الخاصة بعبارة Select Case فلا توجد مشكلة سأقوم بإضافتها فرأيكم سيكون هو الأفضل بالتأكيد وأنا كذلك كنت بصدد الرد ولكن بعد قرائتي لآخر سطر في ردك تراجعت عن الفكرة
    1 point
  33. نعم أخي الكريم .. يمكن تنفيذ الجزء الأكبر من هذا الحدث باستخدام استعلامات إلحاق ، وأعتقد أنه سيكون الحل الأسرع والأنظف من المرور على السجلات باستخدام Recordset .. لكن توجد نقطة مهمة جداً جداً في حالتك الحالية :- هنا لديك عمليتان منفصلتان :- إنشاء سجل جديد في جدول buy وذلك للحصول على buy_id جديد نسخ تفاصيل الفاتورة من جدول details وربطها بـ buy_id الجديد الذي تم انشاؤه لذلك يمكن تنفيذ العملية بثلاث خطوات. إولاً إنشاء سجل فاتورة جديدة ، ثم الحصول على رقم فاتورة الشراء الجديدة (buy_id) ، وأخيراً إلحاق تفاصيل فاتورة البيع إلى تفاصيل فاتورة الشراء الجديدة . ولكم من خلال الكود ستكون العملية أسهل مرة واحدة .
    1 point
  34. هذي أراها أسلم 🙂☝ موفق عزيزنا في كل مشاريعك 🌹
    1 point
  35. أتفق معك أخي موسى .. فهل الرسالة هذه واضحة المعالم ؟؟ استبدل الحدث كاملاً للزر بالحدث التالي :- Private Sub Btn_DefaultSettings_Click() On Error Resume Next If MsgBox("هل أنت متأكد من رغبتك في استعادة إعدادات الأمان الافتراضية لبرنامج آكسيس؟" & vbCrLf & vbCrLf & _ "• ملاحظة مهمة : سيترتب على ذلك حذف جميع المواقع الموثقة والمعتمدة سابقا !!", vbQuestion + vbYesNo + vbDefaultButton2 + vbMsgBoxRight + vbMsgBoxRtlReading, "") = vbYes Then DoCmd.Hourglass True Call SetControlsEnabledByTag(Me, False, "SettingApply") Me.Repaint Call SetAllowSpecialKeys(True) Call RestoreFactoryDefaultsByBat(True) Call LoadConfigValues Call SetControlsEnabledByTag(Me, True, "SettingApply") DoCmd.Hourglass False End If End Sub
    1 point
  36. 1 point
  37. وهذه مساهمتي بإستخدام أداة مربع القائمة المخصص من سلسلة الأدوات المساعدة المخصصة وهذه المساهمة أتت بفائدة حيث قمت بإضافة وظيفة جديدة لتحديد كل الخيارات والتي لم تكن موجودة في النسخة الأصلية أرجو أن تنال إستحسانكم تحياتي التحدي 14 - فلترة متعددة بإستخدام أداة القوائم المخصصة.accdb
    1 point
  38. أستاذ منتصر .. توظيف ذكي لما قمت به باستخدام DLookup .. أبدعت بهذا التوظيف ؛ فشكراً لك مبدعنا الغالي .. أيضاً رغم أنه عند اختيار أي تعديل فإن السعر لا يتحدث للصنف الذي تم اختياره ، وبالتالي لن يتعدل السعر النهائي . أيضاً عند التعديل في القسم الرئيسي ، فإن القيم في الفرعي والصنف لا تتحدث حسب القسم الرئيسي . وكذلك الأمر عند اختيار القسم الفرعي .. مهندسنا الغالي .. تغيير جري جميل من ناحية التصميم في الفكرة الأولى الجميلة التي تقدمت بها . تعاملت مع التغيير عند القسم الرئيسي بنجاح أو الفرعي .. هنيئاً لك 👍🏻 أيضاً رغم أنه عند اختيار أي تعديل فإن السعر لا يتحدث للصنف الذي تم اختياره ، وبالتالي لن يتعدل السعر النهائي . ولاحظت انه عند فتح الملف الأول يتم عرض القائمة للصنف الأول تلقائياً لإجراء التعديل . لاحظ ما قصدته :- الفكرة الثانية أيضاً جميلة .. شكراً لك عليها . أيضاً رغم أنه عند اختيار أي تعديل فإن السعر لا يتحدث للصنف الذي تم اختياره ، وبالتالي لن يتعدل السعر النهائي . السعر يجب أن يتحدث تلقائياً عند تغيير الكمية أو الصنف وليس بشكل يدوي 😁
    1 point
  39. وعليكم السلام ورحمة الله وبركاته .. بداية اعتقد ان العنوان ونص الموضوع مخالفان لشروط وسياسة المنتدة و وجب التصحيح بالتعديل . ثانياً اعتقد أيضاً أن هذا الموضوع قد يساعدك قليلاً
    1 point
  40. وعليكم السلام ورحمة الله وبركاته الكود المرفق يقوم :- بالغاء حماية الشيتات المستهدفة 123 ثم يتم اظهار الصفوف 1-2 ثم يمسح الصور السابقة بعد ادراج الصور يتم اخفاء الصفوف1-2 ثم حماية الصفحات من جديد 123 استبدل الكود السابق بهذا تم تجربة الكود على 28 صفحة في حدود 3 الى 4 ثانية Private Sub CommandButton13_Click() Dim ws As Worksheet Dim Pic As Shape Dim shp As Shape Dim rng As Range Dim fd As FileDialog Dim imgPath As String Dim i As Long Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Title = "اختر الصورة المراد إدراجها" .Filters.Clear .Filters.Add "جميع الصور", "*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tiff" .AllowMultiSelect = False If .Show = -1 Then imgPath = .SelectedItems(1) Else Exit Sub End If End With Application.ScreenUpdating = False On Error Resume Next Application.CommandBars.FindControl(ID:=549).Execute On Error GoTo 0 For Each ws In Worksheets If ws.Name <> "قائمة" And ws.Name <> "مخزن" Then On Error Resume Next ws.Unprotect Password:="123" On Error GoTo 0 ws.Rows("1:2").Hidden = False Set rng = ws.Range("A2:V2") For i = ws.Shapes.Count To 1 Step -1 Set shp = ws.Shapes(i) If shp.Type = msoPicture Or shp.Type = msoLinkedPicture Then On Error Resume Next If Not Intersect(shp.TopLeftCell, rng) Is Nothing Then shp.Delete End If On Error GoTo 0 End If Next i Set Pic = ws.Shapes.AddPicture( _ Filename:=imgPath, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, _ Left:=rng.Left, _ Top:=rng.Top, _ Width:=rng.Width, _ Height:=rng.Height) With Pic .LockAspectRatio = msoFalse .Placement = xlMoveAndSize End With ws.Rows("1:2").Hidden = True ws.Protect Password:="123" End If Next ws Application.ScreenUpdating = True MsgBox "تم إدراج الصورة بنجاح!", vbInformation, "تم بنجاح" End Sub كما يمكنك الغاء اكوادالحماية وغيرها من ملفك لانها اصبحث من صمن الكود السابق
    1 point
  41. تم التعديل الكود حاليا يقوم بحذف اي صور من النطاق a2:v2 قبل ادراج الصورة الجديدة حتى لا تتراكم الصور فوق بعضها كذلك تم تعديل اسم الصورة ومكانها على الجهاز بحيث يمكنك احتيار اي صورة وباي اسم وباي امتداد من الجهاز ويمكنك اضافة اي امتداد اخر غير مدرج بالكود .Filters.Add "جميع الصور", "*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tiff" تم استتناء ورقة3-ورقة6 من ادراج الصور ويمكنك استتناء المزيد وذلك باظافة اسم الورقة بالكود من الجزء For Each ws In Worksheets If ws.Name <> "ورقة3" And ws.Name <> "ورقة6" Then ادراج صورة (2).xlsm
    1 point
  42. السلام عليكم يوجد بعض الاختلاف بين الكودين في التفكيك الكود الأول: يمر على الخلايا خلية خلية ويضع الناتج في الشيت مباشرة باستخدام التكرار For...Next . الكود المعدل: يقوم بنفس التفكيك بواسطة رمز الفصل * ولكنه يحمل النتائج في مصفوفة بالذاكرة (dataArr) ثم ينسخها دفعة واحدة. بالنسبة للتجربة لدي الكود يستغرق اقل من ثانية اما الكود الاصلي حوالي 6 ثانية تم اظافة حساب الزمن للكود وتم تعديل الكود في الكود التلقائي وفي كل الاحوال مواصفات الجهاز وغيرها من الامور الفنية لها علاقة بالسرعة وفي حالة الزمن متساو لديك في الكودين القديم والمعدل فلك الخيار في اختيار احدهما ف 6 ثواني ليست بالوفت الطويل اليك الملف وبه التعديل شهادات1.xlsb
    1 point
  43. السلام عليكم ورحمة الله وبركاتة مرفق لكم لقد صممت برنامج مخازن يحتوى على دخول مستخدمين اجبارى كلمة المستخدم admin كلمة السر 123 اختيارى دخول بريد الكترونى رجاء كتابة البريد ضرورى دخول رقم الهاتف رجاء كتابة رقم الواتس ضرورى ويبدأ من 201 لانة سيربط نسيان كلمة المرور مستقبليا اما بخصوص نسيان كلمة السر فهى جارى العمل عليها لانها تحت التطوير وايضا عند الدخول يعطى شاشة ترحيب جميلة جدا كأنة يقوم بالدخول الى النظام وايضا عند الدخول الى النظام يدخل الى شاشة به محتويات اساسيات تحتوى على 1 - تكويدات ( مخازن وموردين واصناف وعملاء ومندوبين ) 2 - حركة الاصناف 3 - حركة المشتريات والمبيعات والمرتجعات وتسوية مخزون 4 - تقريرات 5 - صلاحيات دخول المستخدمين 6 - عمل نسخة احتياضية بمجرد ان تقوم بتحديد كلا من الخيارات يظهر تلقائى البنود الخاصة بكل خيار تم عمل حركة تحويل بين المخازن مبدئيا ويتم عمل جميع الحركات من شراء وبيع والخ ارجو ان ينال اعجابكم وشكرا لكم TransferSystem 2027.xlsm
    1 point
  44. وعليكم السلام ورحمة الله وبركاته طلبك غير مكتمل ينقصه الهدف الاساسي من المعادلة إذا هدفك أن تكون النتيجة صفر فقط عندما يكون الفرق أقل من شهر استخذم المعادلة =DATEDIF(D4;D3;"M") اما اذا اردت في حال عدم تحقق الشروط = صفر اليك المعادلة =IF(AND(YEAR(D3)>=YEAR(D4);MONTH(D3)>MONTH(D4);DAY(D3)=DAY(D4));ROUNDUP(DAYS360(D4;$D$3;0)/30;0);0) الملف المرفق به تطبيق المعادلتان وكلاهما تحقق الصفر New Microsoft Excel Worksheet.xlsx
    1 point
  45. وعليكم السلام -تفضل معادلتين لطلبك .اختر منهما ما تشاء =MIN(IF(($C$7:$C$32=$M7)*($G$7:$G$32=""),$E$7:$E$32)) =MINIFS($E$7:$E$32,$C$7:$C$32,$M7,$G$7:$G$32,"") استخراج تاريخ اقدم الفاتورة-1.xlsx
    1 point
  46. جرب هذا أخى الكريم تكاليف-الجرف.xlsm
    1 point
  47. الشكر دائما لأستاذنا الكبير زيزو وبارك الله فيك وجعله فى ميزان حسناتك ويارب دائما أستاذ سليم تبهرنا بأكوادك الرائعة الى الأمام دائما-جزاكم الله خيرا
    1 point
  48. هل تقصد هكذا فلتر مخصص.xlsx
    1 point
×
×
  • اضف...

Important Information