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

nssj

03 عضو مميز
  • Posts

    378
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل منشورات العضو nssj

  1. أحسن الله إليك أخي الكريم .. بالنسبة للاعتبار الأول (الصفحات التي لا تبدأ بأرقام) تم المطلوب بحمد الله أما بالنسبة للثاني، فهو يضع علامة في الصفحات التي ليس فيها إلا ترقيم واحد إذا كانت لا تبدأ بأرقام، وظني أن السبب أنه في هذه الحالة يكون الترقيم في أول الفقرة وليس في أول الحقل وإشكالية أخرى ظهرت لي لا أدري ما سببها وهي كما في الصورة
  2. وعلكم السلام أخي الكريم جعفر أولا: لأني أجيد التعامل مع الأكواد أكثر حولت الاستعلام إلى كود Private Sub com_check_Click() CurrentDb.Execute "UPDATE book SET book.check_Page = IIf(IsNumeric(Left([Nass],1)),-1,Null), book.check_No = IIf(IsNumeric(Left([Nass],1)) And InStr(10,[Nass],Chr(10)),""-1"",Null)" MsgBox "DONE" End Sub ثانيا: بخصوص الاعتبار الأول فالكود يعمل بالعكس، المطلوب تمييز الصفحات التي لا تبدأ بأرقام، وهو يميز الصفحات التي تبدأ بأرقام ثالثا: الاعتبار الثاني يعمل بالشكل المطلوب، لكن إذا كانت صفحة لا تبدأ بأرقام وكان فيها أكثر من رقم بالشرط المطلوب لا يعمل الكود، يعني في مثل هذه الصفحة المعدلة: وطبعاً لأني مش فاهم الكود فما عندي قدرة على محاولة التعديل 😅 فإذا وجدت وقتا أخي الكريم فلعلك تتكرم بشرح موجز عن العبارات المستخدمة، فقد تنفعني في اختراعات قادمة 😁 .. مثلاً عبارة (IsNumeric) ماذا تعني 🤔
  3. الإخوة الكرام السلام عليكم ورحمة الله وبركاته في الملف المرفق حقل نصي (Nass) المطلوب كود لتمييز الصفحات باعتبارين * الاعتبار الأول: الصفحات التي لا تبدأ بأرقام، يعني في مثل هذه الصفحة يصبح مربع (check_Page) : نعم * الاعتبار الثاني: المفترض ألا تحتوي الصفحة إلا على ترقيم واحد، والمطلوب تمييز ما عدا ذلك، وآلية تمييز هذه الصفحات فهي أن يوجد فيها أكثر من فقرة تبدأ برقم، كما في هذه الصورة فقد تحتوي الصفحة على أرقام في أكثر من موضع كما في الصورة، فإذا كان الرقم في بداية السطر فيعني أنه للترقيم، فإذا كان يوجد أكثر من رقم بهذا الشرط فتميز هذه الصفحة بجعل مربع (check_No) : نعم check_Book.accdb
  4. جزاك الله خيراً أخي الكريم Moosak وأحسن إليك .. تم المطلوب بحمد الله بعد تجاوز بعض المشاكل وتصحيح بعض الأخطاء في الملف .. ولذلك تأخرت في الرد 🙂 أولا: غيرت (Dim I As Integer) إلى (Dim I As Long) للعمل على الملف الأصلي الذي يحتوي (54700) سجلا ثانيا: كانت تخرج هذه الرسالة وكنت أظن أن المشكلة هي كثرة عدد السجلات، فكنت أحذف من السجلات وأعيد التجربة حتى وصلت إلى (70) سجلاً، ولا زالت الرسالة تخرج وبعدين شربت كاسة شاي ومخمخمت 😁 واستنتجت أن المشكلة هي وجود قوس البداية { ، بدون نهايته: } ، ويرجع السبب لأمرين: 1- أنني استخدمت نصا مختصرا، لأني لا أريد البحث في كل السجل لوجود أرقام بين {} في أواخر العديد من السجلات وهي أرقام غير مطلوب استخراجها، نحو: (يأتي {8155} ، تقدم {122} ..) وفي بعض الصفوف كانت توجد آيات بين قوسين {} ونتيجة الاختصار تبقى بداية الآيات مع قوس البداية { ، ويحذف الباقي مع قوس النهاية } وتجاوزت هذه المشكلة بعمليات استبدال {أ - {ب - {ت .. .. بفراغ 2- وجود أخطاء بكتابة الأرقام والأقواس، مثل: {1088) ، {2512 عن ابن .. وتم تصحيح هذه الأخطاء، لأن الكود يقوم بتعبئة الجدول إلى أن يصل إلى السجل الذي فيه الخطأ ويقف، وهكذا عرفت أين الأخطاء وعالجتها والآن بحمد الله تم المطلوب وزيادة: بتصحيح هذه الأخطاء فالحمد لله أولاً وآخراً وكل الشكر للأخ الكريم Moosak على مساعدته
  5. فعلا الكود قام باستخراج الأرقام المطلوبة .. لكن يبقى وضعها في الجدول المطلوب (TAB_MNO) بالطريقة المطلوبة كما يظهر في الصورة ، رقم (MNO) ثم الرقم المستخرج من هذا السجل أعني أخي الكريم أنه في حالة وجود أكثر من رقم مستخرج كما في الصورة التي أرفقتها أنا وأنت، تجعل الخيار في حقل (MK) : نعم لأني قد أحتاج لفرز هذه الحقول التي فيها أكثر من رقم
  6. الإخوة الكرام .. حقل (NASS) في جدول (TAB) حقل نصي، كثير من حقوله – وليس كلها - تحتوي على ترقيم معين بين قوسي {} والمطلوب استخراج هذه الأرقام حيث وجدت، الأرقام التي بين هذين القوسين فقط دون القوسين، ووضعها في جدول (TAB_MNO) في حقل (OLD_NO)، مع وضع رقم (MNO) للسجل الذي تم الاستخراج منه مع ملاحظة أمرين: * أنه لا يشترط أن يكون كل ما هو بين هذين القوسين {} أرقاماً، فقد يكون حروفا أو رموزا، وفي هذه الحالة فغير مطلوب استخراج ما بينهما * قد تتعدد هذه الأقواس مع الأرقام في السجل الواحد، والمطلوب استخراج الجميع وليس أول قوسين فقط، وفي هذه الحالة توضع علامة (نعم) في جدول (TAB_MNO) عند رقم السجل الذي حدث فيه هذا التعدد وفي هذه الصورة تظهر الملاحظتان (وجود غير الأرقام بين القوسين ووجود أكثر من قوسين) وقمت بتعبئة بعض الصفوف في جدول (TAB_MNO) يدويا ليظهر المطلوب فهل يمكن إنشاء كود يقوم بهذه العملية ؟ MZ_MNO.accdb
  7. هل اكتمل أخي الكريم 🙂
  8. الملاحظة التي في ذكرتُها مشاركة سابقة فأنا لم أجد هذا الخيار في الفيديو الذي وضعته أخي الكريم
  9. نعم أخي الكريم مناسب
  10. جزاك الله أخي الكريم .. يظهر من الصور أنه عمل جميل وفيه خيارات كثيرة ومتنوعة لكن أرجو أن يكون فيه خيار لعرض أسماء المسانيد التي توجد فيها الأحاديث لاستعراض أحاديث كل مسند لوحده عند الحاجة لذلك
  11. بارك الله فيك أخي الكريم لا يوجد عندي شيء جديد لأرفقه .. بانتظار أن ترفع ما عندك لتجربته
  12. أخي الكريم .. أشكر لك اهتمامك وأرفقت لك الملف الذي أجري عليه التجارب للوصول لأمرين: * عرض أسماء الصحابة الذين لهم أحاديث في هذا الموضوع واستعراض أحاديث كل صحابي ، وهذه توصلت إليها بحمد الله * عرض رقم الأحاديث الموجودة في كل موضوع سواء رئيسي أو فرعي، وقد توصلت لذلك في المواضيع الفرعية، أما الأساسية فيخرج بجانبها [0] بناء على أنه كذلك في جدول الموضوعات (TAB_Subject) حقل (Total) لأني لا أعرف كيفية حساب كل الأحاديث التي في كل فروعها 🤔 MZ_SUB 12.rar
  13. اعذرني أخي الكريم .. لم أفهم قصدك شرح لماذا بالتحديد ؟ وماذا تقصد بــ (تتحدث جقل قائمة) ؟
  14. نعم شكراً جزيلاً للأخ AbuuAhmed ولكل الإخوة الكرام الذين يصبرون على كثرة استفساراتي 😀 وبخصوص المشاكل التي واجهتني في شجرة العناوين فقد تم تجاوزها بحمد الله واستخدمت نموذجاً فرعيا بغرض الذهاب للمسند المطلوب، يعني بعد عرض كل أحاديث الموضوع يمكن الذهاب للمسند المطلوب، وهذه نتيجة مبدئية جيدة ويمكنني تطويرها بعون الله أما عكس ذلك .. يعني في النموذج الرئيسي الذي يستعرض الأحاديث على المسانيد، فالمطلوب عرض المواضيع التي يحويها هذا المسند فقط للانتقال إليها أو استعراضها .. فهذا لا بد له من موضع مستقل عندما أكون جاهزاً لذلك .. وظني أنه ممكن ، إن لم يكن باستخدام شجرة العناوين فباستخدام القوائم والحاصل أنه بخصوص التعديل على شجرة العناوين فقد تم المطلوب بحمد الله وأنا بانتظار نتيجة عمل الأخ الكريم rockjone33
  15. بارك الله فيك أخي الكريم .. كفيت ووفيت أنا كان استفساري عما إذا كانت هناك آلية لجعل الشجرة تعمل بشرط، لأن هذا سينفعني عند محاولة عرض شجرة العناوين لمسند معين: العناوين التي لها أحاديث في هذا المسند فقط، لأن الملف الأصل عندي (TAB) مرتب على المسانيد كنت أريد أن أعرف المفتاح لهذا الغرض لكي أجري التجارب، فإن لم أفلح سأطلب ذلك في مشاركة مستقلة، لأن طلبه هنا أعتقد انه يعتبر خروجا عن الموضوع .. هذا فضلا أنني لست مستعدا لهذا الطلب الآن .. لا بد من إعداد (عينة مصغرة) مرتبة على المسانيد والموضوعات للتجربة عليها نعم والحمد لله نجحت بشكل ممتاز، مع أنني عندما حاولت حذف الملف الفرعي الذي تعرض فيه الأحاديث لاسبداله بملف فرعي آخر كانت تخرج عدة رسائل ولا زالت التجارب جارية المهم في الأمر .. أنني كنت مرتاحاً لهذا التقدم دون الحاجة لتغيير هيكلة جدول الموضوعات وإعادة تقسيمه لأن هذا الأمر لن يكون سهلاً وكوني حققت نجاحاً بهذا الجدول في عدة مجالات: الإضافة والتعديل على العناوين، وربطها بالأحاديث، مع عرض الموضوعات على شكل قوائم مع عرض أحاديث كل عنوان .. ، لكن هذا النجاح مبني على مجرد التجارب دون معرفة مني لأصول وخفايا بناء قواعد البيانات وتصميم الجدوال، وأريد أن أتأكد من أهل الخبرة أن هذا الطريق الذي سرت فيه صحيح، لأنني ما زلت في البداية ولا أريد بعد رحلة بضعة أشهر لتصنيف الأحاديث على الموضوعات أن أكتشف أن عملي كان مبنيا على أصل غير صحيح وأنه كان من الأفضل لو أني عملت كذا وكذا لذلك لما قرأت كلام الأخ rockjone33 : (ان يكون منفصل لكل لجدول .. ..) ظننت أنه يقترح عمل جدول لكل مستوى وأنه الأفضل لكن قولك أخي الكريم rockjone33 في مشاركتك الأخيرة يعنني أنني أخطأت في فهم كلامك .. فأنا أولاً أعتذر عن سوء الفهم وثانيا أنا مرتاح أنه يمكنني الاستمرار على هذا نهج الجدول الواحد لأن التغيير لن يكون سهلا هذا مع العلم أنني قمت بتجربة لتقسيم الجدول إلى أربعة، ولم يأخذ مني الأمر ربع ساعة وأول مطب وقعت فيه لعدم خبرتي: كيف سأقوم بتصنيف الأحاديث على موضوعاتها بهذه الجداول الأربعة ولو تم جمعها باستعلام فبأي رقم سأربط الموضوعات بالأحاديث ولدي أكثر من ترقيم وأكثر من مستوى، فأكثر الأحاديث مرتبطة عبر المستوى الثالث وبعضها بالثاني والقليل منها بالرابع وإذا كنت بحاجة لاستعلام لضم هذه الجداول الأربعة فلماذا التقسيم من الأصل كل هذه الأسئلة كنت أفكر فيها وجعلتني غير مرتاح للتقسيم ليس لأنه خيار غير جيد .. بل لأنني لم أعتد عليه وبنيت كل عملي على الجدول الواحد .. وتم بحمد الله التغلب على معظم المشاكل التي واجهتني فيه بفضل الله أولا وآخرا ثم بفضل مساعدة الإخوة الكرام وبانتظار نتيجة عمل الأخ الكريم rockjone33
  16. هل تقصد أخي الكريم عمل جدول مستقل لكل مستوى من العناوين؟ أنا كنت منذ بداية دخولي عالم أكسس وإنشاء قاعدة البيانات .. وبناءً على المعلومات التي تحصلت عليها من النت عملت تصميما مبدئيا للموضوعات بناء على ذلك، شجرة مصغرة لعدة موضوعات من ثلاث مستويات، كل مستوى في جدول مع إنشاء علاقات بين الجداول: تم تعرفت على أحد الإخوة المبرمجين – المتمرسين ولديه خبرة في تصميم البرامج الموسوعية: كتب الحديث – كتب الفقه ..- وأريته عملي فقال لي: الأفضل أن تكون العناوين في جدول واحد، وعلمني هذه الطريقة وسرت عليها في فهرس المسانيد: ثم انقطع الاتصال معه فأكملت الطريق لوحدي والعودة للجداول المتعددة يعني أن أعود للبداية في تصميم نموذج الحذف والإضافة والنقل للمواضيع، ونموذج تصنيف الأحاديث على الموضوعات وغير ذلك، لأن عملي الأسبق كله كان مبنيا على هذا الجدول الواحد وعلى الرغم من أن ذلك سيأخذ وقتا وسأزعجكم بكثرة الأسئلة والاستفسارات 🙂 لأنه أمر جديد علي فإذا كان هذا هو الأفضل والأكثر سلاسة وسرعة ومرونة في عرض الموضوعات على شكل قوائم أو شجرة بعدة خيارات : الكل أو لمسند أو مسانيد معينة، مع البحث فيها والتعديل وغير ذلك مما لا يخفى عليكم فسأستعين بالله وأعيد العمل في كل ما يتعلق بالترتيب على الموضوعات بانتظار رأي أهل الخبرة الكرام 🙂
  17. هل يمكن عرض الموضوعات التي فيها أحاديث فقط 🤔 مع العلم أنه يوجد في جدول (TAB_Subject) حقل (Total) وهو لبيان عدد الأحاديث في هذا العنوان ويتم تحديثه عند فتح نموذج (TAB_Subject) بهذا الكود Private Sub Form_Load() CurrentDb.Execute "UPDATE TAB_Subject SET TAB_Subject.Total = DCount(""*"",""[TAB_Subject_X]"",""[SUB_ID]="" & [ID])" ولأني أحب التجارب جربت أن أغير في كود الشجرة Set rst = dbs.OpenRecordset("SELECT * from TAB_Subject ((TAB_Subject.Total)>0)", dbOpenDynaset) وطبعا التجربة فاشلة 😅 وإذا كان هذا ممكنا سيكون مفتاحا لي للتجارب التي سأجريها لمحاولة عرض أحاديث مسند معين وليس كل الأحاديث
  18. أخي الكريم rockjone33 بخصوص الإضافة والتعديل على العناوين فهو من نموذج (TAB_Subject) وليس من شجرة العناوين شجرة العناوين لعرض الموضوعات وأحاديثها فقط هذا ما أراه مناسبا والتعديل يشمل إضافة عناوين جديدة وحذف بعض العناوين والتقديم والتأخير بين بعض العناوين وهو يسري على المستويات الثاني والثالث والرابع، أما المستوى الأول وهو الأبواب الرئيسية فلا تعديل عليها وأكواد الإضافة والنقل كلها تعمل على حقل (TNO) وهي موجودة في الملف المرفق ولم أصمم بعد كودا لإضافة عنوان من المستوى الرابع لعدم حاجتي له في هذه المرحلة .. هذا المستوى سيأتي دوره لاحقا ليس في هذا الملف آخر التعديلات على نموذج (TAB_Subject) لذلك أعدت رفعه كما وأنه كانت تظهر لي هذه الرسالة عند فتح الشجرة وحصلت معي بعض المشاكل عند محاولة إضافة العناوين ولما غيرت اسم الحقل (Parent) إلى (Parentx) سارت الأمور عندي بشكل جيد ولم تظهر الرسالة MZ_SUB 11.rar
  19. لغرض إضافة سجل بين السجلات، وهو حقل موحد في جميع الجداول وهو مسؤول عن الترتيب فقط، وكود الإضافة الذي اعتمدته يتطلب الترقيم العشري. أما لماذا طلبت أن يكون ترقيم شجرة العناوين بناء عليه إن أمكن فلأنه الأيسر علي عند إضافة عناوين جديدة ونقلها وتغيير ترتيبها، وهو أمر أحتاجه كثيرا والأكواد التي اعتمدتها للإضافة هي في نموذج (TAB_Subject) وكما ذكرت سابقاً فأنا تعرفت على هذه الطريقة في الترقيم (Code - Parnet) حديثا ، وبالتحديد قبل أسبوعين، لذلك أنا غير متمرس عليها وقد أجد صعوبة في التعامل معها عند إضافة العناوين والطريقة التي اتبعتها في الترقيم الفرعي (code) هي الترقيم المتسلسل لكل مستوى * فعناوين المستوى الأول أرقام (code) فيها تبدأ من (1) إلى (100) * الثاني من (100) إلى (999) * الثالث من (1000) إلى (9999) * الرابع من (10000) وعند إضافة عنوان يتم إضافة الرقم التالي لآخر رقم حسب المستوى باستخدام (Dmax) وعندها تصبح الأرقام غير متسلسلة، وترتيبها في الشجرة لن يكون بالشكل المطلوب وكمثال على ذلك أضفت عنوانين عنوان (جديد2) في المستوى الثاني ، و (جديد3) في المستوى الثالث، وترتيبها كما في الصورة: وهي تظهر في الشجرة هكذا وجربت أن أغير الترتيب في الكود إلى rst.Sort = "LVLno,TNO" ولا أدري إن كان تصرفا صحيحاً أم لا .. لكن ترتيب العنوانين المضافين أصبح في الموضع الصحيح لأن ترتيب (TNO) يبقى متسلسلا بعد الإضافة والنقل ولا أدري أيضا إن كانت هذه هي الطريقة الصحيحة لترقيم حقلي (Code - Parnet) وها هناك طريقة أفضل خاصة عند الإضافة والحذف والنقل لكن هذا الذي أعرفه لحد الآن ومرفق الملف مع أكواد الإضافة بآخر تحديثاتها وأنا جهزت هالمشاركة قبل هذا التحديث 😀 .. فما هو مجال تأثير هذه الخاصية أخي الكريم جزاك الله خيرا أخي الكريم .. شجرة جميلة .. ولكني أحتاج للتجربة لمعرفة هل هناك تعديلات مهمة مطلوبة أم لا MZ_SUB 09.rar
  20. تمام أخي الكريم الترتيب صار مزبوط ولكن هل بالإمكان أن يكون الترتيب بناء على (TNO) بغض النظر عن أرقام (parnet) و (code) فقد يكون أسلم بالنسبة لي عند التعديل بالحذف والإضافة على العناوين لأني ضامن أنه سيبقى على التسلسل المطلوب وكيف يمكن أن يكون العرض في البداية كما في هذه الصورة .. حاولت بجعل الخيارات كما في الملفات السابقة التي أرفقتها بس ما زبطت ومرفق الملف بعد تصحيح الأرقام واعذورني لبضع ساعات فسأكون خارج التغطية 😀 MZ_SUB 06.rar
  21. استفسار بخصوص هذه الطريقة .. ألا يمكن الاستغناء عن ظهور الأرقام في الشجرة أم أنها ضرورية لترتيب العناوين ؟
  22. فعلا أخي الكريم .. السطر المذكور كان سبب البطء والآن أصبح سريعا، بل أسرع من الكود الذي استخدمته، حتى أنني جربته على ملف قديم كان عدد العناوين فيه (8080) حيث كنت جعلت لكل رقم آية في التفسير عنواناً مستقلاً، ثم عدلت عن ذلك، لكنه مع ذلك أصبح يفتح أسرع من الملفات السابقة المرفقة مع أن عدد العناوين فيها أقل بمقدار الربع وأحسنت أخي الكريم بوضع حقل للأخطاء، فقد عالجتها بحمد الله وهذه الأخطاء لأنني لم أجري التجارب الكافية على هذه الطريقة وأنا بحاجة لبعض الوقت للتمرس على هذه الطريقة في الترقيم إذا كان رأي أهل الخبرة أنها أفضل ولكن يوجد خلل في ترتيب عرض الموضوعات الرئيسية فهي كما في الصورة: والترتيب الصحيح وإذا كان يمكن معالجة هذا الأمر فقد تكون هذه الطريقة أفضل لسرعتها، ولأنه يمكن استدعاء الأحاديث المرتبطة بالموضوع دون الحاجة لإظهار (TNO) في شجرة العناوين وبانتظار رأي الأخ الكريم rockjone33 ومناسبة هذه الطريقة لطبيعة عمله أنا بانتظار إرشادات الإخوة الكرام ونصائحهم 🙂
  23. أي قائمة تقصد أخي الكريم ؟ وهل يمكن عرض الشجرة من اليمين إلى اليسار كما في ملفي المرفق أين هذا الموضوع ؟
  24. شكراً على النصيحة أخي الكريم .. وأنا كنت أستخدم (2019) وكنت مبسوط عليه .. لكن حصلت معي سابقا مشاكل في تطبيق بعض الأكواد وأخذت أحذف وأحمل أكثر من إصدار .. والنتيجة: لم يعد يشتغل معي (2019) ؟؟؟ .. على كل حال أنا أفكر بعمل فورمات للجهاز قريبا وعندها سأعود له وأنا أتوه عند استخدام المصطلحات الإنجليزية وإن كانت بسيطة 🙂 .. لذلك لم أفهم مقصدك أخي الكريم بخصوص الأب والابن لهذه الطريقة 🙂، فأنا اختصرت الحديث عنها بسبب البطء عند فتح النموذج، كما أن هذه الطريقة تستدعي إضافة حقلين لجدول الموضوعات (TAB_Subject)، حقل للأب (NO1) وحقل للابن (NO2)، وأنا فضلت الإبقاء على المستويات الأربعة (LVL1 – LVL2 .. ..) لأنها الطريقة القديمة التي مشيت عليها وجربتها في الحذف والإضافة والتعديل وعرض القوائم بلا مشاكل وأرفقت لك الملف التجريبي الذي فيه طريقة العرض بالاعتماد على هذا الكود MZ_SUB 03.rar
  25. نعم .. في العناوين الفرعية .. وأشرت إلى ذلك في مشاركة سابقة، لذلك في الملف المرفق طلبت الأحاديث باستعمال (TNO) لأنه لا يتكرر فهو أفضل من معالجة تكرار الأسماء في هذه المرحلة
×
×
  • اضف...

Important Information