نجوم المشاركات
Popular Content
Showing content with the highest reputation since 10/19/26 in all areas
-
السلام عليكم وللفائدة نحن نستخدم هذا البرنامج لتوقيت الحصص يحمله كل معلم على جواله , يرن عند بداية وخروج الحصة لينبه المعلم https://drive.google.com/file/d/1w_1E_Z9f7-wrnqK6p-n_P0nbmZ3qhxWX/view?usp=sharing4 points
-
الى مستخدمى اكسيس باللغة العربية مرفق ملف كامل شامل برسائل الخطأ لقواعد بيانات اكسيس مترجم بواسطة AI Access error messages.rar3 points
-
السلام عليكم ورحمة الله يمكن ببساطة أن تغير معادلاتك من الشكل: مثلا B5&C5&D5= إلى الشكل B5&C5&1*D5= لجعل التاريخ قيمة عددية وليس نصا.3 points
-
اعرض الملف أداة إنشاء زري التدوير SpinButtons المخصصة {سلسلة الأدوات المساعدة المخصصة} أقدم لكم اليوم أداة جميلة وهي أداة تقوم بنفس الوظيفة التي يقوم بها أحد عناصر تحكم ActiveX وهو عنصر التحكم SpinButton ولكنها تتميز عنه في أنها تضيف إمكانية القيام بنفس العمل ولكن عن طريق لوحة المفاتيح وأيضا التحقق من صحة البيانات بالتالي فإذا كان عنصر تحكم SpinButton يخدم المستخدم الذي يفضل العمل بإستخدام الماوس فإن الأداة ستخدم جميع أنواع المستخدمين + المطورين إستخدام الأداة سهل وتم توضيح كل شيئ في الملف المرفق بإسم النسخة التوضيحية (أرجو قراءة كل التعليمات والملاحظات والتعليقات المرفقة بالكود لإنها توضح كل ما تريدون معرفته) أرجو أن تنال الأداة إعجابكم وفي إنتظار أي أسئلة أو ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 10/24/26 الاقسام قسم الأكسيس2 points
-
في البداية أشكركما على كلامكما المحفز الذي يدفعني لتقديم أفضل مايمكنني تقديمه أولاً فيما يخص ملاحظات الأخ @Moosak الوضع يختلف بين المثال 1 و المثال 2 ففي المثال 1 ولأنه يتم التعامل مع قيمة مربع النص بواسطة الأداة فقد قمت بتعديل الكود لتجاوز هذه المشكلة (إن شاء الله تكون ضبطت 😅) ولكن في المثال الثاني ولأن الأداة تتعامل مع قيمة متغير فنحن سنكون بحاجة لإضافة تعليمات برمجية للقيام بالتحقق من صحة البيانات أولآ ثم تعيين القيمة للمتغير وهذه التعليمات قد تختلف بإختلاف كل حالة لذا فأنا افضل ان لا أشملها ضمن الأمثلة حتى لايعتقد البعض بأنها من ضمن شروط عمل الأداة ولكني قمت بإضافتها لتتضح الفكرة وطالما ذكرنا هنا سبب إضافتها فهذا يفترض به إزالة أي لبس أما الملاحظة الثانية فالحقيقة أن ما حصل معي هو العكس فالمثال الأول كان يصل الى 99٪ فقط والثاني كان يصل الى 100٪ 😚 (لم أنتبه لهذا الخطأ إلا بعد ملاحظتك ) ولكن والحمدلله فقد قام الأخ @Foksh مشكورآ بتوضيح سبب المشكلة لا بل وجاء بالحل ايضا وهذا ليس مستغربا منه فله جزيل الشكر عموما قمت بإعادة رفع الأداة بعد إجراء التعديلات المطلوبة وأرجو أن يكون قد تم إصلاح الملاحظتين دون الوقوع في خطأ لم يكن في الحسبان الله يستر 😅 أرجو تجربة النسخة الجديدة وإبداء أي ملاحظات أخرى مع خالص تحياتي لكم2 points
-
وعليكم السلام ورحمه الله وبركاته ممكن تستخدم داله text وتعمل تنسيق التاريخ زاي ما تحب =B5&C5&TEXT(D5,"dd/mm/yyyy") لعله يكون المطلوب المصنف1.xlsx2 points
-
اعرض الملف ⭐ هدية ~ أداة الحازم في مثبت النواتين لآكسيس 32 و 64 - 2026 ⭐ أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. في هذا الموضوع ، وأعتقد أنه سيكون القبل الأخير لي في قسم الآكسيس . سنتحدث عن فكرة يحتاجها كل مطور يرغب بطوير مشاريعه وحفظها في ملف تنفيذي ولكن بطابع Accde . حيث أن الفكرة والتي قد سبق طرح موضوعها للنقاش في هذا الموضوع هنا ؛ لم تلق استجابةً كما كنت أتوقع ، إلا أنني سأشرح هنا وظيفة الأداة وفائدتها . شرح للفكرة وطريقة العمل قبل التجربة :- يأتي المطور على التعب في تصميم قاعدة بياناته لمشروع ما ، ويقوم بضبط جميع الخصائص والوظائف والأكواد والنماذج والتقارير .... إلخ بشكل جيد على أكمل وجه . فيتخبط بحائط اختلاف النواة والإصدار في بيئة عمل العميل . فهنا سيقوم بسلوك أحد المسلكين :- إجبار العميل على تثبيت نسخة أوفيس مطابقة للنسخة التي تم بناء المشروع عليها . إجبار نفسه على تثبيت نسخة أوفيس وفقاً لحكم العميل بأنه لا يرغب بتحديث نسخته التي نصبها وثبتها ويعمل بها في جهازه . هنا يأتي دوري بهذه الأداة . حيث كل ما عليك هو أن تقوم بضبط مشروعك كما تحب ( من إخفاء واجهة آكسيس ، إلغاء مفتاح الشيف .... إلخ ) وأن تتوقف عند النقطة التي ستقوم بها بحفظ مشروعك بصيغة ACCDE . يعني ادعس فرامل و وقف عزيزي المطور . فكل ما عليك هو أن :- تذهب إلى الأداة المرفقة . تختار منها قاعدة بياناتك الجاهزة . تحدد الأيقونة التي تريدها للإختصار الذي سيتم انشاؤه على سطح مكتب العميل . تحدد اسم الإختصار الذي سيتم انشاؤه على سطح المكتب . تحديد مسار إنشاء الملف الذي سترسله للعميل . ماذا يمكن للأداة أن تفعل ، وما الذي ستقدمه لك كمطور :- تتيح لك تثبيت قاعدة البيانات الخاصة بمشروعك في أي مجلد تحدده . تقوم تلقائياً بإنتاج ملف ACCDE متوافق مع نسخة إصدار أوفيس المثبت على جهاز العميل . تقوم بإنشاء اختصار وبالإسم الذي حددته ، على سطح المكتب . تمكنك الأداة من إدخال كلمة مرور خاصة بك ( وليس العميل ) من خلال النقر على زر المفتاح 🔑 الموجود بجانب زر الإغلاق ، لاستخراج قاعدة البيانات بصيغتها الأصلية ACCDB حتى لو بعد 20 عاماً . وهنا السر العجيب الذي ستستثمره بأنك لن تخسر نسخة العميل الخاصة به وبكامل إعداداته عند عودتك لإجراء تعديلات أو تحديثات أو تطويرات مستقبلاً على سطح مكتبك . مثال توضيحي مصور :- لأي ملاحظة أو استفسار .. باب النقاش مفتوح 🤗 الأداة مبنية بلغة C# فقط . صاحب الملف Foksh تمت الاضافه 10/08/26 الاقسام قسم الأكسيس2 points
-
1 point
-
أخي الكريم دائماً ما ننصح الأعضاء بالتقيد بقواعد تسمية الكائنات في قاعدة بيانات أكسس وأول وأهم قاعدة هي عدم إستخدام الأحرف العربية وثاني أهم قاعدة أن لا تتضمن مسافات وأنت ماشاء الله عليك لم تتقيد بأي منها لذا أنصحك بقراءة المشاركات التي تكلمت عن هذه الجزئية لأهميتها عموما كمساهمة مني في حل مشكلتك قمت بوضع حل سيتطلب منك إضافة نموذج سيتم فتحه عندما تريد أن تضيف أمر تسليم جديد ومنه سيتم التحقق من الشروط فإذا لم يسبق إصدار أمر تسليم للجهة في نفس التاريخ فسيتم إضافة أمر التسليم مباشرة أما إذا سبق أن تم الإصدار فسيتم تخيير المستخدم إما للإضافة أو للتراجع أما السلع فبمجرد أن يجد أنه سبق إدخال نفس السلعة في نفس الأمر سيتم تجهلها وحذف السجل أرجو أن تكون هذه هي التعديلات المطلوبة تحياتي مشروع مخازن 2026.rar1 point
-
يا عيني يا عيني ما هذا الجمال ، والإبداع أخي منتصر بارك الله فيك على هذه المشاركة الجميلة فعلاً والتي يحتاجها الكثير فعلاً .. تعقيباً على كلام أخي موسى ، والذي لا ينقص من روعة العمل شيئاً ، لاحظت ما يلي يما يتعلق بالنقطة الثانية :- استخدام تعريف المتغير Private lngStep As Single في بداية النموذج الفرعي sbfSpinButtons . حيث أن نوع البيانات Single ( وحتى Double ) يعتمد على نظام الفاصلة العائمة الثنائي . وهنا الكسور العشرية التي تبدو بسيطة مثل 0.1 أو 0.05 لا يمكن تمثيلها بشكل دقيق تماماً بالنظام الثنائي ؛ فيتم تخزينها بقيمة تقريبية تزيد قليلاً عن القيمة الأصلية . ثم يأتي شرط فحص الحد الأقصى في الدالة Up ، حيث varMaxValue = 1 ، في الجملة :- If (ctlTxtBox.Value + lngStep) <= varMaxValue Then وفرضاً ، الشرط يختبر هل 1.00000001490116 <= 1 ؟؟؟ والنتيجة قطعاً هي لا = False . بالتالي يرفض الكود الزيادة ، ويتجمد الرقم عند 90% (0.9) . ونفس الأمر يتكرر مع خطوة 5% بعد 20 نقرة حيث يتجاوز المجموع الرقم 1 بجزء متناهي الصغر ، فيتوقف عند 95% . ونفس المشكلة تحدث أيضاً عند النزول Down . عندما يصل إلى 10% ثم ينقص 0.1 ، يصبح الناتج تقريباً -0.0000000149 ( أقل من الصفر ) ، فيتوقف عند 10% ولا يصل إلى 0% . لذا ، خطر ببالي ومن باب التجربة ما يلي ، على الدالتين Up و Down ، مع تغيير نوع المتغير طبعاً ليصبح الضع كالتالي :- نوع المتغير في تعريفه من Single إلى Double . الدالتين تصبحان :- Private Sub Up() Dim curVal As Variant Dim stpVal As Variant Dim nextVal As Variant stpVal = CDec(lngStep) If Not ctlTxtBox Is Nothing Then ' الوضع الأول: مع مربع النص If IsNumeric(ctlTxtBox.Value) Then curVal = CDec(ctlTxtBox.Value) nextVal = curVal + stpVal If Not IsEmpty(varMaxValue) Then If nextVal <= CDec(varMaxValue) Then ctlTxtBox.Value = CDbl(nextVal) ElseIf curVal < CDec(varMaxValue) Then ' إذا تجاوزت الخطوة الحد الأقصى وكان الرقم أقل منه (مثل 99% مع خطوة 3%) نضبطه على 100% ctlTxtBox.Value = varMaxValue End If Else ctlTxtBox.Value = CDbl(nextVal) End If End If Else ' الوضع الثاني: مع متغير وحدث curVal = CDec(dblValue) nextVal = curVal + stpVal If Not IsEmpty(varMaxValue) Then If nextVal <= CDec(varMaxValue) Then dblValue = CDbl(nextVal) ElseIf curVal < CDec(varMaxValue) Then dblValue = CDbl(varMaxValue) Else Exit Sub End If Else dblValue = CDbl(nextVal) End If RaiseEvent ValueChanged(dblValue) End If End Sub Private Sub Down() Dim curVal As Variant Dim stpVal As Variant Dim nextVal As Variant stpVal = CDec(lngStep) If Not ctlTxtBox Is Nothing Then ' الوضع الأول: مع مربع النص If IsNumeric(ctlTxtBox.Value) Then curVal = CDec(ctlTxtBox.Value) nextVal = curVal - stpVal If Not IsEmpty(varMinValue) Then If nextVal >= CDec(varMinValue) Then ctlTxtBox.Value = CDbl(nextVal) ElseIf curVal > CDec(varMinValue) Then ' إذا نزلت الخطوة عن الحد الأدنى وكان الرقم أكبر منه نضبطه على 0% ctlTxtBox.Value = varMinValue End If Else ctlTxtBox.Value = CDbl(nextVal) End If End If Else ' الوضع الثاني: مع متغير وحدث curVal = CDec(dblValue) nextVal = curVal - stpVal If Not IsEmpty(varMinValue) Then If nextVal >= CDec(varMinValue) Then dblValue = CDbl(nextVal) ElseIf curVal > CDec(varMinValue) Then dblValue = CDbl(varMinValue) Else Exit Sub End If Else dblValue = CDbl(nextVal) End If RaiseEvent ValueChanged(dblValue) End If End Sub1 point
-
1 point
-
1 point
-
الاخ الكريم /ابو ياسين استأذن الاساتذة و اصحاب العلم و الفضل و اقدم ملف صغير قاعدة بيانات صغيرة و ملف ايقونات يختار او يضيف او يحذف ما يشاء قاعدة البيانات : نموذج و زر على النموذج للتبسيط و موديول صغير ERROR.rar1 point
-
دخل الذكاء الصناعي في معظم حياتنا و بات مهدد لوظائف كثيرة و لذلك يجب كمبرمجين ان نتعلمه و نستخدمة لخدمتنا و نطوعه في عملنا لذلك رغم عدم المامي بالموضوع و خبرتي المتواضعة . الا اننا يمكنني ان انير لغيري الطريق كي يتعلم و يعلمنا كيفية استخدامه . لذلك ما يلي بعض المحاضرات في كيفية استخدام AI مع الاكسس و هذه المشاركة ما هي الا بذرة تحتاج من حضراتكم المشاركة و المساهمة بكل جهد كي تكون مرجع لنا نحن المتخصصين - او المبتدئين - لكي نواكب العصر ان شاء الله . 1. تشغيل الذكاء الاصطناعي مجاناً وبشكل محلي على حاسوبك لقواعد بيانات مايكروسوفت أكسس English Title: Run FREE AI on Your PC for Microsoft Access (Complete Ollama Setup Guide) رابط الفيديو: (أو البحث في قناة AccessUserGroups.org) الملخص: دليل عملي متكامل لإعداد وتثبيت نماذج الذكاء الاصطناعي محلياً عبر أداة Ollama واستخدامها لخدمة وتطوير قواعد بيانات أكسس دون الحاجة للاتترنت. 2. البرمجة في أكسس باستخدام الذكاء الاصطناعي عبر باورشل English Title: Programming in Access with AI using PowerShell رابط الفيديو: (متاح على قناة اليوتيوب الرسمية للمنظمة) الملخص: يستعرض كيفية دمج لغة الأتمتة PowerShell مع تقنيات الذكاء الاصطناعي لتسريع عمليات الكتابة البرمجية وإدارة قواعد بيانات Access بكفاءة. 3. أكسس لم تموت.. لقد حصلت أخيراً على "مساعد ذكي" (لا، ليس هذا المقصود!) English Title: Access Isn't Dead. It Finally Got a "Co-Pilot". (No. Not that one.) رابط التفاصيل: الملخص: مناقشة عميقة حول كيفية توظيف وكلاء الذكاء الاصطناعي وخوادم (MCP Servers) المخصصة لأكسس لتحديث الأنظمة القديمة وقيادة عملية التطوير. 4. إدارة فريق من وكلاء الذكاء الاصطناعي في هندسة البرمجيات English Title: Managing a Team of AI Agents -- Creating an AI skill.md رابط التفاصيل والتسجيل: الملخص: استعراض عملي لاحتراف إدارة بيئات التطوير المعتمدة على عدة مساعدين ذكيين (مثل Claude Code و ChatGPT) لتصميم وهندسة الأنظمة البرمجية. 5. إعداد وتكوين بيئة العمل لاستخدام مايكروسوفت أكسس مع الذكاء الاصطناعي (الجزء الثاني) English Title: Using Microsoft Access with AI - Part 2 رابط الفيديو: https://www.youtube.com/watch?v=dZeeuha6my4 الملخص: جلسة تفاعلية متقدمة تعرض مستودعات القوالب الجاهزة وكيفية الإجابة على استفسارات المطورين البرمجية وتطويع الـ AI لخدمة قواعد البيانات.1 point
-
جزاكم الله كل خير بشمهندس منتصر على هذه المشاركة الاكثر من رائعة @منتصر الانسي1 point
-
السلام عليكم ورحمة الله حسب ما فهمت أنك تريد من المعادلة أن تستخرج اسم البند الموجود في العمود D في الورقة source حسب رقم البند من العمود A، يجب استبدال العبارة source!D:D في معادلتك بالرقم 4، غير أن المعادلة تبعك لا تعطي نتائج دقيقة باعتبار أن رقم البند يمكن أن يتكرر لأسماء بنود مختلفة (المعادلة تعطي نتيجة أول صف في النطاق تعثر فيه على رقم البند المطلوب)... والله أعلى وأعلم.1 point
-
منذ اسبوعين وان اتابع هذا المستودع الذي وصل عدد نجومه340الف نجمه https://github.com/morluto/rea طبعا المشاريع التي بنيت عليه لا تتخيل من منتجات ادوبي بالكامل رابطhttps://github.com/storytold/artcraft/releases/tag/artcraft-v0.41.0 ربما نحاول بعض الشيء على اكسيس لكن القصة معقدة كثيرا عليه لااسباب كثيرة لكن ساحاول واخبركم بالتنيجة اذا نجحت طبعا رابط مفيد لفهم المشروع وتطبيقا لم تكن الا على الماك1 point
-
1 point
-
1 point
-
1 point
-
الساعه الواحده بتظهر 13 والساعه الثانيه بتظهر 14 لو أمكن الساعه الواحدة تظهر 1 والثانية 2 وهكذا المواعيد.xlsb1 point
-
في الحقيقة حبيت أشارك في هذا الموضوع عن طريق تطبيق ماجاء في الدليل الشامل لتكامل الذكاء الاصطناعي مع Microsoft Access والذي يتكون من ثلاث مقالات الأولى تشرح طريقة تنزيل وتثبيت البرامج المطلوبة والمتطلبات الفنية المطلوب توفرها في أجهزة الكمبيوتر للحصول على تجربة أفضل الثانية توضح طريقة دمج الذكاء الصناعي مع تطبيقات أكسس وكيفية إرسال الطلبات للذكاء الصناعي وإستلام الردود منه الثالثة تشرح طرق أتمتة الإرسال والإستجابة بإستخدام VBA وكيفية تحسين النتائج عن طريق تعيين المعلمات الإضافية والحقيقة أن النتيجة كانت أكثر من رائعة حيث أنني وبعد أن قمت بتطبيق ما جاء في هذا الدليل حصلت بالفعل على محرك ذكاء صناعي محلي يمكنه المساعدة في إنشاء جمل Sql أو دوال / إجراءات VBA قابلة للإستخدام فكما ترون في هذه الصورة وكما هو موضح في الصورة فقد قمت بمطالبة الذكاء الصناعي بإنشاء كود يقوم بإنشاء مجموعة سجلات تضم أول عشرة سجلات في الجدول tblEmployees والمرور عليها وكتابة أسماء العشرة الموظفين في النافذة الحالية بعدها قمت النقر على زر (إسأل AI) وبعد لحظات قليلة تم فيها معالجة الطلب ظهرت النتيجة في مربع النص علي اليمين وعند نسخ النتيجة ولصقها في وحدة نمطية ظهرت بهذا الشكل نلاحظ وجود نوعين من الأخطاء تم تمييزها باللون الأحمر للأخطاء في بناء الكود وباللون الأزرق للإخطاء الإملائية (والتي يمكن تجاوزها عن طريق إضافة أسماء الحقول ضمن المطالبة) المهم أنه بعد أن قمت بتصحيح تلك الأخطاء حصلت على نتيجة ولا أروع كما توضحه الصورة التالية والروعة هنا هي في أن هذه النتيجة كانت من المحاولة الأولى بمعنى أنها أخطاء بالإمكان تلافيها بتحسين جودة المطالبة أو مايعرف بالـ(Prompt) ولهذا السبب قمت وفي محاولة بدائية بترجمة ماجاء في هذا الدليل وأرفقتها بملف الوورد المرفق ونصيحتي لكل من يود تطبيق ماجاء في هذا الدليل هو أن يتم أولاً قراءة المرفق بالكامل لفهم ماجاء فيه وبعد ذلك يمكن الإنتقال للتطبيق أرجو أن أكون قد وفقت في الترجمة (أو بالأصح في تصحيحها فقد قام جوجل بالترجمة الفعلية ) كما أرجو التجاوز عن أي أخطاء قد تجدونها فيها ولكن مايهم أنها بإذن الله ستتمكن من إيصال الفكرة لكم بشكل جيد تحياتي الدليل الشامل لتكامل الذكاء الاصطناعي مع Microsoft Access.docx1 point
-
Version 1.0
43 تنزيل
أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. في الموضوع الذي سبق وتم طرحه في هذا الموضوع ، كانت المشاركات بناءة لفتح باب الإبتكار والتطوير وخلق بيئة حماية وحصانة للجداول من خلال ضبط حماية السجلات وتحصينها داخل الجداول عن طريق ماكرو البيانات . والشكر موصول لأخي الأستاذ موسى @Moosak وأخي منتصر @منتصر الانسي ، لمشاركتهما الحديث والأفكار بخصوص هذا الموضوع . وبناءً على الفكرة العامة فقد توصلت وبحمد الله وفضله لفكرة تمكن المستخدم ( المطور عادةً أو صمم قاعدة البيانات ) من حماية الجداول والسجلات من الحذف أو التعديل المباشر على السجلات داخل الجداول . وبالتالي تطبيق حصانة كاملة على الجداول التي يحددها المستخدم . ميزات الأداة :- 1️⃣ تأتي الأداة بمديول واحد يمكن نسخه إلى أي قاعدة بيانات ، وإستدعاء دالة الحماية ، أو حذفها على أي جدول / جداول يختارها المستخدم . 2️⃣ واجهة تفاعلية تسمح لك كمستخدم بتطبيق واختيار نوع الوظيفة بسهولة تامة ، بدلاً من كتابة الإستدعاءات ، تسهيلاً لتطبيق الحماية أو حذفها . 3️⃣ تتعامل الأداة مع الجداول المحلية و الجداول المرتبطة بشكل منظم وديناميكي صامت جداً . 4️⃣ للأداة القدرة على التعامل مع استدعاءات الإستعلامات ( الإضافة ، التحديث والحذف ) بشكل صارم ومحكم التنفيذ . 5️⃣ أيضاً القدرة حتى مع التعامل مع استعلامات الـ SQL بذكاء خاص . 6️⃣ قدرة الأداة على تطبيق الحماية على جدول ( على سبيل المثال ) مع استثناء حقل أو حقول من الحماية . بحيث تستطيع من خلال أي نموذج التعديل على هذه الحقول داخل الجدول المحمي دون أي تعارض . 7️⃣ إمكانية تطبيق الحماية / حذفها لجداول محددة تختارها من خلال الإستدعاء مرة واحدة ، أو جميع الجداول في قاعدة بياناتك . 8️⃣ إتاحة الفرصة أيضاً لتطبيق الحماية أو حذفها على جداول قاعدة بيانات خارجية دون الحاجة إلى نقل المديول لقاعدة البيانات هذه ( التي اخترتها ) . 9️⃣ التعامل الذكي مع الجداول المرتبطة فقط بحمايتها أو إلغاء الحماية عنها ؛ وأن تستثني الجداول المحلية الغير مرتبطة . 🔟 التعامل مع مسار جداول قواعد البيانات المرتبطة دون الحاجة لإدخال المسار بشكل يدوي . 1️⃣1️⃣ التعامل بذكاء مع قواعد البيانات المرتبطة والمحمية بكلمة مرور . بحيث يتم التعرف واكتشاف كلمة المرور تلقائياً وتمريرها إلى الحماية أو الحذف دون الحاجة للتدخل اليدوي . 1️⃣2️⃣ قراءة جداول قاعدة البيانات الخارجية والتعامل معها مباشرة مع عرض جداولها داخل الأداة من داخل قاعدة بيانات مشروعك . وحتى حقول كل جدول في قاعدة البيانات تلك التي اخترتها . 1️⃣3️⃣ إمكانية تطبيق الحماية أو الحذف بشكل صامت أو إظهار رسالة تفاعلية بالنتيجة التوضيحية . 1️⃣4️⃣ رسائل أخطاء معربة بالكامل لجميع احتمالات رسائل الخطأ التي يمكن أن تظهر للمستخدم . 1️⃣5️⃣ تمكين المستخدم من نسخ سطر الإستدعاء ولصقه في أي وظيفة أو حدث يحتاجها لها . 1️⃣6️⃣ في المديول ، يوجد شرح مبسط لآلية الإستدعاءات التي يمكن للأداة تطبيقها وتقديمها لك من خلال واجهة النموذج المخصص للإستدعاءات . 1️⃣7️⃣ إتاحة الفرصة بتطبيق الحماية أو حذفها عن كافة الجداول ، مع استثناء جداول محددة . 1️⃣8️⃣ عرض حالة الجدول إن كان محمياً مسبقاً أو لا ، وحالة الحماية عند وجود حقول تم استثناؤها . 1️⃣9️⃣ تضمين التحقق من وجود الكائنات التي يتم استدعاء الحماية عليها من خلال كود VBA . كمثال :- ' التحقق من وجود الكائن قبل التنفيذ If DCount("*", "MSysObjects", "Name In ('Tbl_1', 'Tbl_2') And Type In (1, 4, 6)") = 2 Then Else MsgBox "أحد الكائنات المحددة [Tbl_1, Tbl_2] غير موجود في قاعدة البيانات!", vbExclamation End If صورة من واجهة الأداة :- ملف الأداة مفتوح المصدر1 point -
1 point
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) كثير من المطورين ومصممي قواعد البيانات والمشاريع الخاصة بهم ، عندما يقوم بحفظ مشروعه بصيغة Accde ؛ بتفاجئ بأن جهاز العميل لم يقم بتشغيل قاعدة البيانات رغم خلوها من جميع الأخطاء البرمجية ، أو عدم التوافقية في الأكواد بين الناتين 32 و 64 . ولذا يلجأ لحفظ قاعدة البيانات بإصدار مطابق لإصدار أوفيس العميل المثبت في جهازه . أو إجبار العميل على تثبيت إصدارات حديثة أو بنواة معينة ... إلخ . اليوم كانت لي تجربة لتقوم بمهمة تشغيل قاعدة بياناتك على أي إصدار وعلى أي نواة وعلى أي ويندوز دون الحاجة لأي تدخل من مطور البرنامج . تجربتي اليوم ستقوم على مشروع مفتوح المصدر تم طرحه بعنوان الأداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder كتجربة ليس إلا في هذا الموضوع هنا . على العموم وللتوضيح سأقوم بإرفاق ملف قاعدة البيانات ، والتجربة ممن يرغب بمشاركتنا رأيه ما يلي :- ذكر إصدار ونواة آكسيس الذي قام بالتجربة عليه . ذكر اصدار الويندوز ونواتها أيضاً . ممن يملك إصدارين من آكسيس على جهازه ( مثل أخوكم 😅 ، لدي الإصدارين 2019 - 64 ، والإصدار 2010 - 32 ) ، تجربة الفكرة على الاصدارين ومشاركتنا رأيه بنجاح أو فشل التجربة وهي عنوان الموضوع . وهذه صورة من جهازي الشخصي الذي أملك إصدارين مثبتين عليه . المشاركة مفتوحة لمن يرغب وغير مقتصرة على أحد 😇 . وبناء على النتائج والتفاعل ، سأقوم بفتح موضوع مخصص وطرح الأداة والشرح عنها بكامل تفاصيلها وآلية العمل عليها . وتشجيعاً لمن رغب بالتجربة .. جرب في مربع نص المسار اكتب إشارة # يليها مباشرة officena.net ، وهنا السر العجيب . لاحظ الصورة للتوضيح :- ♻ حيث سيتم استخراج قاعدة البيانات مفتوحة المصدر Accdb وليس Accde ♻ يعني يا صديقي يا مطور البرنامج ، لو في يوم من الأيام ولو بعد 10 سنين ؛ جاء العميل راكضاً ويريد منك إضافات وتعديلات جديدة . وتفاجأت بأن النسخة الأصلية ضاعت منك أو لم تعد موجودة في جهازك ولأي سبب من الأسباب .. فقط اكتب كلمة المرور التي حددتها في الأداة التي سيتم طرحها منفردة في موضعها الخاص , وستحصل على قاعدة بياناتك الأصلية مفتوحة المصدر 😁 . حجم الملف المرفق أكبر من الحد المسموح به ، لذا سأرفعه برابط مباشر على جوجل درايف من هنا . طبعاً حجم قاعدة البيانات هو 10 ميجا ..1 point
-
1 point
-
1 point
-
1 point
-
Version 1.1
159 تنزيل
السلام عليكم ورحمة الله وبركاته 🙂🖐 بفضل الله وتوفيقه أقدم لكم تصميم نظام تسجيل دخول + نظام صلاحيات متطور حاولت تبسيطه للمستخدم والمستفيدين منه لاحقا قدر المستطاع .. وسأبدأ بواجهة تسجيل الدخول المتواضعة : المزايا : حفظ بيانات دخول المستخدم (اختياري) الدخول مباشرة بمجرد كتابة كلمة المرور بشكل صحيح (تسريع عملية الدخول) ملاحظة : جميع كلمات المرور في البرنامج : 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) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها '------------------------------------------------------------------------------- والنماذج الموجودة في البرنامج مع أزرارها تم تطبيق الأكواد عليها بشكل عملي << راجعها وأدرسها لمعرفة كيفية عملها .. وهي سهلة يسيرة بفضل الله 🙂 وهذا مثال عملي لتطبيق الصلاحية على زر الطباعة (فتح التقرير) مثلا : وهكذا بقية الصلاحيات (اطلع على بقية الموديول) تم تحويلها لأسطر قليلة بسيطة للاستفادة منها بكل يسر .. 🙂 :: 🌹 وآخر دعوانا أن الحمد لله رب العالمين 🌹 ::1 point -
وعليكم السلام-يمكنك استخدام هذا الكود Sub RmDupsU() Dim U As Range, N As Long, i As Long, wf As WorksheetFunction Dim rUP As Range Set U = Range("A:A") Set wf = Application.WorksheetFunction N = Cells(Rows.Count, "A").End(xlUp).Row For i = N To 2 Step -1 Set rUP = Range(Cells(i - 1, "A"), Cells(1, "A")) If wf.CountIf(rUP, Cells(i, "A").Value) > 0 Then Cells(i, "A").Clear Next i End Sub Duplicate Clear Contents.xlsm1 point
-
وعليكم السلام -يمكنك استخدام هذه المعادلة لإيجاد عدد العمليات =COUNTIFS(C:C,$K$2,D:D,$J$2,E:E,$I$2,F:F,$I5) ولإيجاد اجمالى المبلغ ... يمكنك استخدام هذه المعادلة =SUMIFS(B:B,C:C,$K$2,D:D,$J$2,E:E,$I$2,F:F,$I5) TQ1.xlsx1 point
-
1 point
-
أحسنت استاذ جعفر ... كود ممتاز جزاك الله كل خير وأحسن الله اليك1 point
-
وعليكم السلام-دائماً وأبداً لابد من تدعيم اى مشاركة بملف موضح فيه المطلوب بكل دقة...فيمكنك استخراج الرقم 2018 بالمعادلة التالية =LEFT(AD1,LEN(AD1)-FIND("-",AD1)) أما 2019 بالمعادلة التالية =RIGHT(AD1,LEN(AD1)-FIND("-",AD1))1 point
-
الأمر بسيط جداً تفضل ... معادلة بالتأكيد ممتازرة بارك الله فيك استاذ محمد وأكرمك الله 1235.xlsx1 point
-
تفضل يمكنك استخدام هذه المعادلة (Ctrl+Shift+Enter) =IFERROR(INDEX($C$3:$C$40,SMALL(IF(($C$3:$C$40<=$I$3)*($C$3:$C$40>=$I$2)*($B$3:$B$40=$K$2),MATCH(ROW($C$3:$C$40),ROW($C$3:$C$40)),""),ROW(A1)),COLUMN(A1)),"") Item Card1.xlsx1 point
-
1 point
-
1 point
-
1 point
-
شكراً جزيلاً لهذا المجهود وجزاك الله خير الثواب1 point
-
وعليكم السلام .دائماً وأبداً ننبه كثيراً على عدم دمج الخلايا لسهولة التعامل مع ملف الإكسيل ,,, تــم الغاء دمج الخلايا لحسن عمل المعادلات وتم وضع كود للطباعة نموذج ادخال البيانات1.xlsm1 point