نجوم المشاركات
Popular Content
Showing content with the highest reputation since 05/04/26 in مشاركات
-
اعرض الملف نظام تسجيل دخول احترافي، مع نظام صلاحيات متعدد المستويات السلام عليكم ورحمة الله وبركاته 🙂🖐 بفضل الله وتوفيقه أقدم لكم تصميم نظام تسجيل دخول + نظام صلاحيات متطور حاولت تبسيطه للمستخدم والمستفيدين منه لاحقا قدر المستطاع .. وسأبدأ بواجهة تسجيل الدخول المتواضعة : المزايا : حفظ بيانات دخول المستخدم (اختياري) الدخول مباشرة بمجرد كتابة كلمة المرور بشكل صحيح (تسريع عملية الدخول) ملاحظة : جميع كلمات المرور في البرنامج : 123 ثانيا الواجهة الرئيسية : يتم تطبيق الصلاحيات للمستخدم بمجرد تسجيل الدخول .. ثالثا : إدارة المستخدمين هنا يتم إدارة جميع ما يتعلق بمستخدمي البرنامج ( إضافة ، تعديل ، حذف ، تعيين الصلاحيات ) رابعا : إدارة مجموعات العمل والصلاحيات لكل مجموعة هنا يتم ضبط الصفحات المسموح لكل مجموعة دخولها والصلاحيات الخاصة بكل صفحة .. ومثل ماهو واضح يمكن إضافة النماذج أو إزالتها كما يحلو لك وبعد ضبط مجموعات العمل يتم تعيين كل مستخدم للمجموعة الخاصة به ، ويمكن عمل مجموعة خاصة لشخص واحد فالخيارات غير محدودة .. 🙂 الآن يمكنك الخروج من البرنامج ثم تجربة تسجيل الدخول باسم المستخدمين المسجيلين في البرنامج للاستمتاع بتجربة الصلاحيات الممنوحة لكل مستخدم 😊 وبعد الدخول للصفحات يتم تطبيق الصلحيات الخاصة بالنموذج أيضا .. وبقية الصلاحيات ستظهر حسب الزر الذي يتم الضغط عليه مزايا إضافية موجودة في البرنامج .. ولها علاقة بالأمان أيضا .. نظام النسخ الاحتياطي وله إعدادات خاصة به (نسخ احتياطي يدوي أو تلقائي ) وهو موجود في صفحة إعدادات البرنامج : ولكل مستخدم مجموعة خيارات يمكنه التحكم بها مثل ( تغيير كلمة المرور ، التشغيل عند إقلاع الجهاز ، إنشاء اختصار في سطح المكتب ، حفظ بيانات التسجيل لتسريع الدخول للبرنامج) هذه هي أهم الميزات التي يحتويها البرنامج 🙂 ولفتح البرنامج في وضع التصميم ، حتى هذي سهلة للمبرمج 😅🖐 في صفحة تسجيل الدخول وكذلك الصفحة الرئيسية يوجد هذا الزر الخاص بالمبرمج >> بعد الضغط عليه >> أدخل كلمة المرور : 123 ويمكنك تغييرها من الكود الخاص بالزر .. بتظهر لك هذي النافذة الخاصة بالمبرمج فقط : وأهم ما فيها : (1) عرض الشريط العلوي ونافذة الأكسس >> بعد تفعيله تحفظ وتشغل الماكرو وبتنفتح عندك واجهة الأكسس >> أعد تشغيل البرنامج من جديد للحصول على جميع الميزات. (2) اسم نموذج البداية >> وهو أو نموذج بيشتغل معاك في البرنامج >> وهذا يسهل على المبرمج تطبيق النظام على أي برنامج آخر 🙂 (3) اسم البرنامج (واللي ييظهر في الشريط العلوي للأكسس) : (4) رقم الإصدار (نسخة البرنامج) وتاريخها >> ويمكن الاعتماد عليها لتحديث البرنامج لاحقا .. (5) إدارة نماذج الصلاحيات >> وهي النماذج اللي ستسمح بإعطاء صلاحيات لدخولها للبرنامج .. وكذلك تعطي كل نموذج اسم صديق للمستخدم وسيتم استخدام المسمى الحقيقي للنموذج داخليا .. وهكذا أكون شرحت لكم أهم المميزات ويتبقى نقطة مهمة وهي : يمكن للمبرمج الآن الاستفادة من هذا الملف فهو قاعدة جاهزة لإنطلاق في تصميم برنامجك الخاص .. جميع الأكواد الخاصة بالصلاحيات ستجدها في الموديول التالي : وأهم ما ستحتاج معرفته في كيفية تطبيق الصلاحيات ذكرته في الملاحظات المكتوبة أول الموديول : ' (1) : لتطبيق صلاحية فتح النماذج وصلاحيات الإضافة والتعديل والحذف تضع الأسطر التالية أول الأكواد في حدث فتح النموذج '------------------------------------------------------------------------------- 'Private Sub Form_Open(Cancel As Integer) ' ' فحص صلاحة دخول النموذج ' Cancel = Not Permission_OpenForm(Me.Name, True) ' ' تطبيق صلاحيات : الإضافة / التعديل / الحذف ' Apply_Addition_Edits_Delete_Permissions (Me.Name) 'End Sub '------------------------------------------------------------------------------- ' (2) : لتطبيق صلاحيات الطباعة والاستيراد والتصدير داخل نموذج معين تكتب هذه الأسطر لمعرفة وجود الصلاحة من عدمها ' : وكل سطر من هذه الصلاحيات يرجع لك النتيجة كما يلي ' True : مسموح ' False : ممنوع '------------------------------------------------------------------------------- ' 1- فحص صلاحية الطباعة (True/False) ' Permission_Print(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها ' 2- فحص صلاحية الاستيراد (True/False) ' Permission_Import(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها ' 3- فحص صلاحية التصدير (True/False) ' Permission_Export(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها '------------------------------------------------------------------------------- والنماذج الموجودة في البرنامج مع أزرارها تم تطبيق الأكواد عليها بشكل عملي << راجعها وأدرسها لمعرفة كيفية عملها .. وهي سهلة يسيرة بفضل الله 🙂 وهذا مثال عملي لتطبيق الصلاحية على زر الطباعة (فتح التقرير) مثلا : وهكذا بقية الصلاحيات (اطلع على بقية الموديول) تم تحويلها لأسطر قليلة بسيطة للاستفادة منها بكل يسر .. 🙂 :: 🌹 وآخر دعوانا أن الحمد لله رب العالمين 🌹 :: صاحب الملف Moosak تمت الاضافه 05/12/26 الاقسام قسم الأكسيس6 points
-
برنامج صغير خفيف .. يخدم الايجار اليومي وغيره ويصلح لأي خدمة ايجارات قابل للتطوير بمجرد تنفيذ اجراء الايجار يطبع فاتورة استلام .. وعند تنفيذ اجراء الارجاع يطبع فاتورة بالمبالغ المستحقة حاليا هذه الفواتير تفتح كتقارير يتم عرضها .. وهي مصممة للعمل على الطابعة الحرارية امل ان تجدوا المتعة والفائدة كلمة المرور = 1 Equps.rar6 points
-
السلام عليكم ورحمة الله وبركاته 🙂🖐 يقول المثل : أن تأتي متأخرا خير من أن لا تأتي 😅✌ بعد جهد جهيد إنتهيت من تصميم نظام تسجيل دخول + نظام صلاحيات متطور كلما أخطو فيه خطوة أجد أنه ناقص وتطلع أفكار جديدة .. 😅👊 لذلك قلت سأنزلها كما هي الآن .. حاولت تبسيطه للمستخدم والمستفيدين منه لاحقا قدر المستطاع .. وسأبدأ بواجهة تسجيل الدخول المتواضعة : المزايا : حفظ بيانات دخول المستخدم (اختياري) الدخول مباشرة بمجرد كتابة كلمة المرور بشكل صحيح (تسريع عملية الدخول) ملاحظة : جميع كلمات المرور في البرنامج : 123 ثانيا الواجهة الرئيسية : يتم تطبيق الصلاحيات للمستخدم بمجرد تسجيل الدخول .. ثالثا : إدارة المستخدمين هنا يتم إدارة جميع ما يتعلق بمستخدمي البرنامج ( إضافة ، تعديل ، حذف ، تعيين الصلاحيات ) رابعا : إدارة مجموعات العمل والصلاحيات لكل مجموعة هنا يتم ضبط الصفحات المسموح لكل مجموعة دخولها والصلاحيات الخاصة بكل صفحة .. ومثل ماهو واضح يمكن إضافة النماذج أو إزالتها كما يحلو لك وبعد ضبط مجموعات العمل يتم تعيين كل مستخدم للمجموعة الخاصة به ، ويمكن عمل مجموعة خاصة لشخص واحد فالخيارات غير محدودة .. 🙂 الآن يمكنك الخروج من البرنامج ثم تجربة تسجيل الدخول باسم المستخدمين المسجيلين في البرنامج للاستمتاع بتجربة الصلاحيات الممنوحة لكل مستخدم 😊 وبعد الدخول للصفحات يتم تطبيق الصلحيات الخاصة بالنموذج أيضا .. وبقية الصلاحيات ستظهر حسب الزر الذي يتم الضغط عليه مزايا إضافية موجودة في البرنامج .. ولها علاقة بالأمان أيضا .. نظام النسخ الاحتياطي وله إعدادات خاصة به (نسخ احتياطي يدوي أو تلقائي ) وهو موجود في صفحة إعدادات البرنامج : ولكل مستخدم مجموعة خيارات يمكنه التحكم بها مثل ( تغيير كلمة المرور ، التشغيل عند إقلاع الجهاز ، إنشاء اختصار في سطح المكتب ، حفظ بيانات التسجيل لتسريع الدخول للبرنامج) هذه هي أهم الميزات التي يحتويها البرنامج 🙂 ولفتح البرنامج في وضع التصميم ، حتى هذي سهلة للمبرمج 😅🖐 في صفحة تسجيل الدخول وكذلك الصفحة الرئيسية يوجد هذا الزر الخاص بالمبرمج >> بعد الضغط عليه >> أدخل كلمة المرور : 123 ويمكنك تغييرها من الكود الخاص بالزر .. بتظهر لك هذي النافذة الخاصة بالمبرمج فقط : وأهم ما فيها : (1) عرض الشريط العلوي ونافذة الأكسس >> بعد تفعيله تحفظ وتشغل الماكرو وبتنفتح عندك واجهة الأكسس >> أعد تشغيل البرنامج من جديد للحصول على جميع الميزات. (2) اسم نموذج البداية >> وهو أو نموذج بيشتغل معاك في البرنامج >> وهذا يسهل على المبرمج تطبيق النظام على أي برنامج آخر 🙂 (3) اسم البرنامج (واللي ييظهر في الشريط العلوي للأكسس) : (4) رقم الإصدار (نسخة البرنامج) وتاريخها >> ويمكن الاعتماد عليها لتحديث البرنامج لاحقا .. (5) إدارة نماذج الصلاحيات >> وهي النماذج اللي ستسمح بإعطاء صلاحيات لدخولها للبرنامج .. وكذلك تعطي كل نموذج اسم صديق للمستخدم وسيتم استخدام المسمى الحقيقي للنموذج داخليا .. وهكذا أكون شرحت لكم أهم المميزات ويتبقى نقطة مهمة وهي : يمكن للمبرمج الآن الاستفادة من هذا الملف فهو قاعدة جاهزة لإنطلاق في تصميم برنامجك الخاص .. جميع الأكواد الخاصة بالصلاحيات ستجدها في الموديول التالي : وأهم ما ستحتاج معرفته في كيفية تطبيق الصلاحيات ذكرته في الملاحظات المكتوبة أول الموديول : ' (1) : لتطبيق صلاحية فتح النماذج وصلاحيات الإضافة والتعديل والحذف تضع الأسطر التالية أول الأكواد في حدث فتح النموذج '------------------------------------------------------------------------------- 'Private Sub Form_Open(Cancel As Integer) ' ' فحص صلاحة دخول النموذج ' Cancel = Not Permission_OpenForm(Me.Name, True) ' ' تطبيق صلاحيات : الإضافة / التعديل / الحذف ' Apply_Addition_Edits_Delete_Permissions (Me.Name) 'End Sub '------------------------------------------------------------------------------- ' (2) : لتطبيق صلاحيات الطباعة والاستيراد والتصدير داخل نموذج معين تكتب هذه الأسطر لمعرفة وجود الصلاحة من عدمها ' : وكل سطر من هذه الصلاحيات يرجع لك النتيجة كما يلي ' True : مسموح ' False : ممنوع '------------------------------------------------------------------------------- ' 1- فحص صلاحية الطباعة (True/False) ' Permission_Print(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها ' 2- فحص صلاحية الاستيراد (True/False) ' Permission_Import(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها ' 3- فحص صلاحية التصدير (True/False) ' Permission_Export(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها '------------------------------------------------------------------------------- والنماذج الموجودة في البرنامج مع أزرارها تم تطبيق الأكواد عليها بشكل عملي << راجعها وأدرسها لمعرفة كيفية عملها .. وهي سهلة يسيرة بفضل الله 🙂 وهذا مثال عملي لتطبيق الصلاحية على زر الطباعة (فتح التقرير) مثلا : وهكذا بقية الصلاحيات (اطلع على بقية الموديول) تم تحويلها لأسطر قليلة بسيطة للاستفادة منها بكل يسر .. 🙂 وأخيرا تحميل البرنامج :: Moosak Login System with permissions 1.0.zip :: وآخر دعوانا أن الحمد لله رب العالمين ::6 points
-
استكمالاً للموضوع القديم هنا ، تم بحمد الله وفضله ؛ إطلاق النسخة الأولى من اللعبة الشهيرة الدومينو ، ولكن بنكهتي التي تعودت عليها 😊 .. اللعبة لن تحتاج شرح عنها ، سوى كيفية اللعب .. ضبط الإعدادات :- في نموذج البداية والمخصص لإعدادات اللعبة . انقر الزر لعبة محلية. اللاعب الأول = الخصم وهو الكمبيوتر . واللاعب الثاني هو أنت عزيزي اللاعب . من يبدأ اللعبة هو الذي يكون لديه حجر الدش الأكبر ( إن وجد ) ، أو اللاعب الذي لديه أكبر حجر . الرقم 100 هو رقم افتراضي للمجموع الذي سيكون الفائز من يصل إليه أولاً . نقاط الفوز = مجموع الأرقام في الحجارة التي في يد اللاعب الخسران . والفائز يحصل على مجموع النقاط هذه . صورة واجهة الإعدادات . كيفية اللعب على النسخة المحلية :- عند بدء اللعبة ، اللاعب الذي لديه أكبر حجر مزدوج ( الدش ) هو من يبدأ اللعب .. لمعرفة وظيفة كل زر فقط قف عليه لتعرف ظيفته في اللعبة ، وعدد الأزرار = 4 وهي :- زر بدء الجولة الجديدة . * زر سحب حجر من الكومة ( عندما لا يكون لديك او لدى الكمبيوتر حجر صالح للعب ) . * زر تسليم الدور . ويكون متاحاً عندما لا يكون لدى الكومة ( البنك ) حجارة ، وبالطبع عندما لا يكون لديك حجر صالح لتلعبه بينما الكمبيوتر أو اللاعب الآخر لديه حجر صالح للرمي . أما عند عدم وجود حجارة صالح للرمي مع كلا الطرفين ( ولم يتبق حجارة في الكومة - البنك - ) فتكون اللعبة قد أغلقت ، والنتيجة تحسم لصاحب العدد الأقل مجموعاً للحجارة بالفوز . * زر الغش 😁 ، وهو زر كشف حجارة الكمبيوتر . وعكسه زر الإخفاء . اللعب سيكون بالنقر المزدوج على الحجر الصالح للرمي بيدك . عند وجود حجر صالح للرمي باتجاهين ، لديك الحرية باختيار الجهة التي تريد رميه فيها بظهور مستطيل وهمي يمثل موقع الحجر . ( ستلاحظونه أثناء اللعب بسهولة و وضوح ) . صورة واجهة اللعبة . فيديو توضيحي لطريقة اللعب :- التحميل للإصدارين 32 و 64 من هنا . وقد تم رفعه على جوجل درايف لأن حجم الملف تقريباً بحدود 9 ميجا مع مجلد الصور .5 points
-
السلام عليكم الموقع https://zingl.github.io يعرض طريقة لعمل الباركود Code128, QR, Aztec, DataMatrix بالكود ويدون الاستعانة ببرامج خارجية. في الموقع مرفق اكسس (وقد عملت تعديل بسيط عليه لعمل الصور التالية ، والمرفق موجود في اسفل المشاركة) ، وهنا اعرض مثالين على العرض: . . طبعا Code128 غير مناسب للكلمات الطويلة. الكود يقوم بعرض الباركود داخل حقل نص Textbox ، وهو يستعمل Line لعمل الباركود : . المشكلة ان الاكسس يقوم بتنفيذ الامر Line على خلفية التقرير/النموذج ، وبعدها يقوم بعرض بقية الكائنات ، بمعنى ، اذا وضعنا كائن/حقل صورة خلف حقل نص الباركود ، فاننا لا نستطيع رؤية الباركود ، لأنه اصبح خلف الصورة. في الصورة التالية ، التقرير الاول هو ما تم عرضه سابقا ، بينما في التقرير الثاني وضعت صورة زرقاء خلف كائنات/حقول الباركود: . ونتيجة التقرير الثاني: . مع وجود الصورة في الخلف ، المطلوب اظهار الباركود على الصورة ، وبأي طريقة. من تجربتي ، لإظهار الباركود ، يجب وضعه في كائن/حقل صورة ، امام الصورة الخلفية. ارفق لكم من نفس الموقع ، مرفق اكسل كذلك. ومن موقع www.lebans.com ارفق قاعدة البيانات A2KPictureBoxVer35.accdb ، والتي بها نموذج و مكتبات قد تساعد الذكاء الاصطناعي بالعمل (نعم ، قد يحتاج الى مساعدتك في توجيهه). QR_barcode.accdb A2KPictureBoxVer35.accdb barcode.xlsm4 points
-
وعليكم السلام ورحمة الله وبركاته .. اعجبتني الفكرة ، و وددت المشاركة بالتالي .. ما عليك فعله بيدك حتى تنجح الفكرة .. في المديول :- الخطوة الأولى اذهب للدالة :- 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.mdb4 points
-
4 points
-
ممكن وبكل سهولة هذا البرنامج يسهل عليك أدخال الدرجات والتاريخ كذلك الشرح يطول ولكن ثق تماما أنك بمجرد أن تفتحه وتثبت الماكرو وتستخدمه ستفهم البرنامج ثم بعد التجربة أذا أردت أي توضيح نحن في الخدمة محرر الأكواد مفتوح ويمكنك التعديل عليه كما تريد الطريقة : افتح ملفك الذي تريد الأدخال فيه ثم افتح هذا الملف ثم اضغط على إحدى الأيقونتين (الدرجات أو التاريخ) وعندما يفتح الفورم انتقل مباشرة إلى ملفك الذي تريد الأدخال فيه ستجد أن الفورم ينتقل إلى الملف الجديد تفضل إدخال الدرجات والتاريخ.xls4 points
-
السلام عليكم ورحمة الله وبركاته.. تقبل الله طاعاتكم ، ومبارك على الجميع عيد الأضحى المبارك.. من باب السؤال والنقاش . هل من الممكن فعلاً أن نجعل التقرير يعرض الباركود ولكن بدل ما نرسم الباركود على أرضية التقرير ، أن يتم الرسم على أرضية عنصر صورة غير منضم 🤔 !! بمعنى آخر ، نستغل فكرة من المرفق الثاني ودمجها في النتيجة المطلوبة وبالتالي لن نحتاج صورة محفوظة أساساً !!! الفكرة تتلخص بالمرفق التالي بعد تشريح الأكواد وإزالة ما ليس له عمل لتطبيق الفكرة ، وإضافة الكلاس clsPictureBox واستغلال فكرة التنفيذ من الزر Start Draw with Mouse في المرفق A2KPictureBoxVer35 الأصلي من المشاركة الأولى ، بحيث جعلت الفكرة تقوم على رسم رمز الـ QR والـ Code128 😅 . وأشعر بأنها فكرة قد لا تكون ذكية .. ولكن كتجربة مختلفة عما تفضل به الأساتذة وجعلها تعمل على النواتين 32 و 64 :- QR_barcode.accdb3 points
-
التشاؤم قد يكون سبباً في جعلنا نهز الشوك في وروده لشم عبيره في لحظة من اللحظات 😅 أتمنى أن نجد التفاعل الذي نتمناه جميعاً3 points
-
وعليكم السلام -تفضل معادلتين لطلبك .اختر منهما ما تشاء =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.xlsx3 points
-
السلام عليكم 🙂 كانت لنا تجربة في عمل لقاءات لأعضاء مجموعة الأكسس على الواتسأب وتم نشر الراوابط على مستوى أوسع .. وهذه روابط الللقاءات التي تمت : ولكن تم التوقف عنها لاحقا للأسف بسبب ضعف المشاركة والحضور .. 💔3 points
-
بصراحة أنا رأيي مختلف فالطريقة الثانية سيكون التقرير فيها أخف لأنها لن تتطلب منك إنشاء تقرير إضافي وإضافة عنصر تحكم التقرير الفرعي هذا مثال لسيناريو محتمل سنفترض أن المطلوب تصميم تطبيق لإصدار البطائق وفق التصميم التالي عندها سنطلب ممن قام بتصميمها بإن يجعل منطقة الـ QRCode شفافة أو تحديدها كمربع 2×2 سم مثلا (للعلم انا قمت بهذه العملية بطريقة بدائية بإستخدام تطبيق Photos التابع لويندوز وستكون النتيجة أفضل إذا قام بها محترف فوتوشوب) قمت بإستخدام الصورة المعدلة فحصلت على النتيجة التالية ومرفق لكم المثال بعد التعديل تحياتي QR_barcode_New2.rar3 points
-
وانا كذلك ما كانت عندي مشكلة. وللاجابة على السؤال وحسب ما قرأت : النماذج/التقارير المنبثقة ، ولأنه بإمكانك اخراجها من اطار برنامج الاكسس ، فيتعامل معها الوندوز ، وتأخذ الاتجاه حسب اتجاه اعدادات الوندوز ، يميناّ او يساراّ ، بينما النماذج ولأنها داخل اطار الاكسس ، فيتم التعامل معها بإعدادات الاكسس ، فتتوسط عرض النموذج. عملت هذه الحيلة: 1. جعلت النموذج بدون برواز . 2. اضفت كائن مسمى واسميته lbl_Move_Form ، ويمكنك تغيير اتجاهه حسب رغبتك . 3. استخدمت الكود التالي لتحريك النموذج ، بعد النقر على هذا الكائن Dim moveFrm As Boolean Dim xDrag As Long Dim yDrag As Long ' Private Sub lbl_Move_Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) moveFrm = True xDrag = X yDrag = Y End Sub Private Sub lbl_Move_Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim xx As Long Dim yy As Long If moveFrm = True Then xx = Me.WindowLeft + X - xDrag yy = Me.WindowTop + Y - yDrag Me.Move xx, yy End If End Sub Private Sub lbl_Move_Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim xx As Long Dim yy As Long xx = Me.WindowLeft + X - xDrag yy = Me.WindowTop + Y - yDrag Me.Move xx, yy moveFrm = False End Sub . والنتيجة 1646.Form_Caption_Direction.mdb3 points
-
السلام عليكم كما في العنوان حسابات جارية للأموال الواردة والمنصرف لشركة محددة وفروعها ضمن حساب موحد للشركة اما ان كانت حاجتك مثل هذا ولكن تريد لكل فرع حسابه الخاص وقيود مزدوجة فستجد بغيتك هنا تحويلات من الصندوق واليه حساب الواردات حساب المصاريف تقرير تفصيلي حسب الطلب مجاميع وتفقيط رواتب الموظفين .. حسب الموظف الواحد وفرعه او حسب موظفي فرع او جميع موظفي الشركة ... فقط بضغطة زر مميزات البرنامج : 1- تقسيم قاعدة البيانات 2- اضافة شاشة دخول ومستخدمين الادمن كلمة المرور =78 البقية كلمة المرور =1 ولمسات اخرى وخصائص وخدمات تجدونها عند تصفح البرنامج المرفقات : النسخة الاولى .. يتبع تطوير AccUpPrg2.rar3 points
-
لم أعرف أي التقريرين تريد تطبيق طلبك عليه ولكني رأيت أن تقرير (مناداة قديم) هو الاقرب فقمت بتنفيذ الحل فيه ارجو أن يكون هذا الحل هو ماتريده بالضبط تحياتي 111.rar3 points
-
السلام عليكم ورحمه الله وبركاته بعد اذن استاذنا @عبدالله بشير عبدالله ممكن تستخدم الملفات المرفقه للاضافه الدول عندك كيفية اضافة معادلة البحث XLOOKUP و الدالة Xmatch لاوفيس 2019-2016- 2010 - 2007 – 2003 XFunctions.7z3 points
-
وعليكم السلام ورحمة الله وبركاته دالة XLOOKUP غير متوفرة في الإصدارات القديمة مثل Excel 2010 و2016 و2019، وهي موجودة فقط في Excel 2021 وما بعده، وكذلك في إصدارات Microsoft 365 احدى البدائل INDEX + MATCH3 points
-
شاشة فريدة وحيدة exe التصميم على vb6 علما انه يوجد في مكتبتي نسخة من هذه الشاشة على اكسس .. ولكني ارى ان هذه اخف وتعمل على اي جهاز وهذا هو الكود المسؤول باستخدام المعادلة الطبية الظاهرة هذه المعادلة قد يستفيد منها من يريد اضافة هذه الميزة الى برنامجه الطبي Private Sub Command1_Click() On Error Resume Next Dim Dday As Integer Dim i As Double Dim sc As Integer Dim d1 As Date Dim s1 As String Dim m1 As Date 'Calendar = vbCalGreg i = DateDiff("d", Date, Text1.Text) w1.Text = Abs(i \ 7) dx.Text = Abs(i Mod 7) m1 = DateAdd("d", 280, Text1) Dday = Weekday(m1) If Dday = 1 Then yom.Text = "الأحد" If Dday = 2 Then yom.Text = "الاثنين" If Dday = 3 Then yom.Text = "الثلاثاء" If Dday = 4 Then yom.Text = "الأربعاء" If Dday = 5 Then yom.Text = "الخميس" If Dday = 6 Then yom.Text = "الجمعة" If Dday = 7 Then yom.Text = "السبت" 'Calendar = vbCalHijri h1 = Format(m1, "YYYY/MM/DD") End Sub حساب الحمل.rar3 points
-
وعليكم السلام ورحمة الله وبركاته حسب علمي في Microsoft Excel لا يمكن الانتقال لخلية أخرى “تلقائيًا بالكامل” أثناء الكتابة بدون أي إجراء من المستخدم، لأن الخلية تبقى في وضع التحرير حتى يتم تأكيد الإدخال. لكن يمكن بطريقة اخرى عن طريق فورم بحيث يتم فتح الفورم ثم اختيار اول خلية المراد ادخال الدرجة اليها ويكون الامر تلقائيا والتكست بوكس يتعامل مع اي عمود بشرط تحديد بداية اول للدرجات والكود يتعامل مع درجتين مثل 15 او 45 فبمجرد الانتهاء من كتابة الرقم الثاني يتنقل المؤشر تلقائيا الى الخلية التي اسفل منها اذا وجدت درجات من رقم واحد مثل 7 يجب كتابتها في التكست بوكس 07 اذا كانت لديك درجات من 3 ارقام مثل 123 يتم التعديل بالكود في الجزء If Len(v) >= 2 Then يتم تعديل 2 الى 3 ادخال الدرجات.xlsb3 points
-
تفضل اخي منتصر .. التعديلات التي تمت :- الدالة DrawAndSaveBarcode أصبحت :- Public Sub DrawAndSaveBarcode(txt As TextBox, img As Image, barcodeType As String, Optional bVertical As Boolean = False) Dim saveDir As String Dim fullPath As String Dim parentReport As Report Dim saveMode As String Dim shouldSave As Boolean On Error Resume Next Set parentReport = img.Parent If parentReport Is Nothing Then Set parentReport = img.Parent.Parent On Error GoTo 0 saveMode = "NoSave" If Not parentReport Is Nothing Then saveMode = Nz(parentReport.OpenArgs, "NoSave") End If shouldSave = False If saveMode = "SaveAll" Or saveMode = "SavePage" Then shouldSave = True End If If shouldSave Then saveDir = CurrentProject.Path & "\QRImg\" If Dir(saveDir, vbDirectory) = "" Then MkDir saveDir fullPath = saveDir & barcodeType & "_" & txt.Value & ".bmp" Else fullPath = "" End If If LCase(barcodeType) = "qr" Then Call drawQuickResponseToImage(txt, img, savePath:=fullPath) ElseIf LCase(barcodeType) = "code128" Then Call drawCode128(txt, img, , bVertical, savePath:=fullPath) End If End Sub الإستدعاءات في الأزرار أصبحت :- Private Sub cmdOpenWNavSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , , "SavePage" End Sub Private Sub cmdOpenWOSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , , "NoSave" End Sub Private Sub cmdOpenWSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , , "SaveAll" End Sub Private Sub cmdSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , acHidden, "SaveAll" DoCmd.Close acReport, "rpt_BG_img_Barcode", acSaveNo MsgBox "بنجاح QRImg تم توليد وحفظ جميع الصور في مجلد", vbInformation + vbMsgBoxRight, "" End Sub وفي التقرير أصبحت التمرير كالآتي :- Private Sub Report_Open(Cancel As Integer) On Error Resume Next If Nz(Me.OpenArgs, "") = "SaveAll" Then Me.TxtPages.ControlSource = "=[Pages]" Else Me.TxtPages.ControlSource = "" End If On Error GoTo 0 End Sub 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 أتمنى أن يلبي ها التعديل المطلوب . طبعاً بالإستعانة بنموذجك أخي منتصر 😉 . QR_Barcode - 5.accdb2 points
-
السلام عليكم ورحمة الله وبركاته كل عام وحضراتكم بخير حقيقة حثني الشوق الي المرور بالمنتدي بعد غيبة طالت فمررت لاعيد علي الاحبة فجذب انتباهي هذا التحدي الذي اثار فضولي ورغم قطع أخي @Foksh مجال النقاش إلا إني احببت أن ادلي بدلائي القاصرة وفكرة ربما تكون لم تطرق في مجال نقاش الموضوع من الأساتذة الكرام. الفكرة هو تحويل الكتابة من التقرير الي الكتابة علي كائن صورة - هذا الكائن المستعصي علي التعديل إلا ان المرفق الخاص بـ labins لفت الانتباه الي خاصية هامة في كائن الصورة DIB التي يمكن من خلالها حقن كائن الصورة بمجموعة من الداتا علي هيئة بايتس للرسم في اطار الصورة الفكرة كانت تحويل الخطوط المرسومة الي صورة ترسم بالذاكرة دون الحاجة الي حفظ صور خارجية ثم حقن كائن الصورة بالتقرير بالبايتس الموجودة بالذاكرة وكانت النتيجة كما يلي والمرفق بالاسفل لا ادعي انه اجتهاد محض مني ولكن هو ذلك الذكاء الاصطناعي الذي ابتلينا به او ان شئت قل هو الذي ابتلي بنا 😀 والمرفق بالاسفل ابقيت علي المودلز الاصلية والتي تم التعديل عليها اضفت اليها كلمة new قبل اسمها لتسهل عملية المقارنة وافردت مدل مستقل لرسم الصورة بالذاكرة ما استعصي علي هو ضبط ارتفاع code128 وجزاكم الله خيرا QR_barcode.accdb2 points
-
هذا يمكن حله بتعديل خاصية Size Mode للصورة بدل Zoom إجعلها Stretch أما فيما يخص العمل ككل فلا غبار ولكني رأيت أن فرض حفظ الصورة على المستخدمين فكرة لن يحبذها الجميع لذلك فكرت أن أعطي التطبيق مرونة أكثر ليناسب أغلب المستخدمين إن لم يكن جميعهم لذلك وبعد إذن الأخ @Foksh قمت بإضافة نموذج فيه أربعة أزرار لفتح التقرير في أربع حالات 1- فتح التقرير بدون حفظ للصور 2- حفظ الصور بدون فتح التقرير 3- فتح التقرير مع حفظ جميع الصور عند الفتح 4- فتح التقرير مع حفظ الصور بشكل فردي أثناء التنقل من وجهة نظري أن هذه هي جميع الخيارات التي قد يحتاجها أي مستخدم لذا يمكن لأي شخص الإستفادة مما جاء في التعديل لتطبيق الخيار الذي يفضله ولو كان بإمكان الأخ @Foksh إضافة هذه الخيارات كمعلمة لإختيار أحدها وتنفيذ الأمر مباشرة سيكون أفضل تحياتي QR_Barcode - 4.accdb2 points
-
يعني انت تريد تنظيف الأكواد من الاعتماد على 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.accdb2 points
-
بالحل المقدم من الأخ @Foksh ينطبق المثل "قطعت جهيزة قول كل خطيب"2 points
-
تم التعديل و تجريب الكل . تفضل التعديل. Printable ribbon - Reports and forms-1.rar2 points
-
يا اهلا وسهلا بك ظاهرا ، ويا اهلا بك متابعا صامتا 🙂 المنتدى مثل الدكان ، تدخل فيه صامتاً لترى البضاعة ، او تدخل وتشتري ونراك مساهماً 🙂2 points
-
مقترح الاستاذ منتصر الانسي @منتصر الانسي ممتاز جدا و ممكن يكون فعلا بداية جيده لتطبيق هذه الاجتماعات و كذلك مقترح الاستاذ موسي @Moosak لذلك سأقوم باختيار احد الموضوعات التي سمكن لي ان اقوم بعمل مادة علمية . و لكن محتاجين ان تكون هذه المشاركات التي ستؤدي الي الاجتماعات الشهري لها طابع خاص غير المشاركات العادية لذلك أقترح على حضراتكم ان تكون مثل مشاركات التحديات - لا اعرف الكيفية و لكن البركة في حضراتكم-2 points
-
إسمحوا لي بأن أدلو بدلوي في هذا الموضوع بحيث لن أكون متفائل كالأخ @mohammed farhat او متشائم كالأخ @Foksh وأنما أقدر أقول أكثر واقعية الآن إذا ما رجعنا للغاية التي تم من أجلها إنشاء منتديات أوفيسنا وموفع مجموعة مستخدمي أكسس نجد أن أوفيسنا حاله كحال جميع المنتديات العالمية مثل منتدى Microsoft Access Help Center لن تجده يركز على العروض التقديمية لأنه في الأساس قد أنشئ ليجد فيه المستخدم المبتدئ ضالته عندما يريد التعلم أو إيجاد حل لمشكلة تواجهه لذا فستجد أن أغلب أعضاؤه إما أشخاص يطلبون معلومات أو حلول (المبتدئين) أو أشخاص (وهم الأكثر خبرة) يحاولون قدر ما أمكنهم الإجابة على هذه التساؤلات وأغلب أعضاء المنتدى هم من الهواة أي أنهم غير دارسين للبرمجة بل تجد أغلبهم إما معلمين أو محاسبين أو إداريين أي أن تخصصاتهم العلمية هي تخصصات مالية أو إدارية وليست برمجة والأهم من كل هذا أن القائمين على المنتدى هم أشخاص يقومون بعمل تطوعي لايرجون منه إلا الثواب والاجر من الله. على الجانب الآخر فنجد أن موقع مجموعة مستخدمي أكسس هو موقع عالمي (مهمته الأساسية هي العروض التقديمية عبر النت) وهذا يعني (أن القائمين عليه يعملون بدوام جزئي أو كامل) وعالبية أعضائه (خصوصاً من يقدمون هذه العروض) هم من المطورين الذين يقومون بتطوير منتجات مايكروسوفت أو من الحاصلين على لقب MVP من مايكروسوفت لذلك ستجد أن المواضيع التي يقدمونها هي مواضيع إما أنها تختص بالتحديثات المستقبلية التي تقوم بها مايكروسوفت أو مواضيع متقدمة تهم الأشخاص الأكثر خبرة وإحترافية فلو رجعنا الى الموقع او حتى للقائمة التي ذكرها الاخ محمد ستجد أن المواضيع تناقش خارطة طريق تحديثات اكسس أو إستخدام الذكاء الصناعي مع اكسس أو ربط أكسس مع SQL Server... إلخ لذلك عندما نجد أن هناك مبادرات مثل هذه المبادرة أو مثل مبادرة الأخ @Moosak فيجب علينا تشجيعها ودعمها ولكن في نفس الوقت لانتوقع أن يتم التفاعل من جميع الأعضاء فهناك من سيكون غير متفرغاً في وقت العرض ومنهم من لن يكون مهتم بموضوع العرض وعدد لابأس منهم لن يستوعبوا الموضوع لأن مستواه أعلى من إمكانياتهم .... وغيرها من الأسباب ولكن في الأخير (وهذه أهم نقطة يجب التركيز عليها) سنكون قد ربحنا مادة علمية ستكون مرجعاً هاماً وباللغة العربية لكل باحث يريد أن يتعلم أكسس . خلاصة القول والذي أريد إيصاله أنه يمكننا البدء بإنشاء آلية عمل تشبه التحديات الشهرية ولكن بطريقة عكسية فبدل أن يتم ترشيح المواضيع سيقوم كل من يجد نفسه قادراً على إعداد مادة علمية لموضوع معين (أو أكثر) بإنشاء منشور للإعلان عن هذا الموضوع والتاريخ والوقت الذي سيتم فيه العرض وعلى كل من يجد في نفسه الرغبة المشاركة في الحضور أن يبدي رغبته عن طريق الرد على هذا المنشور وإذا رأى صاحب المنشور أنه قد حصل على العدد الكافي يقوم بتأكيد الموعد وطريقة المشاركة مالم فيتم إغلاقه وبهذا يوفر على نفسه التعب والإحباط .2 points
-
سلام عليكم اخي علي محمد علي اشكرك على الرد الكافي والمعادلة التي صلحت معي هي MIN(IF(($C$7:$C$32=$M7)*($G$7:$G$32=""),$E$7:$E$32)) جزاك الله خيرا وجعلها في ميزان حسناتك والسلام عليكم ورحمة الله تعالى وبركاته =MIN(IF(($C$7:$C$32=$M7)*($G$7:$G$32=""),$E$7:$E$32))2 points
-
أخي الفاضل .. عادةً تعطى النتيجة بـ للإجابة والمشاركة التي حققت طلب صاحب الموضوع ، لأسباب متنوعة . أهمها أشعار من يقرأ الموضوع بأن المشكلة قد تم حلها في الإجابة كذا . أيضاً كنوع من الدعم والشكر لصاحب الإجابة التي حققت طلبك كاملاً .. وأعلم أن اختيارك لإجابتك في هذا الموضوع هو عن دون قصد .. ولكن وجب مني التوجيه فقط لا غير ، بأن تصوب الإختيار لأستاذ عبدالله بشير عبدالله .2 points
-
2 points
-
السلام عليكم ورحمة الله وبركاته أود أن أحيطك علماً بأن جميع ما قمت به من حلول في المشاركات السابقة، كانت اجتهاداً شخصياً مني ، وذلك بسبب عدم شرح تفاصيل الطلب بدقة، وغياب الشكل المتوقع للمخرجات في بداية طلبك في اول مشاركة. وهنا أود أن أسترعي انتباهك ولجميع احبابنا اعضاء المنتدى الكريم لنقطة تنظيمية وإدارية هامة : عند طرح أي سؤال أو طلب فكرة برمجية مستقبلاً، من الأفضل دائماً تجهيز ورقة عمل (شيت) داخل الملف كنموذج تصوري للنتائج، أو شرح آلية ومكان ظهور المخرجات بدقة (مثل: شكل الجدول المطلوب، وتحديد الأعمدة، وهل تريدها في نفس الورقة أم في أوراق منفصلة؟). وهذا يضمن اختصار الوقت والجهد وتفادي كثرة التعديلات المتكررة. وتكون النتائج تماماً كما تريدها وبتنسيقها الصحيح وتفاعل اعضاء وخبراء المنتدى اكثر. على أية حال، حسب فهمي لطلبك في مشاركتك الأخيرة؛ فقد تم دمج الفعاليات النشطة واللجان الخاملة معاً في شيت واحد متكامل، كما تم تعديل عدد اسماء المشاركين الى 15 عمود في طلب سابق لكم. تقبل وافر شكري، وعميق تقديري لشخصكم . لا تتردد في طلب التعديل ان كان الحل لا يلبى طلبك مؤشر عمل اللجان1 (1).xlsb2 points
-
السلام عليكم ورحمة الله اتفضل تم عمل المطلوب علي حسب ما فهمت لعله يكون المطلوب مؤشر عمل اللجان.xlsm2 points
-
كما يقول المثل (تاهت ولقيناها) بإستخدام المثال الخاص بالأخ @jjafferr قمت بتعديل الحل كما ستجد في المرفق لاحظ أنه عند فتح المجلد ستجد أنه لايحتوي إلا على التطبيق قم بفتحه وتجربة إيقاف العجلة ستجده يعمل بشكل صحيح وعند إغلاق التطبيق لن يكون هناك أي ملف إلى جواره أعتقد بهذه الطريقة لن يلاحظ المستخدم أي شيئ إيقاف عجلة الماوس.rar2 points
-
فيديو تجسيد لفكرة اللعب على الشبكة المحلية :- طبعاً الفكرة قيد التطوير لإيجاد بدائل لموضوع الربط والجداول في القاعدة الخلفية للجداول ..2 points
-
يبدو انك فتحت البرنامج اولا على التصميم فضلا نزل الملف مرة اخرى ثم افتح البرنامج مباشرة وسوف يرتبط بقاعدة البيانات آليا وسيظهر اسم المستخدم تختاره من مربع التحرير ثم بعد ذلك يمكنك الدخول كيف شئت2 points
-
2 points
-
وعليكم السلام ورحمة الله وبركاته هذه الدالة تقوم بالمهمة ان شاء الله صعها في f3 ثم اسحب لاسفل تحياتي =IF(B3="فروج مسحب"; D3*E3*2.55; D3*E3*1.85)2 points
-
اختصارا للوقت ...... جرب المرفق التالي ..... يتم تكوين جدول بالمواد مهما كان عددها في الجدول <><><><><><><><><><><><> KAN_2.accdb2 points
-
2 points
-
بالنسبة للطلب الأول والذي سيبنى عليه الطلب الثاني .. جرب الفكرة المرفقة بالنقر على الزر Show/Hide &Fields 1.zip2 points
-
نعم الفاصلة العشرية موجود بالفعل في الفورم في الأعلى زر بلون أخضر مكتوب عليه 0.5 نصف درجة يضيف فقط 0.5 لأنها درجات لا يتعامل المعلمون مع غير هذا الكسر2 points
-
لدينا مثل في اليمن يقول (المليح يبطي 😁) وهذا كان نتاج عملك المليح كله راااائع أستاذ @Moosak إبدااااع بمعنى الكلمة وسأعتمد عليه من الان وصاعداً إن شاء الله لا ألومك والله فقد وقعت في نفس الحيرة ولكنك كنت أكثر عزيمة مني وأنهيته 😅 تحياتي2 points
-
عملت استعلام داخلي ( فرعي ) متمثل في هذه الشيفرة المرتبطة بالجدول الاساسي SELECT Max(D2.Reg_Date) FROM Daily AS D2 WHERE D2.كود = Daily.كود بحيث يمر على كل سجلات حسب رقم الكود لاستخراج التاريخ الاكبر2 points
-
2 points
-
كما هو ظاهر نقص في المكتبات لديك تفضل اعداد آخر ولكن اعتقد ستواجه المشكلة نفسها وايضا الفكرة على ملف اكسس Project1.rar حساب تاريخ الحمل.rar2 points
-
2 points
-
انا لم الاحظ أن هناك فرق قد يكون حجم البيانات عندك كبير مما يؤدي إلى ملاحظة هذا التأخير هناك خاصية مهمة يفضل إضافتها إلى الحقول التي يتم البحث عن بيانتها بكثرة وهي خاصية الفهرسة (في أكسس إسمها مفهرس أو Indexed) بالطريقة الموضحة بالصورة التالية الخيار المحدد هنا هو نعم مع السماح بتكرار نفس الإسم أكثر من مرة وإذا كنت متأكداً من عدم تكرار الإسم يمكن إختيار نعم بدون تكرار وهذا سيكون طبقة حماية إضافية حتى لايتم تكرار الأسماء الآن بعد أن تقوم بتعيين هذه الخاصية جرب عملية البحث هل ستكون أسرع؟ في حالتك هذه يفضل أن يكون النموذج الذي تبحث فيه إما نموذج فرعي أو نموذج مستقل عن نموذج البحث (النموذج الذي يتم إدخال نص البحث فيه) وهذا بسبب أنه يتم تنفيذ تحديث أو Requery للنموذج أثناء إدخال نص البحث ولكن لو كان البحث يتم بعد إدخال النص كاملاً فلن تكون هناك مشكلة عموما جرب تطبيق خاصية الفهرسة على المثال السابق وشوف النتيجة هل سيتحسن الأداء أم لا ومن ثم نشوف حل للطريقة الثانية التي قلت عليها (أن يكون نفس النموذج) تحياتي2 points
-
2 points