بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
1136 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
10
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو منتصر الانسي
-
توزيع الوقت على الموظفين مابين فتره زمنية محدد
منتصر الانسي replied to at_aziz's topic in قسم الأكسيس Access
بعد إذن أخي @ابوخليل قمت بعمل حل بسيط أرجو أن تستفيد منه ملاحظتي لك أنه يجب أن يكون مصدر بيانات النموذج هو الجدول أو إستعلام تحديد بسيط وليس كما كنت عاملة إستعلام تجميع فهذا يجعل بيانات النموذج غير قابلة للتعديل قمت بإضافة حقل وقت الإنتهاء كفكرة إضافية ولتوضيح كيف أن وقت إنتها شخص هو وقت إيتداء الشخص الذي يليه كل مرة تقوم بفتح النموذج سيتم مسح بيانات الثلاثة أعمدة لغرض المثال فقط ويمكنك مسح حدث عند التحميل تحياتي ED.rar -
تفضل أخي الكريم مرفق بهذا ملفك الأصلي بعد تصفيته من جميع الكائنات الغير ضرورية وتنفيذ كل ماهو مطلوب تحياتي db1.rar
-
شكرا أخي الكريم على تقبلك للملاحظات بسعة صدر وترحيب كما هو واضح في ردك وهذا من أهم ما يميز كل من أراد أن يتعلم والحقيقة صار لي فترة أحدث نفسي بأن أعمل موضوع خاص لشرح إصطلاح التسمية خصوصا عندما أرى كثير من التطبيقات الخاصة بالأعضاء ورغم الجهد الواضح المبذول في هذه التطبيقات إلى أنهم مايزالوا متجاهلين (بعلم أو بدون علم) للطرق السليمة عند تسمية الكائنات الخاصة بتطبيقاتهم (مكتوبة باللغة العربية وتحتوي على مسافات ...) ولايعلمون أنهم بتجاهلهم هذا يتسببون بضياع الكثير من الجهد والوقت وأحياناً قد يؤثر على أداء تطبيقهم وجاء هذا الموضوع كفرصة أريد إستغلالها لتسليط الضوء على موضوع تسمية الكائنات والذي لا تقتصر أهميته على من يعمل في أكسس فقط بل لكل من يعمل بالبرمجة بشكل عام تأكيداً لما جاء في ملاحظات الأخ @Foksh فإن طريقة تسمية الكائنات من أهم الأمور التي يجب مراعاتها من بداية العمل لأن مشاكلها ستظهر في مراحل لاحقة والتي غالبا مايكون تكلفة إصلاحها أكبر من تكلفة غيرها من المشاكل شروط التسمية بسيطة وأهم شرطين هما إستخدام الحروف الإنجليزية وأن تكون بدون مسافات (لاحظ أن الشرط الأول بخط أحمر وتحته خط لأهميته والثاني أحمر باهت بدون خط لأن تأثيره أقل ولكنه أيضا مهم) وحتى ولو كانت لغتك الإنجليزية ضعيفة يكفي أن تكون منطوقة كما هي بالعربي ولكن بحروف إنجليزية (مثلا جدول بيانات الطلاب يمكن تسميته bianat_tollab وهذا أقل مايمكن عمله فهذه التسمية صحيحة وستعمل بدون أي مشاكل ولكنها ستكون صعبة لأي شخص آخر فالإسم Students_Data ستكون مفهومة أكثر ... أليس كذلك ؟؟؟ 🤫) النقطة الثانية التي جاءت في ملاحظات الأخ @Foksh وهي طريقة تنسيق التسميات ويمكن إعتبارها ملاحظات تختص بالشكل أو المظهر أكثر وهي ليست بنفس أهمية الأولى ولكنها لاحقا تجعل العمل أكثر سهولة ومن أهم التنسيقات مايلي - كما ذكرنا آنفا فأن علينا تجنب المسافات الفاصلة بين الكلمات فبدل أن نقوم بكتابة إسم جدول بيانات الطلاب بهذا الشكل bianat tollab كتبناه بهذا الشكل bianat_tollab وأستعضنا عن المسافة بالشرطة السفلية وكذلك طرق كتابة الإسم بشكل أكثر تنسيقا منها تنسيق طريقة الجمل "camelCase" أو طريقة باسكال "PascalCase" (وهي التي ذكرها الأخ فادي والتي أستخدمها شخصياً) وهي دمج الكلمات بدون مسافات وعلى أن يكون أول حرف من كل كلمة حرف (كبير Capital) وكمثال فإن إسم جدول بيانات الطلاب المذكور في مثالنا سيصبح بهذا الشكل BianatTollab - البادئة أو (Prefix) وهي عبارة عن عدد من الحروف (غالبا 3 حروف صغيرة Small) وتمثل (نوع الكائن - عنصر التحكم - المتغيرات - نوع البيانات) فمثلا الجداول تبدأ بالبادئة tbl والاستعلامات بـ qry والنماذج بـ frm ...الخ ويمكن إضافة حرف أو حرفين لها لتخصيص الكائن فمثلا البادئة frm الخاصة بالنماذج يمكن إضافة حرف s أو sb لها لتصبح sfrm أو sbfrm إذا كان النموذج فرعي ... وهكذا !!! وإذا أردنا تطبيق البادئة على مثال جدول بيانات الطلاب فسيصبح بهذا الشكل tblBianatTollab ملاحظة يجب ذكرها هنا وهي أنه يمكن لأي شخص عدم التقيد بما جاء هنا وإستخدام إي إصطلاحات تسمية خاصة به فيمكن إستبدال بادئة الجداول بالبادئة tb او abc او xyz فليس لهذه الحروف أي معنى إلا لمن يستخدمها وكذلك طريقة التنسيق فهناك من يستخدم الحروف الكبيرة أو الصغيرة أو طريقة الجمل أو طريقة باسكال الموضحة هنا المهم هنا هو التعرف على المفهوم لا أكثر هذه هي أهم النقاط التي يجب مراعاتها أثناء تسمية كائنات قاعدة البيانات وتعتبر طرق التسمية من أهم مواضيع البرمجة التي لايمكن توضيحها من خلال هذه المشاركة البسيطة وأنصح بالبحث عن (إصطلاحات التسمية أو Naming Conventions) للحصول على معلومات أكثر وإعتماد طريقة تسمية والإلتزام بها في جميع التطبيقات الخاصة بك تحياتي
-
غريب!!!! مع انه يعمل معي بنجاح حتى أني جربته الآن للتأكد قد يكون السبب أحد سببين إما ان لوحة المفاتيح الثالثة ظهرت قبل أن تعدل الكود أو قد يكون بسبب نظام الويندوز عموما وحتى نقطع الشك باليقين سأرفق لك نفس المثال بعد أن قمت بتحديد اللغة فيه إلى Arabic_Jordan وأريدك أن تفتحة وأنت متأكد من عدم وجود أي لغات إضافية تظهر للوحة المفاتيح جربه وأخبرني بالنتيجة تحياتي Keyboard Layout.rar
-
اعتقد أني وجدت الحل وبكل صدق لولا تشخيص الأخ @Foksh لسبب المشكلة ما كنت لأستطيع التوصل له فجزاه الله كل خير أثناء بحثي عرفت أنه توجد دالة API إسمها ActivateKeyboardLayout تقوم بتغيير لغة لوحة المفاتيح وفقاً لكود اللغة لكل دولة فقمت بنسخها وأنشأت وحدة نمطية وعرفت فيها هذه الدالة فيها كدالة عامة قمت بإضافة تعداد بأكواد اللغة العربية لجميع الدول العربية بالإضافة للغة الإنجليزية (الولايات المتحدة لمن تعمل أنظمتهم بتخطيط لوحة المفاتيح en_US أو المملكة المتحدة لمن تعمل أنظمتهم بتخطيط لوحة المفاتيح en_UK) وقمت بإنشاء دالة عامة لربط ActivateKeyboardLayout بهذه القائمة لتظهر قائمة الدول أثناء الإدخال لتسهيل تحديد الدولة والحقيقة بعد تجربتها فاجأتني النتيجة لم يظهر لي أي تخطيط لغة إضافي رغم أن اللغة تتغير حسب كل مربع نص اثناء التنقل خلال النموذج أترك لكم المثال الذي قد وضحت فيه بعض الأمور المطلوبة من كل من يريد تجربته (من خارج اليمن طبعاً 😅) تحياتي Keyboard Layout.rar
-
اخي الكريم لو تلاحظ فإن كل الحلول متفقة أن إعادة تعيين لغات لوحة المفاتيح لن تتم إلا بإعادة تشغيل النظام أو على الأقل تسجيل الخروج ومسألة إخبار المستخدم أفضل من أن يتفاجأ بإعادة التشغيل وخسارة أي أعمال أخرى أعتقد أن المشكلة مرتبطة بنظام أكسس فمهما حذفت اللغات الزائدة فبمجرد فتح تطبيق أكسس ستعود المشكلة وكأن شيئاً لم يكن مما توصلنا له إلى الان فأمامنا حل من إثنين إما عبر الكود وهذا يتطلب إعادة التشغيل - أو تسجيل الخروج أو إعلام المستخدم شفهيا بأنه إذا كان متضايقا من تعدد لغات لوحة المفاتيح بأن عليه إعادة تشغيل النظام هذا رأيي إلى الآن مالم نجد طريقة أخرى يبدو انك لم تفهم قصدي بتعديل الخصائص في المثال انا عدلت الخصائص لغرض الشرح لمعرفة تأثير تعديل الخاصية إلى system لاغير وليس هناك أي ضرورة للتعديل تحياتي
-
أخي الكريم في إعتقادي أن هذه المشكلة أكثر من يعاني منها هم المبرمجين لأن المبرمج مضطر لتنقل بين اللغات الإنجليزية عند كتابة أسماء كائنات البرنامج وكتابة الاكواد والعربية عند كتابة الرسائل والتسميات التوضيحية وخلافه أما مايخص المستخدم فأنت كمبرمج يفترض أنك قد ضبطت خصائص عناصر التحكم بحيث وبمجرد إنتقال المؤشر إلى عنصر تحكم محدد للغة العربية يقوم التطبيق بتحويل اللغة للعربية بدون أي تدخل من المستخدم وإذا إنتقل لعنصر تحكم محدد للغة الإنجليزية سيتم تحويل اللغة بسهولة سيقول قائل سيكون هذا الكلام صحيح طالما المستخدم يعمل داخل التطبيق الذي قمنا بتطويره ولكن بمجرد إغلاقه والعودة للعمل مع التطبيقات الأخرى ستظل المشكلة قائمة نعم هذا الكلام صحيح ولكن ولحل هذه الجزئية نرجع للمثال الخاص بالأخ @Foksh والذي أريد وقبل كل شيئ أن أرفع له القبعة على تشخيصه لسبب المشكلة والحقيقة أنها معلومة غاية في الأهمية وكنت أجهلها فشكرا جزيلاً له ولكن .... 🫣 فأنا أري أن جميع جهوده السابقة الخاصة بتحويل اللغة غير ذات أهمية لحل المشكلة تحديداً (هذا لايعني أنها غير مفيدة في أعمال أخرى بالعكس الفكرة جميلة جداً وقد أستفدت شخصيا من الكود الذي جاء في المثال والذي سيتم الإعتماد عليه في المثال المرفق بهذه المشاركة) لقد بنيت هذا الرأي لسبب بسيط فطالما أن مثال الاخ @Foksh يؤدي إلى إعادة تشغيل النظام فلسنا بحاجة لكل تلك الأوامر الخاصة بتعديلات الريجستري وكان بالامكان الاكتفاء بالسطور التي تقوم بإعادة تشغيل الجهاز وتنحل المشكلة بل وأزيدكم من الشعر بيت فيمكن حل هذه المشكلة بمجرد إجراء تسجيل خروج من النظام فقط بناء على كل ماسبق قمت بإرفاق مثال يوضح الفكرة التي أقصدها والتي في رأيي يمكن من خلالها معالجة المشكلة بأبسط طريقة لاتسبب الإزعاج للمستخدمين أرجو أن تعجبكم الفكرة وانا في إنتظار أي ملاحظات أو أفكار للتحسين تحياتي Keyboard language.rar
-
اضافة عدد من الاصفار الى الرقم التلقائي من التنسيق
منتصر الانسي replied to محمد التميمي's topic in قسم الأكسيس Access
رغم أني لم أجرب هذه الطريقة من قبل ولكني وبنظرة سريعة على الملف المرفق أعتقد أنه لاتوجد مشكلة فيها فقد قمت بتجربة إضافة أكثر من مليون سجل ولم يتأثر كلا من الترقيم التلقائي و حجم القاعدة بعد أن قارنت الحجم بوجود التنسيق وبدونه هناك طرق أخرى لتطبيق نفس التنسيق على أي رقم بإستخدام دالة Format فلو إفترضنا أن الحقل ID هو ترقيم تلقائي بدون اي تنسيق إضافي يمكنك الحصول على نفس النتيجة هذه في الاستعلام أو النماذج بهذا السطر Format([ID];"0000000") ويوجد هناك طرق أخرى لتخصيص الترقيم التلقائي يمكنك التعرف على بعضها في هذا الموضوع هنا وقد تجد أيضا الكثير من الطرق بالبحث في المنتدى -
ملاحظة بسيطة للأخ @أحمد العيسى في طريقة الأخ @Foksh إعتبر أن أي رقم قومي يبدأ بالرقم 2 فسيكون صاحبه من مواليد ماقبل عام 2000 مالم فسيكون من بعد عام 2000 وهذا لم يؤخذ بالإعتبار في الدالة Date_Sex_Province صراحة لا أعلم إذا ما كانت هذه الملاحظة ذات أهمية أم لا ولكن ذكرتها كتنبيه عن الاختلاف بين الحلين فإذا كان الإختلاف مهم فسيكون تأثيره كبير تحياتي
-
هذا صحيح عموما الكرة الان في ملعب صاحب الموضوع لإختبار الحلين وإعتماد مايناسبه او الافادة بأي ملاحظات
-
إذا كانت هذه هي البساطة فبماذا سنسمي طريقتي إذا 😅 عموما هذه طريقة أخرى وأعتقد أنها ستكون مفيدة عند طباعة جداول أكثر من طالب (كون مثال الاخ @Foksh يعتمد على رقم الطالب المحدد في النموذج كمعيار لتصفية البيانات) لكن وبصراحة فأنا لست متأكد من أداء هذا الحل مع أكثر من طالب أو أكثر من فترة أو فصل دراسي لذلك فيفضل أن تقوم بإجراء التجارب والافادة عن النتائج والملاحظات تحياتي Timetable25.rar
-
مطلوب حذف السجلات المكررة بناء على التاريخ
منتصر الانسي replied to ابوخليل's topic in قسم الأكسيس Access
أداة رائعة 👏👏👏 -
استخراج تقرير بين فترات زمنية مختلفة محددة
منتصر الانسي replied to moho58's topic in قسم الأكسيس Access
تم تعديل المثال مع توضيح العمل بطريقتين تحياتي basetimes.rar -
إنشاء رقم تعريف للطالب انطلاقا من نمودج
منتصر الانسي replied to moho58's topic in قسم الأكسيس Access
تم إضافة إستعلام تحديث لتنفيذ العمل تحياتي base_mat.rar -
استخراج تقرير بين فترات زمنية مختلفة محددة
منتصر الانسي replied to moho58's topic in قسم الأكسيس Access
قمت بالتعديل على ملفك وإن شاء الله يكون هو الحل المطلوب كل شيئ موضح في الملف المرفق تحياتي basetimes.rar -
مطلوب حذف السجلات المكررة بناء على التاريخ
منتصر الانسي replied to ابوخليل's topic in قسم الأكسيس Access
هذا الإستعلام سيظهر كل رقم وأكبر تاريخ له SELECT usrID, Max(lstDate) AS MaxOflstDate FROM tblEshtrakatTsdeed GROUP BY usrID; ولإظهار بقية السجلات (التي لا تساوي أكبر تاريخ) SELECT usrID,lstDate FROM tblEshtrakatTsdeed WHERE (((lstDate) Not In (SELECT Max(tblEshtrakatTsdeed.lstDate) AS MaxOflstDate FROM tblEshtrakatTsdeed GROUP BY usrID HAVING (((tblEshtrakatTsdeed.usrID) = [usrID]));))); يمكن تحويل هذا الإستعلام إلى إستعلام حذف ليقوم بحذف جميع السجلات التي تاريخها أصغر من أكبر تاريخ لكل شخص تحياتي -
إنشاء رقم تعريف للطالب انطلاقا من نمودج
منتصر الانسي replied to moho58's topic in قسم الأكسيس Access
أنت لم توضح هل تريد الإحتفاظ بهذا الترقيم في الجدول أم تريده كحقل محتسب في الإستعلام وإذا كنت تريد الإحتفاظ به في الجدول فهل تريد أن يتم الترقيم أثناء الإدخال أم إجراء تحديث لعدة سجلات عموما هذا حل على السريع لإظهار الترقيم في إستعلام ويمكنك من خلاله مشاهدة الترقيم في الاستعلام أو تحويله إلى إستعلام تحديث لتحديث قيمة عمود الترقيم بقيمة العمود المحتسب تحياتي base_mat.rar -
استعلام يعد النسب المئوية المختلفة
منتصر الانسي replied to خير الايمان's topic in قسم الأكسيس Access
التعديل السابق كان على عجل لذا قمت بتحسين الدالة في المثال لتصبح أكثر عملية (اصبحت أشبه بدالة Partition) بحيث يمكن إستخدامها في أي مكان يتطلب تقسيم السجلات الى فئات (كتجميع الموظفين حسب الفئة العمرية مثلا) التطبيقات للدالة كثيرة ويمكن لأي شخص إستخدامها بحسب ماتتطلبه حاجته تحياتي 1.rar -
عند الحاق البيانات من جدول الى جدول اخر يتكرر نفس الاسم
منتصر الانسي replied to بلال اليامين's topic in قسم الأكسيس Access
انا مع الأخ @Foksh بأن لديك مشكلة في تسمية الحقول والتي تسبب الكثير من المشاكل على كل حال الآن الإستعلام يقوم بإلحاق نفس السجل وذلك لأن المعايير المحددة له واضحة فأنت تقول له أن يقارن قيم الحقول بالقيم من النموذج الفرعي ويعتمد الحل المطلوب على أحدى الحالتين التاليتين - إذا كنت تريد مقارنة الحقول مع القيم الموجودة في النموذج الفرعي الأعلى فيجب تعديل معايير الإستعلام لتشير إلى النموذج الفرعي sfVaca200 وليس sfVaca - اما اذا كانت القيم المستخدمة كمعيار بحث موجودة في النموذج الفرعي الاسفل فيجب إجراء Requery للنموذج الفرعي فكما لاحظت فإن محتوياته لا تتغير مهما كان إختياري من القائمة تحياتي -
استعلام يعد النسب المئوية المختلفة
منتصر الانسي replied to خير الايمان's topic in قسم الأكسيس Access
اليك تعديل عالسريغ بإمكانك تعديله حسب رغبتك تحياتي 1.rar -
توقف البرنامج عند اختيار قيمة محددة عن سواها
منتصر الانسي replied to سامر محمود's topic in قسم الأكسيس Access
المشكلة تظهر لشهري 8 و 9 وليس 9 فقط والسبب هي وجود قيم فارغة في الحقل Add_Days التابع للجدول moa_details الان لديك حلين إما تعبئة الحقول الفارغة بالقيمة 0 أو إستخدام دالة Nz في الإستعلام تحياتي