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

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

  1. Foksh

    Foksh

    أوفيسنا


    • نقاط

      29

    • Posts

      3997


  2. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      16

    • Posts

      11643


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

    hegazee

    03 عضو مميز


    • نقاط

      8

    • Posts

      207


Popular Content

Showing content with the highest reputation since 09/07/25 in مشاركات

  1. أخواني وأساتذتي ومعلمينا ( دون استثناء ) أدعوكم لتجربة فكرة جديدة تم تنفيذها من خلال آكسيس ( هذا العملاق الصغير 😅 ) . بحيث أُجري تطويراً على فكرة تدعم المبرمجين والمطورين وتمكنهم من إنشاء نظام تفعيل عن بعد ( Online - سحابي ) ؛ بحيث لا يكون على المستخدم سوى إرسال رقم معرف جهازه فقط للمطور ، وما على المطور إلى تفعيل حسابه حسب المدة ( أنواع الإشتراكات ) التي يقدمها مطور البرنامج . وعليه فإنه في هذه المرحلة ، سأطلب ممن يرغب بالمشاركة ( فضلاً وكرماً منه لا أمراً ) أن يقوم بإرسال صورة لواجهة البرنامج الذي سأرفقه تالياً ، مع رقم معرف جهازه فقط . وسأقوم بدوري بتفعيل البرنامج المؤقت له بأشتراكات متنوعة لتجربة الفكرة . وكفكرة على المطلوب ، سأبدأ بنسخة من جهازي كتجربة لتتوضح لكم آلية المشاركة .. عند فتح القاعدة لأول مرة ، سيتم الإتصال بالسيرفر لتسجيل رقم جهازك ( أول مرة فقط ) . لذا شكراً لانتظارك وصبرك 😇 بعد الإتصال بالسيرفر ، سيتم اعتماد مدة تجريبية = 14 يوم وهذه الصورة المطلوبة منك عزيزي القارئ ثم من زر النسخ ، إنسخ رمز المعرف لجهازك ، وألصقه كاملاً كما في مثالي التالي 🤗 ID-0223222033111131825422051 التفعيل يعتمد على اتصال الجهاز بالإنترنت ، حالنا كحال الشركات التي تعتمد على سيرفر خاص بها بالتفعيل 😎 ، لذا لن تفيدك المحاولة بدون اتصال بالإنترنت . نسخة تعمل على النواة 64 :- Officena64.zip نسخة تعمل على النواة 32 :- Officena32.zip
    4 points
  2. و عليكم السلام ورحمة الله وبركاته تفضل الملف و يمكن اختيار الفصل من القائمة المنسدلة لعمل التصفية لازم نشير أن الملف الأصلي من اعداد الدكتور أحمد البحراوي جديد 5 سلوك (2).xlsm
    3 points
  3. لو عندك اكسيل حديث 365 مثلا يمكن استعمال الصيغة التالية =TEXTJOIN("",TRUE,القرار!AM24:AM39,القرار!AN24:AN39) و يمكن بالأكواد مع الاصدارات القديمة و ده يلزم وجود ملف عشان نتأكد من النتيجة
    3 points
  4. 3 points
  5. اليك التعديل كلمة المرور 1234 اظافة زر تعديل وخذف للفورم.xlsm
    3 points
  6. الملخص: ملخص تفصيلي: تحويل MS Access إلى عميل ويب حديث عبر APIs تستكشف هذه المحاضرة التحول النموذجي في كيفية استخدام Microsoft Access، حيث ننتقل به من كونه مجرد واجهة لقواعد البيانات المرتبطة (Linked Tables) إلى كونه عميل تطبيق ديناميكي (Dynamic Application Client) يتفاعل مباشرة مع خدمات الويب الحديثة عبر واجهات برمجة التطبيقات (APIs). هذا النهج يفتح آفاقاً جديدة لـ Access ليتكامل مع أي نظام تقريباً على الإنترنت. 1. المفهوم الجوهري: فصل الواجهة عن البيانات (Decoupling) الفكرة الأساسية هي فك الارتباط بين واجهة المستخدم الأمامية (Front-end) التي يصممها المطور في Access، وقاعدة البيانات الخلفية (Back-end). النموذج التقليدي: يقوم Access بالاتصال مباشرة بقاعدة بيانات (مثل SQL Server) عبر ODBC. هذا يعني أن Access يجب أن يعرف مكان الخادم، وتفاصيل الاتصال، ولديه صلاحيات مباشرة على الجداول. هذا الارتباط قوي ومباشر. نموذج الـ API الحديث: يعمل الـ API كوسيط أو "مترجم". تطبيق Access لا يتحدث مباشرة مع قاعدة البيانات، بل يرسل طلبات HTTP معيارية (مثل GET, POST) إلى عنوان URL خاص بالـ API. الـ API بدوره هو المسؤول عن التحدث مع قاعدة البيانات، وتنفيذ الطلب، ثم إعادة النتيجة إلى Access. الميزة الكبرى لهذا الفصل: يمكن تغيير قاعدة البيانات الخلفية بالكامل (مثلاً من SQL Server إلى Oracle أو حتى قاعدة بيانات NoSQL مثل MongoDB) دون الحاجة إلى تغيير سطر واحد في كود Access، طالما أن "عقد" الـ API (عناوين URL وشكل البيانات) لم يتغير. هذا يمنح النظام مرونة وصيانة أسهل وقابلية للتطوير. 2. الأدوات التقنية المستخدمة بالتفصيل 🛠️ لتحقيق هذا التكامل، تم الاعتماد على حزمة من التقنيات التي تعمل معاً بسلاسة داخل بيئة VBA. مكتبة VBA-Web هذه هي المحرك الرئيسي للعملية. هي مجموعة من كائنات VBA (Classes) تغلف التعقيدات المتعلقة ببروتوكول HTTP. أهم كائناتها: WebClient: الكائن الأساسي الذي يحتفظ بعنوان URL الرئيسي للـ API (مثال: https://api.weather.com). WebRequest: يمثل الطلب الفردي. من خلاله نحدد: المورد (Resource): المسار الفرعي داخل الـ API (مثال: forecast). الطريقة (Method): نوع العملية (Get لجلب البيانات، Post لإنشاء بيانات جديدة، Put لتحديث بيانات موجودة، Delete لحذفها). المعلمات (Parameters): البيانات الإضافية التي نرسلها مع الطلب، مثل AddQueryParameter لإضافة متغيرات إلى عنوان URL (مثال: ?city=Cairo&units=metric). الجسم (Body): يستخدم مع طلبات Post و Put لإرسال البيانات الفعلية (عادةً بتنسيق JSON) التي نريد حفظها في قاعدة البيانات. WebResponse: يحتوي على الرد من الخادم. أهم خصائصه: .Data: يحتوي على البيانات المُرجعة (عادةً نص JSON). .StatusCode: رمز الحالة الرقمي الذي يخبرنا بنتيجة الطلب (200 للنجاح، 404 لـ "غير موجود"، 401 لـ "غير مصرح له"، 500 لخطأ في الخادم). تنسيق JSON هو المعيار الفعلي لتبادل البيانات على الويب اليوم. هيكله بسيط ويعتمد على: أزواج المفتاح-القيمة (Key-Value Pairs): مثل {"name": "Ahmed", "age": 30}. الكائنات المتداخلة (Nested Objects): يمكن أن تكون القيمة نفسها كائناً آخر، مثل {"user": {"firstName": "Ali", "lastName": "Hassan"}}. المصفوفات (Arrays): قائمة من القيم، مثل {"skills": ["Access", "SQL", "VBA"]}. كائن الـ Dictionary هذا الكائن، الذي يأتي من مكتبة Microsoft Scripting Runtime، هو المكافئ المثالي لهيكل JSON داخل VBA. إنه يخزن البيانات كأزواج مفتاح-قيمة. مكتبة VBA-Web تقوم تلقائياً بعملية تسمى "التحويل" (Deserialization)، حيث تحول نص JSON القادم من الرد إلى كائن Dictionary متداخل. هذا يجعل الوصول إلى البيانات سهلاً جداً: VBA ' بدلاً من التعامل مع نص معقد ' يمكننا الوصول للبيانات هكذا: Dim temp As Double temp = MyDictionary("current_weather")("temperature") 3. تحليل معمق للأمثلة العملية 📝 مثال الطقس (قراءة البيانات فقط - GET) التهيئة: يتم إنشاء كائن WebClient وتحديد عنوان URL الأساسي لخدمة الطقس. بناء الطلب: يتم إنشاء كائن WebRequest وتحديد المورد (forecast) والطريقة (Get). إضافة المعلمات: يتم استخدام .AddQueryParameter لإضافة خطوط الطول والعرض (التي تم جلبها من جدول Access محلي) إلى الطلب، بالإضافة إلى معلمات أخرى مثل وحدة القياس (فهرنهايت). التنفيذ: يتم استدعاء Client.Execute(Request)، والذي يرسل الطلب وينتظر الرد. معالجة الرد: يتم فحص Response.StatusCode. إذا كان 200، يتم تحويل Response.Data (الذي هو JSON) إلى Dictionary. تعبئة النموذج: يتم الوصول إلى القيم المطلوبة من الـ Dictionary (مثل WeatherData("main")("temp")) وتعيينها مباشرة إلى مربعات النص في نموذج Access. لا يوجد ربط بيانات مباشر؛ العملية تتم برمجياً بشكل كامل. مثال المنتجات (قراءة وكتابة - CRUD Operations) هنا تظهر قوة الـ API الكاملة. تحديث منتج (PUT): عندما يغير المستخدم السعر في النموذج ويضغط "حفظ"، يقرأ كود VBA القيم الجديدة (اسم المنتج، السعر) من حقول النموذج. يتم إنشاء كائن Dictionary جديد في VBA لتمثيل المنتج المحدث. يتم تحويل هذا الـ Dictionary إلى نص JSON باستخدام وظيفة خاصة في مكتبة VBA-Web. يتم إنشاء طلب WebRequest بطريقة Put ويتم إرساله إلى عنوان URL محدد للمنتج (مثال: /api/products/15). يتم تعيين نص JSON الذي تم إنشاؤه إلى خاصية .Body للطلب. عند التنفيذ، يستقبل الـ API الطلب، ويقرأ الجسم، ويقوم بتحديث السجل المقابل في قاعدة بيانات SQL. إضافة منتج جديد (POST): العملية مشابهة جداً للتحديث، ولكن الطلب يُرسل بطريقة Post إلى عنوان URL العام للمنتجات (مثال: /api/products)، ويقوم الـ API بإنشاء سجل جديد بدلاً من تحديث سجل موجود. حذف منتج (DELETE): أبسط عملية. يتم إرسال طلب WebRequest بطريقة Delete إلى عنوان URL الخاص بالمنتج المراد حذفه (مثال: /api/products/15). هذا الطلب لا يحتاج عادةً إلى جسم (Body). 4. استنتاجات ومفاهيم متقدمة 🚀 معالجة الأخطاء: من الضروري دائماً فحص StatusCode. إذا لم يكن 200، يجب على الكود التعامل مع الخطأ بشكل مناسب، كعرض رسالة للمستخدم تشرح المشكلة (مثل "لا يمكن العثور على المنتج" للرمز 404). أداة Postman: تم التأكيد على أهمية استخدام أدوات مثل Postman. تسمح هذه الأداة للمطور باختبار كل طلبات الـ API (GET, POST, etc.) بشكل مستقل عن Access. يمكن للمطور التأكد من أن الطلب يعمل وأن البيانات المرجعة صحيحة قبل كتابة أي كود VBA، مما يوفر ساعات من تصحيح الأخطاء. الأمان والمصادقة: معظم واجهات الـ API الحقيقية ليست مفتوحة للجميع. تتطلب "مفتاح API" أو "رمز مصادقة" (Token) يتم إرساله مع كل طلب. مكتبة VBA-Web تدعم إضافة هذه المعلومات بسهولة إلى رؤوس الطلب (Request Headers) لتأمين الاتصال. في الختام، هذه المحاضرة لم تكن مجرد شرح لتقنية جديدة، بل كانت دعوة لتغيير طريقة التفكير في دور MS Access. فبدلاً من كونه أداة محصورة في بيئة سطح المكتب، يمكن تحويله باستخدام هذه التقنيات إلى مكون مرن وقوي في أي بنية تحتية حديثة تعتمد على الخدمات السحابية والويب. و أخيرا ملف الترجمة الي العربية ملف الترججمة الي العربية.rar
    3 points
  7. مرحبا بكم و من بعد اذن جميع الاعضاء الغاليين جدا على قلبي و الذي تعلمت الكثير منهم ارجوا الاطلاع على الملف المرفق حيث يحتوي على موديول المطلوبة لارفاقها الى برنامجك ملاحظة: اكتب الكود التالي في حدث عند الفتح لكل نماذجك Private Sub Form_Open(Cancel As Integer) On Error Resume Next Me.KeyPreview = True Set frmResize = New FormResize Set frmResize.Form = Me DoCmd.Maximize End Sub ReSizeToAllReseluotion.accdb
    2 points
  8. إلى الإخوة الأعزاء، لاحظت في المنتدى أن الكثير يعاني من مشكلة حفظ الملفات في المرفقات باستخدام الماسح الضوئي، فأحببت أن أشارككم هذه الطريقة البسيطة لأبسط الحلول التي يمكننا القيام بها. ممكن تعدل عليها مثل ما بدك وبدون الحاجه الى تفعيل اي شيء في الاكسيس Microsoft Windows Image Acquisition Library v2.0 24.rar
    2 points
  9. قمت بالتعديل على ملفك وإن شاء الله يكون هو الحل المطلوب كل شيئ موضح في الملف المرفق تحياتي basetimes.rar
    2 points
  10. محاولتي: TwoPeriods_01.xlsx
    2 points
  11. السلام عليكم ورحمة الله وبركاته اهلا وسهلا بك في منتدى اوفيسنا اطلعتُ على الموضوع أكثر من ثلاث مرات، ثم تركته بسبب غموض الطلب وعدم وجود شرح مفصّل. وفي المرة الرابعة، جلستُ في جلسة فجرية على قهوة العميد (Foksh)، فتمت معرفة طلب أخينا الفاضل بإذن الله. في ورقة CLASS2، وأثناء وضع المعاينة، وجدتُ تقسيمًا للصفوف، حيث تظهر أسماء الصفوف في رأس الصفحة، وفي التذييل التوقيعات. كل صف يحتوي على 50 طالبًا، باستثناء الصف الأخير الذي يضم 51 طالبًا. ويُفترض أن يكون كل 50 طالبًا في ورقة واحدة، موزّعين على عمودين. وإن كان ما فهمته صحيحًا من طلبك، فإليك الملف وفيه محاولة للحل. أما إذا لم يكن هذا هو المطلوب، فإن الشرح الوافي يُسهّل على أعضاء المنتدى الإقبال على المساعدة أكثر. second2026 - Copy.xlsb نخياتي
    2 points
  12. السلام عليكم ورحمة الله وبركاته .. يبدو أن الأستاذ @عبدالله بشير عبدالله ، مستهدف في هذه النقطة عند اختيار الإجابة من الأعضاء الأعزاء .. 😅 يسعدنا أنك حصلت على إجابتك الشافية التي حققت طلبك ، ولذا . نرجو منك تصويب إختيارك للإجابة الصحيحة وهي للأستاذ @عبدالله بشير عبدالله مشكوراً على جهوده والإخوة والأساتذة دون استثناء 💐
    2 points
  13. السلام عليكم اظافة صور المعاملات الطريقة اضغط زر معاملة جديدة ثم املأ البيانات ثم زر اظافة تاتى رسالة باظافة صورة او لا اختر نعم قم باختيار الصورة من الجهاز من اي مكان في جهازك وباي اسم يتم خفظ الصورة. لاظهار صورة المعاملة استخدم البحث يفضل عمل مجلدين للصور للصادر والاخر للوارد لتجميع الصور في مكان محدد والامر اختياري يعود اليك فالكود يتعامل مغ اي صورة قي الجهاز وبأي امتداد االمراسلات الإدارية3.xlsm
    2 points
  14. الأستاذ عبدالله بشير فعلا هذا المطلوب بارك الله فيك وفي علمك وكذلك الاستاذحجازي بارك الله فيك ومتعك بالصحة والعافية شكرا اساتذتي الكرام وشكر خاص لهذا المنتدى المميز ولجميع القائمين عليه ولجميع الاعضاء
    2 points
  15. السلام عليكم ورحمة الله وبركاته في ملفك تستخدم Shapes TextBox (وهي من النوع Form Control)، فهي لا تدعم حدث Change مباشرة قكرة الاستاذ hegazee بسيطة وعملية ربما تعديل بسيط على الفكرة وهو كتابة الرقم في خلية ويتم ربط الخلية بالتكست الاول في الملف اكتب الرقم في الخلية الصفراء تبادل معلوات ورقتين(2).xlSB عذرا ان لم تستطع طلبك كما تريد ولعل الاعضاء المخترمون لديهم افكار اخرى تخياتي
    2 points
  16. 🌷 لقاءات أكسس العرب الافتراضية | 03 | 🌷 موضوع اللقاء : مهارات وفنيات تصميم النماذج واختيار الألوان وتنسيق العناصر رابط اليوتيوب: ★ روابط اللقاء الثالث ★ ○ موقع إلهام : https://www.pinterest.com https://www.freepik.com ○ مواقع اختيار الألوان : https://coolors.co https://colorhunt.co https://www.materialpalette.com https://coolors.co/gradients ○ مواقع الأيقونات : https://icons8.com/icons https://www.flaticon.com https://icon-icons.com/ https://www.iconarchive.com/ https://flaticons.net/free-icons ○ مواقع صور PNG : https://www.cleanpng.com https://www.pngwing.com https://www.seekpng.com ○ مواقع صور خلفيات : https://www.pexels.com https://www.freepik.com/free-photos-vectors/background https://pixabay.com https://www.vecteezy.com/free-photos/background https://stocksnap.io/search/background ○ مواقع الخطوط : https://fonts.google.com https://arbfonts.com خطوط رسومية : https://www.vertex42.com/ExcelTips/unicode-symbols.html https://www.ssec.wisc.edu/~tomw/java/unicode.html ○ مراجع مهمة : https://elshemy.me/content/2025_8/Access_UI_UX_ِGuide.html ★ روابط تهمك ★ ❀ ملفات اللقاءات الافتراضية : ○ https://shorturl.at/mR2T3 ○ اللقاء الأول : https://drive.google.com/drive/folders/1wiMVugVZNzU9eaJ9abX-YfqhhSG6_Ec5 ○ اللقاء الثاني : https://drive.google.com/drive/folders/1EcaTZBp0rhmxhm7c_NKOg6BC-O89DS4W ○ اللقاء الثالث : https://drive.google.com/drive/folders/1VX4an_hg3ZdX-Q9_MlNNPoCzkCN6b98d ○ برمـجيـات - أدوات - إضـافـات : https://drive.google.com/drive/folders/1RtmH-cuk1rpj0zKkUNPbQz681oqKVNo3 ○ مجلد ورش العمل المشتركة : https://drive.google.com/drive/folders/1LL5_hsElZR4zQv62Wt1TxU2_M8Gv1Jja ❀ رابط الانظمام لمجموعة الأكسس جروب (واتسأب) : https://chat.whatsapp.com/HQvOPGrkASM2guvAotHXCw ❀ قناة أكسس العرب (اليوتيوب) : http://www.youtube.com/@ArabAccessGroup ❀ مواضيع اللقاء : المقدمة الإلهام البصري pinterest الإلهام البصري Google اختيار الألوان المناسبة تطبيق الألوان على قاعدة البيانات الأيقونات النصية الأيقونات الأيقونات - برنامج Pichon إضافة الصور المفرغة PNG تصميم الواجهات عن طريق PowerPoint حفظ التصميم من الباوربوينت واستيراده إلى الأكسس تصميم نموذج تسجيل الدخول إضافة التفاعل البصري للعناصر تفاعل بصري بالتنسيق الشرطي التأثيرات البصرية التي تطبق على الأزرار الخطوط في النماذج وتنسيقاتها الأنماط اللونية أنماط الخطوط مشاهدة ممتعة 😊🌷
    2 points
  17. ملاحظة بسيطة للأخ @أحمد العيسى في طريقة الأخ @Foksh إعتبر أن أي رقم قومي يبدأ بالرقم 2 فسيكون صاحبه من مواليد ماقبل عام 2000 مالم فسيكون من بعد عام 2000 وهذا لم يؤخذ بالإعتبار في الدالة Date_Sex_Province صراحة لا أعلم إذا ما كانت هذه الملاحظة ذات أهمية أم لا ولكن ذكرتها كتنبيه عن الاختلاف بين الحلين فإذا كان الإختلاف مهم فسيكون تأثيره كبير تحياتي
    1 point
  18. شكراً أخى Foksh على سرعة الرد تم المطلوب ،وشكراً لك لكن للمعرفة فقط ، لو تم استخدام هذه الدالة من الوحدة النمطية المرفقة Date_Sex_Province([National_Nr], 1) كيف سيكون التصميم ؟
    1 point
  19. هذا صحيح عموما الكرة الان في ملعب صاحب الموضوع لإختبار الحلين وإعتماد مايناسبه او الافادة بأي ملاحظات
    1 point
  20. @ابو جودي والبتعله الحوت اشرايك بشعار 😂 1- تنفيذ امر الاستخراج والطباعة صامت من غير صندوق الرسالة اجراء الطباعة وعد الصفحات انتظار فقط 2- كود مبسط ثلاث حقول 'Selected Objecit Print = (1) or PDF = (2) حدد النوع Type_Object = 2 'Name_report اسم التقرير reportName = "report1" 'If PDF Out Path File مسار الاستخراج pdfPath = CurrentProject.Path & "\" & reportName & "_" & Format(Now(), "yyyymmdd_hhnnss") & ".pdf" فقط Private Sub Comando0_Click() '=============================( Msgbox Dim strMsg_Give_Nmae As response Dim Run_Cod1 As Integer Dim MsG1 As String Dim MsG2 As String Dim MsG3 As String Dim iprgrs As Integer Dim PDF_Print_Finction As String Dim path_pdf As String Dim Report_T As String Dim Type_Object As String Dim reportName As String Dim pdfPath As String Dim totalPages As Long 'Selected Objecit Print = (1) or PDF = (2) Type_Object = 2 'Name_report reportName = "report1" 'If PDF Out Path File pdfPath = CurrentProject.Path & "\" & reportName & "_" & Format(Now(), "yyyymmdd_hhnnss") & ".pdf" '=========================================================================================================== '*****************(Only_Code)***************************** ' جلب إجمالي الصفحات للتقرير totalPages = GetReportPageCount(reportName) Me.ProgressBar3.Min = 0 Me.ProgressBar3.Max = totalPages Me.ProgressBar3.Value = 0 If Not ReportExists(reportName) Then MsG2 = "Sand Massage !" MsG1 = "تم الغاء التنفيذ " MsG3 = " لالتقرير غير موجود ولم نتمكن من العثور علية " MyMsgBox (MsG3), (MsG2), (MsG1), msg_Erorr_Job, Btn_Non, Arabic_Center ', True, 2.5 Exit Sub End If Me.Comando0.Caption = "جار التنفيذ..." Me.xc.Caption = "اجمالي الصفحات.." & totalPages For iprgrs = 1 To 6 'totalPages - 1 Me.ProgressBar3 = iprgrs Next If Type_Object = 2 Then Call externallyPDFSilent(reportName, pdfPath) Me.Comando0.Caption = "تصدير التقرير" End If If Type_Object = 1 Then Call externallyPrintSilent(reportName, pdfPath) Me.Comando0.Caption = "طباعة التقرير صامت" End If ' تحديث ProgressBar (هنا تحديث مبدئي، يمكنك توسعتها في حالة التصدير صفحة صفحة) Me.ProgressBar3.Value = totalPages Me.xc.Caption = "جاري المعالجة... 100%" Call externallyPrintSilent(reportName, pdfPath) If Dir(pdfPath) <> "" Then If Type_Object = 2 Then MsG2 = "Sand Massage !" MsG1 = "تم التنفيذ تصدير PDF " MsG3 = " لا يتوفر الان عملية تأمين الالي للبيانات بتاريخ واليوم " MyMsgBox (MsG3), (MsG2), (MsG1), msg_OK, Btn_Non, Arabic_Center ', True, 2.5 End If If Type_Object = 1 Then MsG2 = "Sand Massage !" MsG1 = "تم التنفيذ الطباعة " MsG3 = " لا يتوفر الان عملية تأمين الالي للبيانات بتاريخ واليوم " MyMsgBox (MsG3), (MsG2), (MsG1), msg_OK, Btn_Non, Arabic_Center ', True, 2.5 End If ' MsgBox "تم إنشاء ملف PDF بنجاح:" & vbCrLf & pdfPath & vbCrLf & _ ' "إجمالي الصفحات: " & totalPages, vbInformation End If End Sub تحميل المرفق https://www.mediafire.com/file/wrl147f1wl7uwmk/Silent-Print-with_Out_PDF.rar/file
    1 point
  21. تم إضافة إستعلام تحديث لتنفيذ العمل تحياتي base_mat.rar
    1 point
  22. وعليكم السلام ورحمة الله وبركاته مستر فوكش 🙂 دائما متميز ماشاء الله عليك .. طرح استثنائي تبارك الله .. أنا نسختي مفعلة ولكن ما تظهر مدة التفعيل بالأعلى
    1 point
  23. أنت لم توضح هل تريد الإحتفاظ بهذا الترقيم في الجدول أم تريده كحقل محتسب في الإستعلام وإذا كنت تريد الإحتفاظ به في الجدول فهل تريد أن يتم الترقيم أثناء الإدخال أم إجراء تحديث لعدة سجلات عموما هذا حل على السريع لإظهار الترقيم في إستعلام ويمكنك من خلاله مشاهدة الترقيم في الاستعلام أو تحويله إلى إستعلام تحديث لتحديث قيمة عمود الترقيم بقيمة العمود المحتسب تحياتي base_mat.rar
    1 point
  24. السلام عليكم أخي @Foksh بارك الله فيك على هذه الأداة بعد التجربة على نسخة أوفيس 2016 عربي نسخة 32 عند تشغيل الملف تظهر رسالة موضحة في الصورة 1 وعند الضغط على زر ok يفتح الملف - لكن عند إضافة ملف من أجل تحويله تظهر رسالة أخرى موضحة في الصورة 2
    1 point
  25. حضرتك انا نفذت اللي حضرتك شرحتو لي لعلني اكون توصلت لمضمون التنبيه شكرا على المعلومة
    1 point
  26. ممكن حضرتك توضح لي كيفية منح الاخيار
    1 point
  27. جزاك الله خيرا أخي الكريم وأحسن إليك تم المطلوب بحمد الله
    1 point
  28. وعليكم السلام ورحمة الله وبركاته ،، ما شاء الله عليك ، أبدعت في تحوير الأفكار لما يتناسب مع مطلبك بما انك ستقوم بتضمين الرقم الفريد في الأكواد ، بدلاً من التسمية للزر . جرب هذا التعديل على المديول ليصبح أبسط قليلاً .. Public Sub SelectByMSNO(frm As Form, listName As String, msno As Long) Dim lb As ListBox Dim i As Long Set lb = frm.Controls(listName) If lb.ListCount = 0 Then MsgBox "القائمة فارغة", vbExclamation + vbMsgBoxRight, "" Exit Sub End If For i = 0 To lb.ListCount - 1 If Nz(lb.Column(0, i), 0) = msno Then lb.Value = lb.ItemData(i) Exit Sub End If Next i MsgBox msno & " :لم يتم العثور على السجل", vbInformation + vbMsgBoxRight, "" End Sub وبنفس الأسلوب ، سيتم الاستدعاء بتمرير النموذج الحالي ، واسم الليست بوكس ، والرقم الفريد فقط ( كما فعلت في فكرتك وتعديلك الجميل SelectByMSNO Me, "Msaneed_List", 786 وما شاء الله عليك ، لن تحتاج لملف مرفق
    1 point
  29. أنصح بتعديل بسيط في معادلة جمع الأيام عندما يكون مجموع المدد لأكثر من فترتين ويكون فيها مجموع خانة/عمود الأيام كبيرا كالتالي: =(O37+K37)*360 + (N37+J37)*30 + ROUND((M37+I37)/365*360,0) بدلا من: =(O37+K37)*360 + (N37+J37)*30 + (M37+I37)
    1 point
  30. تعديل علي مديول GeUUIDS لضمان ان النتيجه دئما 36 حرف https://drive.google.com/file/d/16DTxE6vQ87Hh74IY341_VHCnerjzEC7q/view?usp=sharing FinalTestZatca-v1.3.rar
    1 point
  31. وعليكم السلام ورحمة الله وبركاته .. بداية لي عدة استفسارات مهمة :- هل يوجد في الليست بوكس قيم قد تتشابه ، يعني لنفترض جدلاً هل القيمة "ابن عباس" قد تتكرر بأكثر من تسميةمختلفة ؟؟؟ الزر مصدر تسميته هل هو متغير ؟ على العموم ، سأقدم لك فكرتين ,, الأولى بسيطة وتتعامل مع السجلات البسيطة إلى حد ما ( بطيئة مع السجلات الكثيرة جداً ) Private Sub Goms5_Click() Dim i As Long Dim searchText As String Dim colIndex As Integer searchText = Me.Goms5.Caption colIndex = 1 For i = 0 To Me.Msaneed_List.ListCount - 1 Me.Msaneed_List.Selected(i) = False Next i For i = 0 To Me.Msaneed_List.ListCount - 1 If InStr(1, Me.Msaneed_List.Column(colIndex, i), searchText, vbTextCompare) > 0 Then Me.Msaneed_List.Selected(i) = True Exit For End If Next i End Sub الثانية تعتمد على اسلوبين + لو كان هناك أكثر من قيمة مطابقة يتم التنقل بينها عند كل نقرة على الزر .. Private Sub Goms5_Click() Static lastIndex As Long Dim s As String, i As Long Dim matches As Collection Set matches = New Collection s = Trim(Nz(Me.Goms5.Caption, "")) If s = "" Then Exit Sub With Me.Msaneed_List For i = 0 To .ListCount - 1 If InStr(1, Nz(.Column(1, i), ""), s, vbTextCompare) > 0 Then matches.Add i End If Next i If matches.Count = 0 Then MsgBox " : لم يتم العثور على" & s, vbInformation + vbMsgBoxRight, "" Exit Sub End If Dim pos As Long pos = 1 If lastIndex > 0 Then For i = 1 To matches.Count If matches(i) = lastIndex Then pos = IIf(i = matches.Count, 1, i + 1) Exit For End If Next i End If .Value = .ItemData(matches(pos)) lastIndex = matches(pos) End With End Sub ويمكن الإستفادة من الفكرة في أكثر من نموذج أو أزرار ضمن نفس النموذج بجعلها دالة عامة يتم استدعائها من خلال تحديد اسم الزر واسم الليست بوكس . بحيث في مديول منفصل ، نستخدم الدالة التالية :- Option Compare Database Option Explicit Private dictLastIndex As Object Public Sub SelectNextMatch(frm As Form, listName As String, searchText As String) Dim lb As ListBox Dim i As Long Dim matches As Collection Dim key As String Dim pos As Long, lastIndex As Long Set lb = frm.Controls(listName) searchText = Trim(Nz(searchText, "")) If searchText = "" Then Exit Sub If dictLastIndex Is Nothing Then Set dictLastIndex = CreateObject("Scripting.Dictionary") End If key = frm.Name & "|" & listName & "|" & searchText Set matches = New Collection For i = 0 To lb.ListCount - 1 If InStr(1, Nz(lb.Column(1, i), ""), searchText, vbTextCompare) > 0 Then matches.Add i End If Next i If matches.Count = 0 Then MsgBox " : لم يتم العثور على" & searchText, vbInformation + vbMsgBoxRight, "" Exit Sub End If pos = 1 If dictLastIndex.Exists(key) Then lastIndex = dictLastIndex(key) For i = 1 To matches.Count If matches(i) = lastIndex Then pos = IIf(i = matches.Count, 1, i + 1) Exit For End If Next i End If ونستدعيها في الزرين على سبيل المثال ضمن نفس النموذج :- Private Sub Goms5_Click() SelectNextMatch Me, "Msaneed_List", Me.Goms5.Caption End Sub Private Sub Goms10_Click() SelectNextMatch Me, "Msaneed_List", Me.Goms10.Caption End Sub الملف يحتوي على الأفكار الثلاثة :- LIST.zip
    1 point
  32. اخي الحبيب كن على يقين اني لن ابخل عليك بأي شيء من العلم حاولت كثيرا ولمرات عديدة .. ولكني لم اهتد الى طريقتك جدول التفاصيل حيرني كثيرا .. لن استطيع توجيهك ما دامت المعلومة ناقصة .. لديك بيع وشراء ومرتجعات وبالمقابل يوجد صناديق وكان الأفضل ان يعطي المثال وصفا دقيقا لخطوات العمل ولكن من خلال طلبك الغريب اعلاه لدي تصور لتحقيق ذلك : رأي او احدى الأفكار : التحويلات بين الصناديق تتم مثل عمليات البيع والشراء تماما وهذا يعني ان الصناديق ستدرج في مكانين : 1- ضمن قائمة الصناديق 2- ضمن قائمة العملاء والموردين ولكن سيظهر هنا ازدواجية ومخالفة لأساسات قواعد البيانات الفكرة الثانية : هو ان ترفق عملا بسيطا لمحاولاتك .. بيانات كافية .. منها نفهم جيدا ما تفكر به .. ومنها قد نساعدك في التغلب على هذه المشكلة
    1 point
  33. لمحة عن الإضافات التي تم تطويرها وتحديثها في النسخة الأخيرة .. والنشر خلال فترة قصيرة جداً ( بسبب الإنشغال في مشاريع أخرى )
    1 point
  34. تمام يااستاذ ياكبير تعبت حضرتك معايا كتير
    1 point
  35. اعتقد تعنى الفورم1 اظهار العناوين في LISTBOX.xlsm
    1 point
  36. آمين. فالدعاء بظهر الغيب مستجاب
    1 point
  37. جزاك الله خير - تمام
    1 point
  38. في طلبك الاول TextBox8 فقط والان تغير الطلب الى الكمبوبكس يمكن اظافة التالي الى UserForm_Initialize Dim ctrl As Control For Each ctrl In Me.Controls If TypeName(ctrl) = "ComboBox" Then ctrl.Style = fmStyleDropDownList ctrl.Locked = False End If Next ctrl برنامج المراكز الطبية 30 اغسطس.xlsm
    1 point
  39. السلام عليكم اليك الملف المرشحين1.xlsb
    1 point
  40. هحاول اختصر لك الموضوع اولا القاعدة الخلفية هتغلق بكلمة سر قوية ثانيا القاعدة الامامية هتغلقها بكلمة سر (ممكن تحولها ايضا لقاعدة accde لاضافة طبقة حماية ^_^ ) هتعمل قاعدة اخري لفتح القاعدة الامامية وتكون accde وهي التى ستمرر كلمة السر للقاعدة الامامية وتفتحها هتلاقي مواضيع كثير وطرق كثير فقط ابحث واختر المناسب لك
    1 point
  41. وعليكم السلام ورحمة الله وبركاته اليك الملف واستبدله في مجلد جمع الفواتير الكود يتعامل مع اي عدد من الملفات امتدادها XLSM حسب ملفاتك المرفقه ويمكن تعديلها بالكود ان نغير الامنداد جرب الملف واعلمنى بالنتائج جمع.xlsm
    1 point
  42. بارك الله فيك استاذ هشام وزادك الله من فضله
    1 point
  43. 1 point
  44. وعليكم السلام-يمكنك استخدام هذه المعادلة =IF(AND($C2=DATE(2022,6,1),$A2="حلة",$B2="ثانية"),10000,5000) جلب العمولة بشروط1.xlsx
    1 point
  45. تفضل هذه بنواة 64 بت -بعد اذن جميع الأساتذة فالملف ليس به اى مشكلة فإن واجهتكم مشكلة فاعلم انها من عندك انت فلابد كما أخبرنا من تحميل الأداة والمكتبة الناقصة رابط تحميل السيلينيوم https://github.com/florentbr/SeleniumBasic/releases/download/v2.0.9.0/SeleniumBasic-2.0.9.0.exe رابط تحميل الدريفر الخاص بالسلينيوم https://chromedriver.storage.googleapis.com/102.0.5005.27/chromedriver_win32.zip الكروم درايفر لابد ان يكون اصداره مثل اصدار الكروم المصطب على جهازك نظام ادارة شؤون التلاميذ الاصدار 1.00.rar
    1 point
  46. عند كتابة رقم الشيت يقتصر البحث في الشيت المكتوب فقط Updated Sub Test() Dim lr1, lr2 Dim i Application.ScreenUpdating = False Cells(5, 1).CurrentRegion.Offset(1).ClearContents For i = IIf(Range("m3") = "", 1, Range("m3")) To IIf(Range("m3") = "", Sheets.Count, Range("m3")) If Range("m3") <> "" Then i = Range("m3").Value + 1 If Sheets(i).Name <> "ÇáÈÍË" Then lr1 = Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheets(Sheets(i).Name).Range("A3:L1800").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A2:L3"), CopyToRange:=Range("A" & lr1 & ":L" & lr1) Cells(lr1, 1).Resize(, 12).Delete lr2 = Cells(Rows.Count, 1).End(xlUp).Row + 1 If lr1 <> lr2 Then Range(Range("a" & lr1), Range("a" & lr1).End(xlDown)).Offset(, 12) = Sheets(i).Name End If: End If Next Range("I10").Select Application.ScreenUpdating = True End Sub
    1 point
×
×
  • اضف...

Important Information