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

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      107

    • Posts

      4893


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

    منتصر الانسي

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


    • نقاط

      45

    • Posts

      1373


  3. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      34

    • Posts

      10133


  4. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      29

    • Posts

      11650


Popular Content

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

  1. أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. الكثير من المواضيع التي ناقشت موضوع التحكم بالقوائم المختصرة داخل التقارير أو النماذج .. وكان للكثيرين من الأساتذة والخبراء والموهوبين أفكار جميلة جداً حول كيف تصنع قائمة مختصرة عند النقر على الزر الأيمن داخل نموذج أو تقرير . ومن هنا اليوم أضع بين أيديكم أداة تقوم بهذه المهمة بشكل سحري . 1️⃣ القدرة على إنشاء قوائم مختصرة دون أن تكتب أي أمر برمجي أو حتى البحث عن الخيارات داخل آكسيس لإضافة قائمة مختصرة .... إلخ . 2️⃣ القدرة على استيراد قوائم مختصرة من قاعدة بيانات أخرى إلى قاعدة بياتك الحالية من خلال الأداة . 3️⃣ القدرة على تصدير قوائم مختصرة إلى قواعد بيانات أخرى . 4️⃣ التحكم بالترتيب للأوامر داخل القوائم بحرية وسهولة ، وإتاحة إمكانية تسمية الأوامر كما تحب . 5️⃣ إتاحة إمكانية إعادة تسمية قائمة مختصرة موجودة مسبقاً . 6️⃣ التحكم بحذف قوائم معينة لا تريدها من خلال زر واحد . 7️⃣ إتاحة الفرصة لإضافة أوامر خاصة من خارج آكسيس ، أو ماكرو . أي أنك تستطيع استدعاء دوال عامة من مشروعة داخل زر في القوائم التي تصنعها . والكثير من الميزات التي يجب عليك اكتشافها بنفسك . 📸 واجهة الأداة المتواضعة :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. ملف الأداة مفتوح المصدر ، للتحميل :- Menu Builder.zip لمعرفة وظيفة كل زر ، فقط قف على الزر وستظهر لك الوظيفة المخصصة له .
    7 points
  2. اعرض الملف 🖼️ أداة جميلة لإزالة خلفيات الصور | سلسلة هدايا الأكسس | ⭐ 🎁 السلام عليكم ورحمة الله وبركاته لكسر الروتين وعموم الفائدة 😎👌 أقدم لكم أداة جديدة بفكرة جديدة 🙂 :: أداة إزالة خلفيات الصور :: الهدف من الأداة واضح >> وهو ببساطة إزالة خلفيات الصور >> والناتج صورة بخلفية شفافة بصيغة png . ولها استخدامات كثيرة في الاحتياجات العامة أو لتشذيب الصور قبل إدراجها في برنامج الأكسس مثلا .. أو .. أو .. أو .. عدد ما شئت أنا شخصيا أحتجتها في برنامجي (صانع الشهادات) لإزالة خلفيات التواقيع 🖋️📜 ثم إضافتها للبرنامج كمرفق. الأداة فكرتها بسيطة >> الإتصال بموقع remove.bg المشهور عن طريق ال API والعودة بالناتج بدون الحاجة لفتح الموقع. مفتاح الـAPI الحالي هو خاص بي ويمكنكم استخدامه مباشرة ولكنه محدود ب 50 تحويل لليوم .. في حال رغبتك بوضع مفتاحك الخاص ( وهي خدمة مجانية بالمناسبة ) يمكن تغييره في أول صفحة الكود وقد وضحت الطريقة هناك . 🙂 الملف مفتوح المصدر :: ودعواتكم الطيبة 🙂 صاحب الملف Moosak تمت الاضافه 06/22/26 الاقسام قسم الأكسيس  
    6 points
  3. السلام عليكم يمكن عمل ذلك بقك الحماية في بداية اي كود ثم اعادة الحماية في نهاية الكود كلمة الحماية 123 يمكنك تعديلها بالكود جدول الحراسة.xlsm
    6 points
  4. وعليكم السلام ورحمة الله وبركاته اليك الحل بالمعادلات في شيت1 بالاكواد شيت2 مثال1.xlsb
    5 points
  5. السلام عليكم الجزء الاول هو المرجع لتوضيح عمل القائمة المختصرة : . في الموضوع السابق ، تحدثنا عن القائمة الثابتة ، وفي هذا الموضوع سنتكلم القائمة المؤقتة ، وعن طرق اخرى لإستعمال القائمة. وللعلم ، هناك قائمة مختصرة للنموذج واخرى للحقل ، سواء قائمة ثابته او مؤقته . القائمة الثابتة هي التي تجدها جاهزة للاستعمال ، وبدون عمل اي كود لها ، سواء في النموذج او التقرير ، مثلا : . اما القائمة المؤقته فيحتاج تناديها بالكود لكل استعمال ، ولما تغلق النموذج/التقرير ، يحتاج تحذفها ، والسبب مثل ما بتشوفون في المرفق ، نستعمل نفس القائمة ببعض الاختلافات بين النموذج/التقرير وحقوله. . التحدي الاكبر في القائمة المؤقته ليس البرمجة ، وانما معرفة الحدث الصحيح للحصول على النتيجة ، ثم تمرير النتيجة ، مثلا ، للحصول على عدد صفحات التقرير ، يجب استعمال الحدث On Page ، ومنها اخذ عدد الفحات وتمريرها الى دالة القائمة المؤقته. حاولت عمل اكبر قدر من التشكيلات ، وبأبسط طرق البرمجة ، حتى يكون تغييرها سهل للمبرمج. وفي المرفق وحدة نمطية لتصدير/استيراد كائنات قاعدة البيانات ، وحسب طلب اخي العزيز @ابوخليل ققد اضفت لها دالة لإرجاع كود القائمة المختصرة (اذا صارت الحاجة اليه). myRight_Click_Shortcut_Menu.zip
    5 points
  6. كلام AI هناك حلّان عمليان يسمحان لك باستخدام رصيد رسائلك النصية (SMS) في برنامج الأكسس دون الحاجة لاشتراكات خارجية، ويعتمدان على تحويل هاتف أندرويد إلى "بوابة إرسال" خاصة بك، تمامًا كما تريد. 💡 الفكرة الأساسية جميع الحلول المقترحة تعتمد على نفس المبدأ: استخدام هاتف أندرويد قديم أو جهاز مودم مزود بشريحة اتصال، وتثبيت تطبيق يحوله إلى خادم (Gateway) يمكن لبرنامج الأكسس على جهاز الكمبيوتر التواصل معه لإرسال الرسائل عبر شريحتك. الحلان المقترحان 1. استخدام بوابة SMS (الأفضل للمطورين والتحكم الكامل) هذا الخيار يتيح لك التحكم في عملية الإرسال من خلال الأكواد البرمجية (VBA) داخل الأكسس، ويعتبر حلاً مثالياً للمشاريع المتكاملة. التطبيق الموصى به: "Simple SMS Gateway" المتوفر على متجر جوجل بلاي. طريقة العمل: ثبّت التطبيق على هاتف أندرويد يحتوي على شريحة الاتصال التي تريد استخدام رصيدها. شغّل الخادم المحلي (Local Server) داخل التطبيق. سيعرض لك التطبيق عنوان IP محليًا لهاتفك ومنفذًا (عادةً 8080). من داخل الأكسس، يمكنك كتابة كود VBA لإرسال طلب (HTTP POST) إلى هذا العنوان (مثل http://[IP_HATIF]:8080/send-sms) مع بيانات الرسالة والرقم المستلم بصيغة JSON. ستُرسل الرسالة مباشرةً عبر شريحة هاتفك، وسيُخصم من رصيدك الشهري. مميزات هذه الطريقة: مجانية بالكامل: لا توجد رسوم شهرية أو مقابل كل رسالة، فقط تستخدم باقة رسائلك النصية. تحكم كامل: يمكنك برمجة الأكسس لإرسال رسائل مفردة أو جماعية، مع إمكانية تخصيص المحتوى لكل عميل باستخدام VBA. خصوصية عالية: لا تمر بياناتك عبر خوادم خارجية، فكل شيء يتم داخل شبكتك المحلية. 2. استخدام حل متكامل مع الأكسس (للمشاريع الكبيرة) هذا الحل مثالي إذا كنت تحتاج إلى إرسال كميات كبيرة جداً من الرسائل، حيث يوفر واجهة احترافية لإدارة قوائم الانتظار. الأدوات الموصى بها: Ozeki NG SMS Gateway. طريقة العمل: يقوم هذا البرنامج بالاتصال بقاعدة بيانات الأكسس الخاصة بك مباشرة عبر (ODBC). عندما تُدرج سجلاً جديداً في جدول مخصص، يلتقطه البرنامج ويرسله تلقائياً عبر هاتف أندرويد أو مودم متصل بالجهاز. ميزة إضافية: يمكن لهذا الحل استقبال الرسائل وحفظها تلقائياً في قاعدة بيانات الأكسس، مما يتيح لك تواصلاً ثنائيًا (Two-Way SMS). ⚠️ ملاحظات مهمة قبل البدء الحدود اليومية: تأكد من الحد الأقصى لعدد الرسائل الذي تسمح به شركة الاتصالات يوميًا لتجنب حظر رقمك. يُنصح بوضع فاصل زمني (مثلاً 35 ثانية) بين كل رسالة والأخرى لتجنب التصنيف كمرسل غير مرغوب فيه (Spam). توافق الأجهزة: تأكد من أن هاتف الأندرويد يعمل بنظام Android 8 أو أحدث، وأنه متصل بنفس شبكة الواي فاي التي يعمل عليها حاسوبك. إخلاء مسؤولية: هذه الحلول بوابات محلية، وليست خدمات تجارية معتمدة لضمان وصول الرسائل، واستخدامها يخضع لسياسات الاستخدام العادل لشركة الاتصالات الخاصة بك.
    4 points
  7. أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. سأتطرق اليوم لفكرة غريبة جداً تتلخص بأنني في فترة دراستي في عام 1997 ، كان في منهاجنا لمادة الحاسوب ، برمجية أسمها لغة أفكار ( MS-DOS ) ، وهي تقوم على مبدأ إدخال أوامر داخل البرنامج لتنفيذ رسومات . مبدأ هذه البرمجية القديمة يشابه Berkeley LOGO . حيث الفكرة تقوم على إعطاء أوامر مثل :- أمام ، خلف ، يمين ، يسار ، كرر .... إلخ وكتوضيح للفكرة في الصورة التالية :- ولأن الموضوع بفكرته غريب نوعاً ما .. سأقوم بالشرح البسيط لآلية العمل :- عند تشغيل الأداة ، وللتجربة دون قيود حفظ المشاريع داخل الجداول . انقر على الزر "اكتب أمراً هنا" ستجد أن سلحوف ( اسم الشخصية التي أخترتها لقلم الرسم ) قد ظهر مع خطوط لتحدد إحداثيات الرسم (س،ص / x,y ) في خانة كتابة الأوامر ، سأعرفك على الأوامر بشكل سريع لو كتبت الأمر "مساعدة / مساعده" (بالهاء أو التاء المربوطة ) . أو انقر على زر علامة التعجب في أقصى اليسار . بعد أن تعرفت على الأوامر والتي تتمثل بإعطاء اتجاهات وزوايا وشروط وتكرارات . جرب على سبيل المثال الأمر التالي :- سرعة 3 كرر 10 ( مربع 50 يمين 36 ) ستجد أن النتيجة للرسم تساوي الصورة التالية :- طبعاً فإنني قد قمت بدمج مجموعة من الأشكال الثابتة مثل ( مربع ، دائرة ، مثلث ، نجمة ، قوس ، مستطيل ) داخل مصفوفة في عقل الأداة . فمثلاً لرسم مربع طول ضلعه 50 فرضاً . سنحتاج لكتابة :- 1. أمام 50 2. يمين 90 3. امام 50 4. يمين 90 5. امام 50 6. يمين 90 7. امام 50 8. يمين 90 لاحظوا أنها 8 حركات لعودة القلم سلحوف لمكانه الطبيعي . بينما يمكننا تنفيذ الفكرة بشكلين آخرين مثل :- كرر 4 ( امام 50 يمين 90 ) ولذا قد دمجت هذا الأمر داخل البرنامج ليصبح باختصار مربع 50 . وكذلك الأمر لرسم دائرة بقطر 50 مثلاً ، ما عليك سوى كتابة الأمر :- دائرة 50 أو يمكنك استخدام الأمر المركب :- كرر 360 ( امام 1 يمين 1 ) وفي الحالتين سيرسم لك دائرة . والأوامر كثيرة جداً والتي يمكن أن تجعل من الأداة عبارة عن ملهم خيال وأفكار لرسم مجسمات الأشكال . ماذا يمكنك أيضاً أن تجد في واجهة الأداة ؟ 6 أزرار في أقصى اليمين تمثل ، زر فتح مشروع محفوظ ، زر مشروع جديد ، زر حفظ المشروع الحالي كصورة ، زر لاختيار لون من أولان الويندوز ، زر لتصدير أوامر المشروع الحالي ، وزر استيراد أوامر مشروع خارجي ، وكلاهما بصيغة ملفات نصية . زر لإيقاف العملية الحالية في حال أردت الإيقاف ، وسيتم التراجع عن الأمر الذي تم إيقافه . ملف الأداة مفتوح المصدر ، للتحميل :- Foksh Turtle 2026.zip وهذه صور لبعض من التجارب التي قمت بها
    4 points
  8. 1️⃣ تم التعامل مع جميع الملاحظات التي طُرحت من الإخوة والأساتذة ( مشكورين جميعاً ) الذين قاموا بتجربة الأداة ومشاركتي نتائج اختباراتهم وملاحظاتهم . 2️⃣ تم إصلاح مشكلة الأزرار وأيقوناتها في الإصدار 2003 بإضافة إصدار منفصل كلياً وبنفس المزايا . ملف الأداة مفتوح المصدر ، للتحميل :- Menu Builder 2026.zip Menu Builder 2003.zip
    4 points
  9. 1️⃣ إضافة زر لمعاينة القائمة التي تم انشائها ، بدلاً من الدخول إلى تقرير أو نموذج وتعيينها وتجربتها . 2️⃣ إضافة فكرة القوائم الفرعية . بحيث يكون زر داخل القائمة الرئيسية يتفرع منه قائمة فرعية أخرى ... وهكذا . 3️⃣ إضافة مميزة بحفظ القائمة كـ VBA داخل ملف نصي يتم حفظه على سطح المكتب . بحيث يمكنك من نسخه وتشغيله مرة واحدة فقط في مشروعك لإنشاء القائمة المختصرة التي انشأتها من خلال الأداة ، أو استوردتها من قاعدة أخرى 😉 . 4️⃣ إضافة زر لتعيين/إزالة قائمة مختصرة لعدد من النماذج أو التقارير مرة واحدة ، دون الحاجة لتعيينها واختيارها يدوياً لكل نموذج أو تقرير . 5️⃣ إضافة ميزة مسح جميع القوائم المختصرة من جميع كائنات ( نماذج وتقارير ) قاعدة البيانات الحالية . وليس بتحديد كائنات محددة كما في النقطة4️⃣ . 6️⃣ إضافة الميزة الذهبية الجديدة وهي دمج الأداة إلى إضافات آكسيس وكأنها جزء منه وتجدها داخل الإضافات - Addin . كما في الصورة الموضحة :- 7️⃣ إضافة زر لإزالة الأداة من الـ Addin بشكل كامل ونهائي . 📸 واجهة الأداة بعد التحديث :- كل هذه الميزات وأكثر في المرفق التالي للنسخة المحدّثة :- Menu Builder.zip ( تم تحديث المرفق بعد ملاحظة خطأ بسيط في نموذج عرض التقارير والنماذج الموجودة في قاعدة البيانات ) . والشكر موصول لأخي @أحمد العيسى على هذه الملاحظة . فيديو توضيحي لطريقة استخدام القوائم الفرعية :-
    4 points
  10. اعرض الملف 🏆🌟 نتائج تحدي المبدعين 12 🌟🏆 :: مستعرض الملفات التفاعلي :: 📟🌟 السلام عليكم ورحمة الله وبركاته يطيب لي أن أطرح بين أيديكم نتائج : 🙂 🌟 تحدي المبدعين 12 🌟 :: مستعرض الملفات التفاعلي :: 🌟 هذا التحدي هو عبارة عن تحدي يطرح بين فترة وأخرى على جروب الواتسأب مجتمع اكسس جروب وكان هذا التحدي هو التحدي رقم 12 وكان موضوع التحدي هو إنشاء وتصميم مستعرض ملفات تفاعلي عن طريق الأكسس . 🤗 المشاركين : لدينا 6 مشاركات رائعة من 4 مشاركين متميزين : - المهندس / فادي Foksh (مشاركتان). - المهندس/ يوسف العزير (مشاركة). - المهندس/ أبو مازن الرازحي (مشاركة). - وأخوكم/ موسى الكلباني (مشاركتان). :: صور المشاركات :: المهندس/ أبو مازن الرازحي المهندس / فادي Foksh 1 المهندس / فادي Foksh 2 موسى الكلباني 1 موسى الكلباني 2 المهندس/ يوسف العزير ⭐ رابط الانضمام لمجموعة الواتسأب : https://drive.google.com/drive/folders/1Ku3j_1TBQ03M199RBAO86DqDcFKcgAk3?usp=drive_link ⭐ رابط جميع ملفات التحديات السابقة 🌟 : https://drive.google.com/drive/folders/1xOqWpWiLqKacPTG2MQDrohJp5DKDRTY2?usp=drive_link 🌸😊 كل التوفيق للجميع 😊🌸 صاحب الملف Moosak تمت الاضافه 06/10/26 الاقسام قسم الأكسيس  
    4 points
  11. في أكسس 2003 العملية أسهل حيث يمكن إنشاء وتعديل القوائم مباشرة بالخطوات التالية أنقر بالزر الايمن على شريط الادوات وحدد تخصيص ستفتح لك نافذة قم بالخطوات كما هو محدد بالصورة عند النقر على موافق سيظهر لنا شريط فارغ كما بالصورة الآن نقوم بإضافة الأزرار المطلوبة كما بالصورة المتحركة التالية في هذا الوضع يكون الشريط هو من نوع قائمة أدوات أو Tool Bar أي أنه يمكن أن إستخدامه كقائمة في شريط الأدوات وليس كقائمة مختصرة وحتى نحولها لقائمة مختصرة نقوم بتنفيذ الخطوات كما في الصورة التالية ستظهر لنا نافذة منبثقة ومن قائمة النوع نحدد (منبثقة) كما بالصورة بعد أن نختار هذا الخيار سنلاحظ أنه تم إلغاء تفعيل جميع الخيارات بالاسفل ماعدا خيار إمكانية التخصيص (والذي إذا قمت بإلغائه فلن تتمكن من إضافة أو تعديل أي عناصر في القائمة) بعد أن حولنا القائمة إلى قائمة منبثقة سنلاحظ إختفاؤها من قائمة أشرطة الأدوات ولكي نظهرها فيجب علينا تحديد قائمة الأدوات (القوائم المختصرة أو Shortcut Menus) كما بالصورة ليظهر لنا شريط بالقوائم المختصرة وما يهمنا هنا هو آخر قائمة وهي قائمة Custom أو مخصصة والتي عند النقر عليها ستظهر لنا جميع أشرطة القوائم المختصرة ولكن نظراً لأنه لايوجد إلا شريط واحد فسيكون هو الوحيد الظاهر كم في الصورة من هنا وبالنقر بالزر الأيمن على أي عنصر يمكننا تعديل التسميات أو إضافة العناصر بنفس الطريقة الموضحة في الصورة المتحركة أعلاه (سحب وإفلات) أو حذف العناصر بالنقر بالزر الأيمن وإختيار حذف كما بالصورة عند الإنتهاء من كل التعديلات سنحصل على النتيجة التالية عندها نقوم بإغلاق نافذة التخصيص كما بالصورة الآن لو فتحنا أي تقرير في وضع التصميم سنجد أن القائمة ستظهر في الخصائص وإذا فتحناه في وضع المعاينة ونقرنا بالزر الأيمن سنحصل على هذه النتيجة الان يمكننا إستيراد هذه القائمة من أي تطبيق آخر بدون عناء إنشاء وتعديل قائمة جديدة وهكذا نكون قد إنتهينا من خطوات إنشاء وتعديل القوائم في أكسس 2003 أما في الإصدارات الأحدث فإن القوائم يتم إنشاؤها بإستخدام الكود ولو إطلعت على الأداة التي كنت قد رفعتها في هذا الموضوع ستجد الطريقة أرجو أن يكون الشرح واضح تحياتي
    4 points
  12. السلام عليكم بمناسبة هذه الايام المباركة ، حبيت اشارك بهذه الجزئية المستقطعة من احد برامجي 🙂 في بعض الاحيان ما يقدر المبرمج من سد جميع ثغرات البرنامج لمنع المستخدم من عمل خطأ في ادخال البيانات ، فتكون نفس المعلومة مكتوبة بعدة طرق ، مثلا: . ومثال من جدول آخر . عادة يُطلب من المبرمج تنظيف هذه البيانات ، جدول جدول / حقل حقل / معلومة معلومة ، والمشكلة في هذا العمل هو معرفة الحقول المطلوب تنظيفها ، ثم معرفة البيانات الخطأ والبيانات الصحيحة (لإستبدالها) ، وهذا العمل يتطلب وجود المبرمج والمستخدم لمعرفته بالبيانات الخطأ والصحيحة. وبعد هذا التنظيف ، وبعد مرور مدة ، يجب تكرار العملية طبيعتي ، لما اشوف فيه تكرار لعمل معين ، اقوم ببرمجته ، وهذا اللي حصل في هذا المشروع 🙂 الان المستخدم (طبعا المسؤول) هو الذي يقوم بهذا العمل من خلال نموذج. انت محتاج الى نقل هذه الكائنات الى قاعدة بياناتك للقيام بالعمل ، ثم تشغيل النموذج frm_Clean_Data . 1. عند دخول النموذج ، تجد اسماء جميع الجداول في حقل اسم الجدول ، وبعد ان تختار اسم الجدول ، تجد اسماء جميع حقول الجدول في حقل اسم الحقل ، ثم تختار الحقل المطلوب تنظيف بياناته ، فتأتيك البيانات بدون تكرار . . 2. يجب عمل تصفية في اختيار "القيمة الحالية" للبيانات المطلوب تنظيفها ، وتختار "القيمة الجديدة" لها ، . 3. ثم تنقر على زر "جميع الاسماء المختار" ، فتاتيك رسالة تأكيد لعملية التنظيف التي سيقوم بها البرنامج ، وعند التأكد من هذا العمل والنقر على "نعم" ، فسيقوم البرنامج بعمل التغييرات المطلوبة ، ولا يوجد تراجع . 3. فنحصل على هذه النتيجة . 4. ونستمر بإختيار القيمة التالية من هذا الحقل ، او اختيار جدول/حقل آخر ، التغيير لقيمة الحقل كاملة وليست لجزء من الحقل يجب اعطاء هذا البرنامج للمسؤول ، ويجب ان يعرف عواقب العمل ، وقبل كل شيئ يجب اخذ نسخة من قاعدة البيانات Clean_Data.zip
    4 points
  13. وعليكم السلام ورحمة الله وبركاته .. اعجبتني الفكرة ، و وددت المشاركة بالتالي .. ما عليك فعله بيدك حتى تنجح الفكرة .. في المديول :- الخطوة الأولى اذهب للدالة :- Private Function ExitTimer() As Boolean وقم بحذف السطر :- Call DeleteObject(hRgn1) الخطوة الثانية أيضاً اذهب للدالة :- Public Function GenerateExit() 'MyForm As Form) وأضف بعد هذا السطر :- Do Until ExitTimer() السطر DoEvents ، لتصبح جملة الحلقة :- Do Until ExitTimer() DoEvents Sleep clngTimerInterval Loop وبعد هذه الحلقة مباشرة ، أضف السطر التالي :- Call DeleteObject(hRgn) وعليه ، فأن الملف كاملاً بعد هذه التعديلات يصبح :- db.mdb
    4 points
  14. تمام ، قمت بالتطبيق مسبقاً بإجراءات بسيطة واستخدام فكرة الرسم والتدوير من الملف المرفق الأصلي A2KPictureBoxVer35 .. New QR.accdb
    4 points
  15. أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. سابقاً وفي الموضوع الذي قمت بطرحه بإستفسارات حول آلية تطبيق وإمكانية التنفيذ من خلال آكسيس ليقوم بإرسال رسائل قصيرة SMS من الجوال . كانت الملاحظات والمشاركات ذات قيمة بالنسبة لي . وأشكر كل من ساهم بالرد بمعلومة حتى لو كانت بسيطة وجزئية بنظره .🥰. وبعد البحث عن فكرة مجانية بالكامل . خلصت في نهاية المطاف إلى أنني بحاجة فقط إلى جسر وصل وربط بين الجوال والكمبيوتر ( آكسيس تحديداً ) . ولهذا قمت أولاً بإنشاء تطبيق خاص وحصري ، ويعمل فقط على هواتف أندرويد بشكل عام فقط ( طبعاً بحكم طبيعة عملي في مجال الجوالات وصيانتها ) - جماعة IOS اعتذر منكم في الوقت الحالي 😁 - فكان التنفيذ لتطبيق لا يحتاج منك إلا تشغيل/أيقاف الخدمة فقط . وطبعاً وللمعلومة هذه الخدمة لا تعتمد على أي اتصال بالإترنت نهاااائياً . حيث أن الربط سيكون من خلال الشبكة المحلية التي يتصل بها الكمبيوتر والجوال معاً ، حتى لو كانت مجرد شبكة محلية بدون انترنت ، وعليه :- سيلزمنا أولاً تحميل التطبيق بصيغة APK من الرابط التالي هنا ، وتثبيته على الجوال بالشكل الطبيعي . ولكن وبما أن حمايات جوجل تتطور وتتحدث يومياً فإنك ستلاحظ أن النظام في جوالك سيمنع التثبيت بحكم أنك لم تقم بتحميل التطبيق من متجر تطبيقات جوجل 😅 ، وبالتالي فما عليك فعله بعد تحميل التطبيق من الرابط إلى جوالك ، ما يلي :- 1. افتح متجر جوجل بلاي في جوالك ، واتبع الخطوات التالية :- 2. الآن قم بإيقاف الحماية مؤقتاً للسماح بتثبيت تطبيقات خارجية ، ثم أعد تشغيلها للإطمئنان ، كما في الصورة :- 3. قم بتثبيت التطبيق الذي قمت بتحميله من الرابط السابق الآن . وبما أننا سنتعامل مع تطبيق يتعامل مع الرسائل وجهات الاتصال فقط . فسيطلب منك التطبيق الإذن بالصلاحيات للوصول الى الرسائل وجهات الإتصال ، وهذا الأمر طبيعي جداً . يعني حاله كحال أي تطبيق تقوم بتثبيته ويطلب منك صلاحيات . ولكن صلاحياتنا هنا محدودة وظاهرة . 4. قم الآن بتحميل النظام من الرابط التالي هنا للإصدار 64 ، أو من هنا للإصدار 32 . وستكون الواجهة بالشكل التالي :- 5. الآن ما الذي يتوجب عليك فعله بعد تحميل التطبيق وتثبيته على الجوال وفتحه ، وتشغيل البرنامج ؟ فقط اتبع ما يلي مصوراً :- اضغط الزر الأحمر والذي يدلك على حالة الإتصال بالخدمة ( تعمل / متوقف ) . حيث سيتغير لونه إلى اللون الأخضر عند تشغيل البرنامج . ليصبح بالشكل التالي على نجاح التشغيل :- التطبيق سيعمل معك بالعربية أو الإنجليزية ، ويدعم نمط الوضع الداكن أو الفاتح . وهي أمور جمالية فقط لا غير . لكن الإفتراضية ستكون اللغة العربية بالوضع الداكن . 6. الآن وبما أننا حصلنا على رقم IP محلي داخل الشبكة الحالية التي تحدثنا أنه يجب أن يكون الجوال والكمبيوتر متصلان على نفس الشبكة . سنذهب إلى واجهة التطبيق ونضغط زر الإعدادات الموجود بقائمة الأزرار الموجودة في الجزء العلوي الأيمن . وستجد أنك دخلت إلى النموذج التالي :- والمطلوب منك هو إدخال رقم الـ IP الذي ظهر معك في التطبيق الذي تم تثبيته على جوالك ، كما في الصورة ( مع اختلاف القيم طبعاً حسب الموزع الذي يتصل به جهازاك ) . وطبعاً باقي تفاصيل الإعدادات واضحة . حيث يمكنك تحديد عدد حروف الرسالة النصية الواحدة المرسلة . ومدة التحديث التلقائي التي تريد أن يتم كل عدد ثواني الكشف عن الاتصال . ثم انقر الزر الأخضر لحفظ الإعدادات والخروج . 7. وبعد أن تمت عملية تهيئة النظام للإتصال من خلال الشبكة المحلية بنجاح . سنقوم بالضغط على الزر الذي له شكل شبكة الـواي فاي WiFi . وستلاحظ انه تم الاتصال بالجوال وسيظهر لك اسم جوالك في أعلى الجهة اليمنى من واجهة النظام . وكذلك نسبة البطارية في جهازك في الجهة اليسرى المقابلة . وهذا دلالة على الإتصال ناجح بين آكسيس والجوال . 8. الآن ما دلالات ووظائف الأزرار الباقية ؟؟ ♻ الزر وظيفته جلب جهات الإتصال من الجوال ومزامنتها داخل التطبيق . والهدف هو تحميل جهات اتصالك بدلاً من حفظها واحداً واحداً . طبعاً ميزة الإضافة لجهة جوال جديدة غير متاحة حالياً في هذه النسخة . ♻ الزر الغير مفعل كوظيفة ، هو ووظيفته لاحقاً هي إستيراد الرسائل من الصندوق الوارد في جوالك الى اكسيس . وطبعاً المزامنة لن تكون بتكرار الرسائل عند كل عملية استيراد أو مزامنة ، وكذلك الأمر لجهات الاتصال . فلن يكون هناك تكرار عند كل عملية مزامنة . ♻ الزر ووظيفته عرض واختيار جهات الإتصال التي تمت مزامنتها من جوالك لاختيار - فردي أو متعدد - جهات إتصال وأرقام ترغب بالإرسال لهم . وعند النقر المزدوج على أي جهة إتصال سيفتح لك نموذج تعديل الاسم أو جهة الاتصال هذه وحفظ التعديلات . و طبعاً تستطيع الإرسال لرقم غير محفوظ في جهات اتصالك . ♻ الزرين ( فحص حالة الإتصال تلقائياً و حفظ الرسالة بعد الإرسال ) تسميتهما دالة على الوظيفة بشكل صريح . ♻ الزر 😄 ، وظيفته إضافة تعبير رسومية Emoji للرسالة . 9. الليست بوكس الموجود على الجهة اليسرى من الواجهة سيعرض لك جميع الرسائل التي تم ارسالها ( طبعاً إن قمت بتفعيل الحفظ التلقائي في الزرين الذين تم شرحهم قبل هذه النقطة ) ووجب الذكر هنا أن الخيارات والإعدادات ستبقى محفوظة حتى لو قمت بالخروج من النظام والعودة له لاحقاً . وطبعاً عند النقر المزدوج على أي رسالة مرسلة محفوظة سيتم نقل نص الرسالة الى مربع نص الرسالة بدلاً من كتابتها مرة أخرى عند حاجتها . وهنا ستجد المتعة في هذه القائمة من خلال طريقة العرض التي تريدها . يعني أنه يمكنك عرض الليست بوكس عن طريق القائمة وهي طريقة العرض الإفتراضية أو الشجرة . وذلك من خلال الزرين الموجودين فوق هذه القائمة . حيث في طريقة عرض القائمة سيتم عرض جميع الرسائل كسجل منفرد لكل رسالة . بينما في طريقة عرض الشجرة سيتم عرض الرقم المرسل له . وعند فتح قائمته تظهر لك الرسائل التي ارسلتها له 😁 . الآن وفي نهاية المطاف ، آمل أن يكون هذا العمل الذي استغرقني قرابة الشهر ، قد نال إعجابكم من الناحية التنفيذية و الوظيفية له . وحيث أن الوظائف التي لم تدرج بعد ، سيكون لها قريباً دمج وإضافة بعد التحقق من نجاحها بكافة الأشكال وتجربتها على أكثر من جوال ، في تحديث جديد . طبعاً التطبيقات التي تشابه فكرة تطبيق الجوال الخاص بي كثيرة على متجر جوجل بلاي .. فلك الحق والحرية بتجربة أي تطبيق آخر من المتجر نفسه . على سبيل المثال لا الحصر Traccar SMS Gateway . لكن ما يميز تطبيقي أنك لست بحاجة الى رمز وصول Token . أيضاً لن تستفيد من ميزة إستيراد جهات الإتصال من جوالك الى آكسيس . وبعض المزايا الأخرى بالتأكيد 😉 . •| وفي الحديث عن أن العمل مقفل وبصيغة ACCDE . فهو مجهود شخصي وغير منفذ مسبقاً . لذا عذراً عن عدم رفعه مفتوح المصدر فيما بعد |• 🤗 ولك الحق في عدم تجربة أي مشاريع مقفلة 🤗
    3 points
  16. ( الصورة من إنشاء الذكاء الإصطناعي Nano Banana 2 )
    3 points
  17. تم البدء بتنفيذ الفكرة .. رأيكم بالتصميم ..
    3 points
  18. وعليكم السلام ورحمة الله وبركاته .. هذه فكرة بسيطة للورقة الثانية في الخلية D4 ( المطلب الأول ) ، جربه :- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$4" Then Dim cell As Range, n As Long Range("B6:B35, D6:D35").ClearContents If IsDate(Target.Value) And Target.Value <> "" Then For Each cell In Sheets("بيانات العاملين").Range("B2:B" & Sheets("بيانات العاملين").Cells(Rows.Count, "B").End(xlUp).Row) If cell.Value = Target.Value Then n = n + 1 Cells(6 + ((n - 1) Mod 30), 2 + ((n - 1) \ 30) * 2).Value = cell.Offset(0, 1).Value If n = 60 Then Exit For End If Next cell End If End If End Sub المطلب الثاني في الورقة الثالثة ، جرب استعمال الفكرة التالية بحيث لتحديد العدد جعلت الخلية G4 لتحديد العدد بدلاً من 5 والتقيد به . وبالتالي اذا لم تحدد قيمة في G4 سيكون الافتراضي = 5 أسماء ، والكود كالتالي في الورقة الثالثة :- Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F4:G4")) Is Nothing Then Dim cell As Range, n As Long, limit As Long Dim status As String Range("C7:C" & Rows.Count).ClearContents status = Range("F4").Value If status = "ناجح" Or status = "راسب" Then limit = IIf(Val(Range("G4").Value) <= 0, 5, Val(Range("G4").Value)) For Each cell In Sheets("بيانات العاملين").Range("E2:E" & Sheets("بيانات العاملين").Cells(Rows.Count, "E").End(xlUp).Row) If cell.Value = status Then n = n + 1 Cells(6 + n, "C").Value = Sheets("بيانات العاملين").Cells(cell.Row, "C").Value If n = limit Then Exit For End If Next cell End If End If End Sub لاحظ أنني قمت بإضافة احتمال آخر = راسب من باب التوسعة في خيارات البحث بالنتيجة اللجنة.xlsm
    3 points
  19. إضافة للاستاذ كمال تفضل ملف عملي طرح تاريخين.xlsx
    3 points
  20. وعليكم السلام-تفضل طالما انك لم تقم برفع ملف موضح به المطلوب بكل دقة ,وفى طلبك وبالمعادلات العادية لا يوجد أفضل من معادلة DATEDIF
    3 points
  21. السلام عليكم اذا الاكسس يعمل شيء معين ، فعادة انا لا عمل شيء بديل عنه ، مثل الانتقال من صفحة الى اخرى ، فالاكسس به هذه الخاصية ، وكما ان لون النص وحجمه ، هما من عمل المبرمج ، فلن تراني اضعه في يد المستخدم. بدلا عن هذا الشريط ، اليكم طريقة اسهل في التعامل ، ولست بحاجة الى سطر من البرمجة. من برنامجك استورد البرنامج المرفق (البرنامج لا يحتوي على اي كائن ، غير القائمة المختصرة) . . وفي تقريرك في وضع التصميم : . الآن افتح التقرير في وضع معاينة ، وبالنقر على زر الفأرة اليمين ستأتيك هذه القائمة (والتي تشمل على ايقونات شريط الطباعة في هذا الموضوع) . Shortcut Menu.accdb
    3 points
  22. الاستاذ / @kkhalifa1960 @jjafferr @jo_2010 اشكركم بداية من الطرح و المساعدة بمرفق و تعديلات الاخ الكريم / خليفة و سعة صدرة على التعديل مع الحافظ على جميع ادوات النموذج لا .........وكمان عاوزينة بماكرو ....... طيب ممكن من غير ماكرو اختصارا مرفقى عبارة عن جزء من الادوات التى اعتبرتها عملية من وجهة نظرى ( مع كامل احترام للملف الاصيلى ) و تلبى احتياجاتى البسيطة لم اقدم اى جديد و لكن هو مزيج من كل الاعمال بداية من الاخت/ زهرة مرورا بالاستاذ @صالح حمادي و ختاما الاخ @kkhalifa1960 ا Print_ToolBar _2 _ test .rar
    3 points
  23. وعليكم السلام ورحمة الله وبركاته .. هذه مساهمة بسيطة كبداية . استكمل باقي العمل حتى تشعر بمتعة العمل 😊 . St.Sys.accdb
    3 points
  24. السلام عليكم ورحمة الله وبركاته.. تقبل الله طاعاتكم ، ومبارك على الجميع عيد الأضحى المبارك.. من باب السؤال والنقاش . هل من الممكن فعلاً أن نجعل التقرير يعرض الباركود ولكن بدل ما نرسم الباركود على أرضية التقرير ، أن يتم الرسم على أرضية عنصر صورة غير منضم 🤔 !! بمعنى آخر ، نستغل فكرة من المرفق الثاني ودمجها في النتيجة المطلوبة وبالتالي لن نحتاج صورة محفوظة أساساً !!! الفكرة تتلخص بالمرفق التالي بعد تشريح الأكواد وإزالة ما ليس له عمل لتطبيق الفكرة ، وإضافة الكلاس clsPictureBox واستغلال فكرة التنفيذ من الزر Start Draw with Mouse في المرفق A2KPictureBoxVer35 الأصلي من المشاركة الأولى ، بحيث جعلت الفكرة تقوم على رسم رمز الـ QR والـ Code128 😅 . وأشعر بأنها فكرة قد لا تكون ذكية .. ولكن كتجربة مختلفة عما تفضل به الأساتذة وجعلها تعمل على النواتين 32 و 64 :- QR_barcode.accdb
    3 points
  25. التشاؤم قد يكون سبباً في جعلنا نهز الشوك في وروده لشم عبيره في لحظة من اللحظات 😅 أتمنى أن نجد التفاعل الذي نتمناه جميعاً
    3 points
  26. وعليكم السلام ورحمة الله وبركاته .. مشاركة مع أخي جعفر .. كنت قد أضفت الخاصية هذه الى الأداة التي أشرت إليها . وهي في الزر Custom والذي وظيفته كانت استدعاء دالة محددة عامة من المديول مباشرة .. على سبيل المثال ولفكرتك التي طرحتها أعلاه . استعمل الدالة التالية بإضافتها داخل أي مديول :- Public Function ExportCurrentReportToSNP() On Error GoTo Err_ExportSNP Dim defaultFolder As String Dim filePath As String Dim rptName As String On Error Resume Next rptName = Screen.ActiveReport.Name If Err.Number <> 0 Then MsgBox "لا يوجد تقرير مفتوح ونشط حالياً لتصديره!", vbExclamation + vbMsgBoxRight, "تنبيه" Err.Clear Exit Function End If On Error GoTo Err_ExportSNP defaultFolder = "D:\_BackUp_Teacher\" If Dir(defaultFolder, vbDirectory) = "" Then MkDir defaultFolder End If filePath = defaultFolder & rptName & "_" & Format(Now(), "yyyy-mm-dd_hhmmss") & ".snp" DoCmd.OutputTo acReport, rptName, "SnapshotFormat(*.snp)", filePath, False, "", 0 MsgBox "تم استخراج ملف سناب شوت بنجاح وحفظه في:" & vbCrLf & vbCrLf & filePath, vbInformation + vbMsgBoxRight, "تم التصدير" Exit_ExportSNP: Exit Function Err_ExportSNP: If Err.Number = 2501 Then MsgBox "لا يوجد سجلات لتصديرها أو تم إلغاء العملية.", vbOKOnly + vbMsgBoxRight, "تنبيه" Else MsgBox "حدث خطأ غير متوقع: " & Err.Description, vbCritical + vbMsgBoxRight, "خطأ رقم " & Err.Number End If Resume Exit_ExportSNP End Function ثم اذهب الى نموذج الأداة ، وقم بإنشاء قائمة مختصرة جديدة أو افتح قائمة موجودة . وانقر الزر Custom . واتبع ما يلي :-
    2 points
  27. جزاك الله خيرا .. جبرت بخاطر اخيك
    2 points
  28. هذه محاولتي البسيطة ..
    2 points
  29. وعليكم السلام ورحمة الله وبركاته استاذنا الفاضل طلبك واضح ولكن ملفك المرفق لا يتوافق مع طلبك الطلب الثاني والثالت في شيت Horaire2027 عدد الخلايا 8 وفي الشيتين المرحل اليها 9 خلايا وخود كلمة المؤسسة في الشيتين Feuil12 وFeuil13 وعدم وجودها في شيت Horaire2027 على كل حال الكود المرفق تم عمله حسب الموجود في شيت Horaire2027 وهي 8 خلايا حسب الشيت المرفق تم تقسيم الكود الى جزئين بزرين الاول للترحيل الى Feuil1 وFeuil12 والكود الثاني الى وFeuil13 Horaire-18-06-2026-(04.12.06).xlsb
    2 points
  30. وعليكم السلام ورحمة الله وبركاته في عدم وجود ملف لمعرفة السبب جرب الطريقة البدائية البسيطة اذهب إلى الشيت والخلية الذي تريد ظهور الناتج فيها. اكتب علامة يساوي (=). بالماوس، انتقل إلى الشيت الآخر واضغط على الخلية التي تريد جلب البيانات منها ثم اضغط على زر Enter
    2 points
  31. وعليكم السلام ورحمة الله وبركاته .. مهندسنا الغالي تبارك الله ، ما شاء الله على الأفكار الجميلات الممتعات أحسن الله إليك ، ورفع قدرك على هذه الفكرة الجميلة .. بعد تجربتي الأداة تعمل 100% عندي . ولكن كان لي نقطة واحدة فقط وهي قراءة الرد من السيرفر بشكل أوضح . ما أقصده هو ، وكمثال بعد محاولات كثيرة حتى تم استنزاف رصيد الـ 50 محاولة المجانية لديكم :- والتنفيذ في الجزء :- Else Dim errTxt As String On Error Resume Next errTxt = http.responseText On Error GoTo 0 DoCmd.Hourglass False If InStr(errTxt, "unknown_foreground") > 0 Then MsgBox "We’re sorry, we couldn’t remove the background." & vbCrLf & _ "Try another image.", _ vbExclamation, "Remove Background" ElseIf http.Status = 401 Then MsgBox "API Key غير صحيح", vbCritical + vbMsgBoxRight, "Remove Background" ElseIf http.Status = 402 Then MsgBox "لم يعد لديك أي محاولات مجانية في هذا الحساب", vbCritical + vbMsgBoxRight, "Remove Background" Else MsgBox "حدث خطأ غير معروف:" & vbCrLf & _ http.Status & " - " & http.statusText, _ vbCritical + vbMsgBoxRight, "Remove Background" End If كما قمت بإيقاف السطر التالي أيضاً :- MsgBox "فشلت العملية" Moosak BG Remover.accdb
    2 points
  32. أخي الكريم ، الفكرة ليست بمعادلة وينتهي الموضوع !!!! بناءً على ملفك المرفق فإنه حتى المعادلة لن تأتي لك بالمطلوب لأسباب كثيرة . نمط التاريخ وشكله وتنسيقه غير واضح في الخلايا داخل الورقات اليومية . الخلية التي سيكون بها تاريخ المقارنة يجب أن يكون في خلية ثابتة في جميع الورقات . خلية عرض الصافي أيضاً يجب أن تكون في خلية ثابتة . فليس من المنطقي أن تكون مرة في Q ومرة في R ومرة في F ... إلخ وعليه تم العمل من خلال ماكرو واستدعاؤه داخل الورقة الرئيسية كالتالي :- Sub GetValuesFromSheets() Dim wsCurrent As Worksheet Dim wsOther As Worksheet Dim i As Long Dim j As Long Dim targetDate As Date Dim found As Boolean Dim lastRow As Long Set wsCurrent = ThisWorkbook.ActiveSheet Application.ScreenUpdating = False Application.Calculation = xlCalculationManual wsCurrent.Range("C3:C33").ClearContents For i = 3 To 33 If wsCurrent.Cells(i, "B").Value <> "" Then If IsDate(wsCurrent.Cells(i, "B").Value) Then targetDate = CDate(wsCurrent.Cells(i, "B").Value) found = False For Each wsOther In ThisWorkbook.Worksheets If wsOther.Name <> wsCurrent.Name Then lastRow = wsOther.Cells(wsOther.Rows.Count, "B").End(xlUp).Row If lastRow > 33 Then lastRow = 33 For j = 3 To lastRow If wsOther.Cells(j, "B").Value <> "" Then If IsDate(wsOther.Cells(j, "B").Value) Then If CDate(wsOther.Cells(j, "B").Value) = targetDate Then wsCurrent.Cells(i, "C").Value = wsOther.Range("R27").Value found = True Exit For End If End If End If Next j End If If found Then Exit For Next wsOther If Not found Then wsCurrent.Cells(i, "C").Value = "غير موجود" End If End If End If Next i Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub Private Sub Worksheet_Activate() Call GetValuesFromSheets End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B3:B33")) Is Nothing Then Call GetValuesFromSheets End If End Sub وهذا مرفقك بعد إجراء بعض التعديلات عليه وضبط المواضع التي تحدثت عنها سابقاً تصفيات العيادات.xlsm ملاحظة .. تم تعديل التاريخ في كل ورقة ليصبح 2026-06-19 2026-06-20 2026-06-21 2026-06-22
    2 points
  33. إبداعات أخي منتصر لا تنقطع ، وأنا على ثقة بذلك ، له كل الشكر والتقدير على ما ساهم به مع الأخوة والأساتذة الذين شاركوا بطرح الأفكار . العمل جماعي ، والنتيجة المنطقية الصحيحة - على ما اعتقد - ، هي ثمرة العمل الجماعي
    2 points
  34. السلام عليكم اخي فادي شركات الخدمة ، سواء للاتصالات او الواتساب او التلغرام او ... او حتى البرامج ، عادة تفرض سقف لإستعمال منتجاتها/خدماتها المجانية للافراد ، ويكون عندها بديل بمقابل مادي عندما تصبح الخدمة المطلوبة جماعية/بالجملة . الواتساب مثلا ، صحيح نستطيع برمجيا ارسال الرسائل بسرعة ، ولكن نصطدم بحاجز الحوالي 200 رسالة في اليوم ، واذا زادت عن هذا العدد ، يوقف الواتساب الحساب !! نفس الشيء بالنسبة الى ارسائل sms ، وحسب الشركة مقدمة الخدمة ، فاذا تجاوز المستخدم الحاجز ، فالشركة تقوم بوقف الرقم. بالنسبة لنا كمبرمجين ، فالمتعة تكون في التحدي ، ولكن للاسف الشديد كم شخص اتصل فيني انه جرب البرنامج الفلاني من المنتدى لإرسال واتساب فاوقفت الواتساب حسابه ، فحاول مع كود ثاني وثالث والذي كلفه حسابه الثاني والثالث فياريت تكتب تحت كل برنامج: وفقا لشروط واحكام الشركة مقدمة الخدمة
    2 points
  35. المهم هو مصدر هذه الرسائل .. وهل هذا المصدر يدعم api? انت اذا ارسلت من هاتفك يظهر لدى الطرف الآخر هاتفك كاسم مرسل .. صحيح .. ولكن الرصيد مرتبط بقاعدة بيانات المصدر
    2 points
  36. عليكم السلام ورحمة الله وبركاته الطريقة في اكسس وعندنا في السعودية : 1- الاشتراك في اي بوابة تقدم خدمة الرسائل 2- معظم هذه البوابات بل كلها تدعم api 3- تمنحك هذه الخدمة رقما خاصا فريدا Token تدرجه مع اليوزر والباسوورد في اكسس مع اسم مرسل خاص 4- عندنا يلزم موافقة هيئة الاتصالات على منح اسم مرسل (يخصك) .. واجراءاته يسيرة يمكن لأي شخص الحصول عليه هذا كل شيء نأتي لاستفسارك اذا كان مصدر هذه الرسائل بوابة من هذه البوابات يمكنك الاشتراك معهم وبمعلومية هاتفك يمكنك التواصل مع الدعم الفني لا ضافتها الى حسابك
    2 points
  37. تبارك الله .. تبارك الله .. 🤚😃✋ وفوق كل ذي علم عليم .. سبحان الله الخلاق العظيم 😃🤲 عجيب جدا هذا الأكسس .. لا تنقضي عجائبه .. سبحان الله .. 🙂 جميلة وممتعة 😊👌🌼 .. سلمت يمناك أبا وسام .. وزادك الله علما وفهما .. ورزقك من حيث لا تحتسب 🙂🤲
    2 points
  38. لحساب تاريخ ووقت نهاية الإنتاج نستخدم الدالة getEndDate كالتالي: - نمرر رقم 1 إذا كانت العطلة الأسبوعية يوم واحد: =getEndDate(Z$2,AC4,6,1) - نمرر رقم 2 إذا كانت العطلة الأسبوعية يومين: =getEndDate(Z$2,AC4,6,2) - نمرر رقم 3 إذا كانت العطلة الأسبوعية ثلاثة أيام: =getEndDate(Z$2,AC4,6,3) أما رقم 6 فهو رقم أول يوم في عطلة نهاية الأسبوع وهو قيمة يوم الجمعة فكما هو معروف فأيام الأسبوع تبدأ برقم 1 ليوم الأحد وتنتهي بيوم 7 ليوم السبت.
    2 points
  39. شكراً لك أخي منتصر .. مروركم هو الأروع . وهذا بعض ما عندكم صدقني .. شكراً لك على مرورك أخي أبو الحسن قليل مما عندكم أخي محمد .. شكراً لمرورك العطر مهندسنا الغالي .. بانتظار تجربتك أولاً والنتيجة ، وسلاسة الاستخدام ... إلخ .
    2 points
  40. كان لدي هذه الفكرة القديمة ولم اتابعها للأسف ، ولكن سؤالك هذا عدت لها وقمت ببعض التعديلات وتحديثها حتى أصبحت بالشكل التالي .. وسأقوم بإذن الله بإضافتها كموضوع مستقل خلال اليوم إن شاء الله
    2 points
  41. الكود تلقائيا إذا لم يجد شيئا في الخاصية Description يرجع لك اسم الجدول الحقيقي ... أنوي فعل ذلك إن شاء الله .. ولكن بعض الأجزاء تم الاستغناء عنها وبعضها محتاجة تطوير 🙂
    2 points
  42. طلبك الأول ، شرحه موجود في الموضوع التالي :- طلبك الثاني شرحه فيما يلي ..
    2 points
  43. يعني انت تريد تنظيف الأكواد من الاعتماد على Tag كلياً ؟ فقط سنقوم بإزالة الجملة الشرطية التي تختص بالـ Tag ، من المديول ModulQRCode . If level = "" Then i = InStr(LCase(Text.Tag), "qrcode") If (i > 0 And i + 5 < Len(Text.Tag)) Then level = Mid(Text.Tag, i + 6, 1) End If تم نقل الدالة الى المديول وتحويلها الى Public ، وتنظيف أكواد التقرير ، والإعتماد فقط على الاستدعاء :- Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Call DrawAndSaveBarcode(Me.FieldCode128, Me.ImgQR4, "Code128") Call DrawAndSaveBarcode(Me.FieldCode128, Me.ImgQR5, "Code128", True) Call DrawAndSaveBarcode(Me.FieldQRCode, Me.ImgQR2, "QR") End Sub وكملاحظة ، قمت بإضافة مربع النص PgCount داخل التقرير في Page_Footer ، والهدف منه كان لتجربة بأن يتم تصدير كافة الرموز Qr/Code128 عند فتح التقرير ، أو تستطيع الغاء مربع النص هذا وسيتم تصدير الصور داخل المجلد حسب الصفحة التي يتم فتحها فقط . المرفق بعد التعديل :- QR_Barcode - 3.accdb
    2 points
  44. بالحل المقدم من الأخ @Foksh ينطبق المثل "قطعت جهيزة قول كل خطيب"
    2 points
  45. بعد اذن اساتذتي الاساذ / @صالح حمادي والاستاذ / @jjafferr ........ للاستاذين @jo_2010 و @AMINYOUSIF . لانه يوجد تعديلات مهمه مثلاً عند تكبير الخط ستزداد عدد الصفحات .. تم معالجتها . واشياء اخرى ....... ممكن استخدام الماكروهات حسب طلب الاستاذ @jo_2010 . أو الاكواد بدلاً منها حسب طلب الاستاذ @AMINYOUSIF . ...................... لذا وجب عليا التعدبل وارفاق المرفق بعد التعديل . ووافوني بالرد . Print ribbon-last.rar
    2 points
  46. بعد إذن الاخ @mohahje قمت (وبإلاستعانة بالذكاء الصناعي أكيد 😅) بتعديل الكود للحصول على الـ QRCode بلون أسود وخلفية بيضاء كذلك وتنفيذاً لطلب الاخ @jjafferr تم إضافة الكود الخاص بتنفيذ نفس العملية ولكن للحصول على Code128 ارفق لكم ثلاثة ملفات أكسس كالتالي 1 - الملف QR_barcode SubReport يتم فيه تطبيق الحل الخاص بالاخ @jjafferr بإستخدام التقارير الفرعية 2 - الملف QR_barcode Transparent يتم فيه تطبيق الحل الخاص بالاخ @jjafferr بإستخدام الصورة الشفافة 3 - الملف QR_barcode Bmp Images يتم فيه تطبيق الكود الخاص بالأخ @mohahje تم تطبيق الحلول الثلاثة على نفس صورة الخلفية حتى يتم تجربة كل الحلول في نفس الظروف ومقارنتها من حيث سرعة الأداء وتضخم حجم قاعدة البيانات عند زيادة حجم البيانات ارجو من الجميع تجربة الثلاثة ملفات وإبداء أي ملاحظات للتوصل إلى أفضل حل تحياتي BarcodesReports.rar
    2 points
  47. تفضل يا سيدي 1650.شريط طباعة قوى جدا_32-64بت.accdb
    2 points
  48. وعليكم السلام -تفضل معادلتين لطلبك .اختر منهما ما تشاء =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
    2 points
×
×
  • اضف...

Important Information