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

nssj

03 عضو مميز
  • Posts

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

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

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

  1. أعانك الله أخي الكريم .. ورزقني وإياك التوفيق والتيسير سأفكر معك بصوت عالي .. هذه المشكلة التي واجهناها في نظام أرقام الصفحات لم نواجهها في نظام أرقام الأحاديث، لأنه حيث كان التخريج بأرقام الأحاديث فلن يرد الحديث في (TAB) إلا في مكان واحد، ولن يكون له إلا رقم ربط (MNO) واحد مثلا، في لو كان رقم (33) في: الأربعين في مناقب أمهات المؤمنين (33) ، هو رقم الحديث وليس الصفحة فلن يتكرر بهذه الصيغة في (TAB)، ولكن لكونه رقم صفحة فقد يتكرر لأن الصفحة الواحدة قد يكون فيها أكثر من حديث، كما هو ظاهر في الأمثلة التي عرضتها سابقا (أمالي الشجري 1/ 60 في الصفحة الواحدة أربعة أحاديث) * لذلك ولحل هذه المشكلة كان اقتراحي أن تقوم الدالة بإحضار كل النتائج التي يجتمع فيها اسم الكتاب ورقم الصفحة، إحضارها ووضعها في مربعات منفصلة لأختار الرقم المطلوب منها وهنا الحلقة المفقودة في نظري الدالة لم تلتزم بإحضار النتائج بشرط اجتماع: اسم الكتاب ورقم الصفحة، بل تحضر النتائج التي فيها رقم الصفحة حتى لو لم يكن فيها اسم الكتاب المطلوب يظهر هذا في الصورة التي أرفقتها في المشاركة السابقة وهذا العمود (exBooks) الذي أضفته لإظهار أسماء الكتب في كل حديث عمود مهم وفكرة جيدة زادك الله توفيقا أخي الكريم وبالنظر في هذا العمود لهذا الحديث الذي ضربتُه كمثال كما ترى أخي الكريم: لا يوجد ضمن أسماء الكتب في المواضع الثلاثة: الأربعين في مناقب أمهات المؤمنين فعلى أي أساس تم عرض أرقام هذه الأحاديث في النتائج .. تم عرضها لأن فيها رقم الصفحة المطلوبة فقط (ص 33) مع الإشارة أخي الكريم أن نص (TAB) المرفق ليس فيه: الأربعين في مناقب أمهات المؤمنين (ص 33) ولما أضفتها في أحد صفحات (TAB) أعطاني النتيجة الصحيحة فقط لذلك أنا كمستخدم وصلت إلى نتيجة: الحلقة المفقودة أن الدالة إذا لم تجد النتيجة المطلوبة (وهي اجتماع اسم الكتاب والصفحة في موضع واحد) تعرض النتائج التي فيها رقم الصفحة فقط .. وهذا غير مطلوب وضرره أكثر من نفعه، ولا فائدة من عرض مثل هذه النتائج حتى لو لم يوجد غيرها ، فهي في حكم العدم وبانتظار أن تصل إلى الحلقة المفقودة كمبرمج لهذه الدالة زادك الله توفيقا ويسر أمرك أخي الكريم
  2. يبدو لي أني عرفت سبب هذه الظاهرة التي لا تحدث دائما بعد التجربة ظهر لي أنها تحدث إذا لم تجد الدالة النتيجة المطابقة: اسم الكتاب والرقم فتظهر كل النتائج التي فيها الرقم كما في هذه الصورة تم إظهار كل هذه النتائج الخاطئة لأنه لا يوجد في النص (Tab) النتيجة المطلوبة، وهي الأربعين في مناقب أمهات المؤمنين (ص 33) ولما أضفتها في (TAB) وأعدت تشغيل الدالة أعطاني النتيجة المطلوبة فقط وتجاهل الباقي لذلك فالأفضل أنه إذا لم يوجد التطابق باجتماع اسم الكتاب والرقم فلا حاجة للاحتفاظ بهذه النتائج أو إظهارها بأي طريقة لأنه لا وزن لها Smart_Search_Pages_Test.rar
  3. القائمة هي جدول (BOOKSLIST) وهي في الملف المرفق بآخر تحديثاته BOOKSLIST.accdb
  4. أخي الكريم .. أجريت تجربة على ملف كبير، والنتيجة جيدة بالنظر للمعطيات وأنا الآن سأتوقف عن إكمال التجارب لكوني خارج المنزل لبعض الأشغال لكن عندي استفسار بخصوص الأرقام التي تعرضها الدالة في مربعات (MNO) هل تعرض نتائج البحث عن الجزء والصفحة، أم نتائج البحث عن اسم الكتب، أم نتائج البحث عن أحدهما أو كليهما فقد لفت نظر في العديد من الأمثلة أن كل الأرقام التي فيها غير مطلوبة لأنها في مثل الأربعين في مناقب أمهات المؤمنين (ص 55) تعرض كل الصفحات التي فيها (ص 55) أو (1/ 55) حتى لو لم يكن فيها اسم الكتاب: الأربعين في مناقب أمهات المؤمنين ولهذا كانت المواضع كثيرة جدا في (allFoundMNO) فهل يمكن جعل هذه المربعات تظهر فقط النتائج التي يجتمع فيها الأمران كما اقترحت من قبل: وجود حقل خاص تتم فيه فلترة أرقام (allFoundMNO) بهذا الاعتبار وهذه الأرقام المفلترة هي فقط التي يتم عرضها في المربعات إن أمكن هذا فستؤدي هذه المربعات غرضها بشكل جيد * ثم إن كان بالإمكان إضافة دالة لاستبدال أسماء الكتب الثانية (BookName2) في نص البحث في (TAB) بحيث لا يبقى فيه إلا أسماء (BookName) من القائمة (BOOKSLIST) وإيكم أخي الكريم
  5. الحمد لله أخي الكريم .. النتيجة في هذا الملف تمام بحمد الله ، بعد إضافة صغيرة مني النتيجة الأولى كانت: كل النتائج صحيحة إلا (3) فقط وأعني بصحيحة حتى تلك التي يكون فيها رقم (MNO) الرئيسي ليس مطابقا، لكن الرقم الصحيح موجود في المربعات الأخرى، لأن هذا هو المطلوب والنتائج الخاطئة الثلاث كانت بسبب وجود الاسم الثاني للكتاب فخطر على بالي أن أستبدل الأسماء الثانية للكتب بالأسماء الأولى في حقل (NASS) من (TAB) فلم يعد في النص إلا: أمالي الشجري ، الأربعين للبكري وعندها أصبحت النتائج هي المطلوبة 100% والحمد لله وبالنسبة للخيارات التي ذكرتها أخي الكريم، فقد غيرت (False) إلى (True) في الكود ولم تتغير النتيجة سواء قبل الاستبدال أو بعده وأنا الآن أستعد لإجراء تجربة أكبر مع عينات عشوائية للاختبار .. والله الميسر
  6. وأنا أنتظر الملف المعدل الذي سأجري عليه التجارب .. لأني لا أعرف كيف أدرج هذه التعديلات في الأكواد 😐
  7. أخي الكريم .. لو تتكرم وترفع الملف بعد التحديث فقد جربت استبدال كود isBookInTextPageNum بالذي هنا ولم يعط النتائج المطلوبة
  8. جزاك الله خيرا أخي الكريم باستعراض النتائج ظهر أن النتائج الخاطئة كلها تقريبا بسبب وجود أكثر من حديث في صفحة واحدة وكما ذكرتُ أخي الكريم، التعقيدات في هذه الطريقة (الصفحات) ترجع إلى أمرين: الأول: وجود أكثر من حديث في صفحة واحدة الثاني: وجود الأرقام بعد (-) وهي أرقام لا حاجة لها عند البحث وتؤثر في عرض النتيجة وحتى نتفرغ للأمر الثاني لا بد من إنهاء الأول، لأنه السبب في معظم النتائج الخاطئة إن لم يكن كلها لذلك لا بد من إكمال البحث في باقي الملف (TAB) حتى لو وجد النتيجة المطابقة، حتى لو كلفنا ذلك وقتا أطول بكثييير وأنا أفضل أن يعرض أول نتيجة كنتيجة رئيسية .. وعلى كل الأحوال سواء عرض أول أو آخر نتيجة لا بد من استعراض هذه النتائج، لذلك أنا أفضل أن يتم فصلها لا حقا في مربعات منفصلة ليكون العرض أسهل وأنا هنا لدي استفسار بخصوص عرض كل النتائج، الذي فهمته أن حقل (allFoundMNO) تعرض فيه جميع النتائج قبل التصفية، لتقوم الدالة بفحص مواضع هذه الأرقام وما قبلها من أسماء الكتب واختيار المطابق منها، واستثناء الأرقام المطابقة لكن لكتب أخرى لذلك يوجد فيه مثل هذا وأنا هنا أسأل، هل يمكن استثناء مثل هذه النتائج، ووضع حقل جديد، مثلا: (CorrectMNONumbers) توضع فيه الأرقام التي تنطبق عليها الشروط فقط، وكأنها الأرقام الصحيحة المعتمدة .. يعني أن تقوم الدالة ببحث جديد كل مرة بعد أن تجد نتيجة مطابقة، لكن تبدأ من المكان الذي وصلت إليه من (TAB) وتبحث من بعده حتى تصل إلى نهايته، وفي كل مرة تجد رقما مطابقا تضعه في (CorrectMNONumbers)، وتكمل البحث من حيث وصلت، وهكذا ينتهي جدول (TAB) * وأما المثال الذي ذكرته أخي الكريم الأربعين للبكري (ص 38-39) // البكري في الأربعين (ص 39) فيغلب على ظني أن الخطأ ليس من تغير اسم الكتاب، لأن كل حديث في موضع مستقل، المشكلة في (-) والرقم الذي بعدها، فحتى لو كان اسم الكتاب في الموضع الثاني الأربعين للبكري (ص 39) فلن تلتفت له لأنها وجدت هذا الرقم (39) في موضع آخر قبله وهنا تأتي المشكلة الثانية: البحث عن طريقة لتجاهل الأرقام بعد (-) ، فما هو الإجراء الذي اتخذته الدالة لهذا الغرض ؟
  9. أخي الكريم .. هذا يستخدم أحيانا في الأحاديث الطويلة التي تأخذ أكثر من صفحة، (1/ 132-133) تعني أن الحديث بدأ من صفحة 1/ 132، وانتهى في 1/ 133 والكتب التي تستخدم هذه الطريقة تستخدم في هذه الحالة الشرطة (-) يعني أن الحديث ممتد في هذه الصفحات أما الفاصلة (،) فتعني غالبا موضع آخر، يعني: 1/ 12، 178 تعني أن الحديث في موضعين: الأول 1/ 12، والثاني 1/ 178 نعم أخي الكريم الفاصل هو دائما (/) بمسافة أو بدون .. لا فاصل بين الجزء والصفحة سواه
  10. الصفحة بدون الجزء لا بد أن يرمز لها بحرف ص وقبله قوس بمسافة أو بدون (ص 55) ( ص 55 )، أما حرف ص بدون قوس فغير وارد لا يمكن، إما رقم الحديث ، أو الجزء والصفحة ، أو الصفحة فقط لا مشكلة في استبدال (ص & ( ص بـ 1/ في كل الملف بشرط أن يأتي بعدها بمسافة أو بدون مسافة رقم وإذا كنت تريد أن تجعل الاستبدال إذا جاءت (ص & ( ص بعد اسم الكتاب مباشرة فعندها لا يلزم أن تشترط أن يكون بعدها رقم لكن قد يأتي في النص: الأربعين للبكري (ص 55) حدثنا .. .. .. ..، و(ص 102) وعندها لن يتم استبدال الموضع الثاني لأنه ليس بعد اسم الكتاب مباشرة لذلك فلعله من الأفضل أن يكون الاستبدال بشرط أن يكون بعدها بمسافة أو بدون مسافة رقم، إذا كان هذا ممكنا، وإن لم يكن ممكنا فيمكن الاستبدال بعد اسم الكتاب مباشرة ولا بأس في ذلك لأن المثال الذي ذكرته قليل ولا مشكلة من معالجته يدويا لا أرى حاجة لهذا الاستبدال، لأن المثال الذي ذكرته غير وارد أن يرد في النص وكما أنت تفكر بصوت عالي فأنا سأفكر بصوت عالي وكأني أتعامل مع ملفات الوورد: مشكلتنا في مثل (1/ 132-133) (ص 33-34) هل يمكن أن نستخلص بعد اسم الكتاب (10) حركات مثلا، ثم نذهب إلى أول (-) ثم أستبدلها برمز غير موجود في الملف، مثلا //، ثم أتأكد من عدم وجود مسافة بعد هذا الرمز الجديد باستبدال (// ) بـ (//) في كل الملف، ثم أعود للدالة في أكسس لتحذف كل ما بعد (//) إلى أول مسافة اشترطت أن تحذف إلى أول مسافة وليس إلى نهاية القوس) لأن القوس قد لا يكون موجودا، وفي حالة وجود كلام أو أرقام مهمة فلن تحذف لأنه قطعا قبلها مسافة، والدالة توقفت عندها خطوات مملة 🙄 .. ولكن هكذا كنت أعمل في وورد 😅 إجمالا .. إذا كان هذا الأمر شديد التعقيد فلا بأس بمعالجته يدويا وبالتوفيق أخي الكريم
  11. للأسف أخي الكريم .. سنواجه هذا الأمر .. وقد يكون في الملف المرفق مثال لهذا .. وأنا الآن خارج البيت .. باختصار: كل ما واجهناه في الأرقام سنواجهه هنا وزيادة 😂
  12. فكرة جيدة أخي الكريم .. ولكن لا بد أن يكون الاستبدال بشرط إذا ورد بعدها بمسافة أو بدون رقم حتى لا يتم استبدال أمثال: (صلى الله عليه وسلم) (صليت خلف .. (صحيح .. مع احتمال وجود مسافة بين القوس وص ( ص وأنا من باب الاحتياط، ففي الملف المرفق كتابان (أمالي الشجري) (الأربعين للبكري) ميزت بعلامة في حقل (sad) لأنه بطريقة (ص ) والآن أذكر بعض التفاصيل التي لم أذكرها في المشاركة السابقة البحث في كتب الصفحات (1/ 187) (2 / 66) 3 / 44 (ص 94) سيكون بنفس الطريقة المعتمدة السابقة، من حيث اختيار اسم الكتاب من نموذج فإن لم يكن فمن عمود الكتب .. لا تعديل في هذا الأمر الاختلاف سيكون بأن البحث القديم كان بالاعتماد على رقم (B_HNO) أما الآن فسيكون بالاعتماد على عمودي: (part) و (Page) وبما أننا سنعتمد نفس إجراءات البحث السابقة فلن تواجهنا مشكلة البحث عن الرقم كاملا، ومشكلة وجود الرقم قبل اسم الكتاب أو بعده ولكن لكتاب آخر لكن توجد إشكاليات خاصة بهذه الطريقة: ** الإشكالية الأولى: وهي في هذه الأمثلة في (TAB): أمالي الشجري (2/ 132-133) ، الأربعين للبكري (ص 38-39) وهما في جدول (BOOKS) لا مشكلة عندما تحد الدالة عن صفحة (132) أو صفحة (38) لأن الدالة ستجدهما أولا، ثم إذا تابعت البحث فستجد أيضا صفحة (133) وصفحة (39) ولهما رقم (MNO) مختلف والأمر هنا هين، لأن الدالة ستضع الرقم الذي تجده أولا في (MNO)، وهو المطلوب * المشكلة الأكبر عندما تبحث الدالة عن الحديث التالي: الشجري 1 / 133، البكري (ص 39) فعندما تبحث الدالة عن (الأربعين للبكري) صفحة (39) في (Tab)، قد تجد أولا الحديث الذي فيه: الأربعين للبكري (ص 38-39) وهي ليس المطلوب وإذا تابعت البحث ستجد المطلوب: الأربعين للبكري (ص 39) ولكل منها رقم (MNO) مختلف وكذلك الحال في أمالي الشجري جزء (2) صفحة (133) قد تجد أولا النتيجة غير المطلوبة: أمالي الشجري (2/ 132-133) وإذا تابعت البحث ستجد النتيجة الصحيحة: أمالي الشجري (2/ 133) وفي الحالتين ستضع الدالة في (MNO) الرقم الأول الذي وجدته، وليس هو الرقم المطلوب فهل سنبحث عن طريقة لحذف مثل هذه الأرقام كما فعلنا في مثل [مصنفات ابن البختري 147 - (55)] أم يمكن تجاوز الأمر بطريقة أخرى، أم لا بد من وجود هذا الخلل والتعامل معه لكونه قليل الحدوث ثم هل ستعمل الدالة في مثل: أمالي الشجري (1/ 16، 2/ 46) ** الإشكالية الثانية: وجود أكثر من حديث في الصفحة الواحد، ولكل حديث رقم (MNO) فهذه الأحاديث الأربعة ستبحث عنها الدالة بصيغة: أمالي الشجري (1/ 60) وستجدها في أربعة مواضع من (TAB) لكل موضع رقم (MNO) وبما أن الدالة تحتفظ بجميع النتائج وتضعها في حقل (allFoundMNO) فلا بأس بذلك، لكن إن أمكن أن توضع هذه النتائج في حقول منفصلة معدة لذلك مسبقا فهو أفضل، سواء بنفس الكود أو بكود منفصل وأهمية ذلك عندي، أني سأستخدم نموذجا يعرض الحديث من (TAB) بمجرد النقر المزدوج على الرقم، وبذلك سأستعرض هذه الأحاديث بسرعة وعندما أجد المطلوب أعتمد رقمه وقد أضفت ستة أعمدة لهذا الغرض في (BOOKS) لاستيعاب سبعة أرقام مع الحقل الرئيسي (MNO) لأني أستبعد أن توجد في مجموعة الكتب صفحة يوجد بها أكثر من سبعة الأحاديث في صفحة واحدة هذا ما خطر على بالي من إشكالات .. وقد تظهر إشكالات أخرى عند التجربة .. والله الميسر بالنسبة لاقتراحك أخي الكريم فلم أفهم بالضبظ ما تعني أخي الكريم وأنا أسمع كثيرا عن موضوع تحليل البيانات وإذا كان بإمكاني القيام بشيء لتسهيل عملي والحصول على أفضل النتائج فأنا حريص على ذلك وأنا تحولت لأكسس لهذا الغرض، فكل الملفات التي عندي كانت ملفات (وورد) وأنا الآن أعمل في بيئة أكسس لأستفيد من مزاياه إجمالا أخي الكريم .. دالة البحث الذكية التي طلبتها هنا هي على أهميتها بالنسبة لي وكونها ستوفر لي وقتا كبيرا .. فاستخدامي لها سيكون محدودا بكتب معينة، هي الكتب التي كانت موجودة لدي في ملفات (وورد) وأريد أن أربطها بقاعدة البيانات عبر (MNO) أما الآن وبعد أن أصبحت أستخدم أكسس وليس (وورد) فكل الكتب والأحاديث الجديدة التي أتعامل معها أدرجها فورا بجدول (TAB) مع رقم (MNO) مشكلتي الكبرى وهمي الأكبر سيكون في دالة عبقرية للبحث في النصوص، نصوص الكتب الجديدة من جهة ونصوص (TAB) والربط بينهما في حالة وجود التطابق المطلوب .. وأعتقد أنني هنا لا أتحدث عن مجرد دالة عبقرية، بل ربما ذكاء اصطناعي أو خوارزميات بحث متطورة .. وهذا ليس مجاله هنا .. فلكل مقام مقال Smart_Search_Pages.accdb
  13. جزاك الله خيرا أخي الكريم وأحسن إليك تم الأمر بحمد الله .. وبهذا نكون قد أنهينا ما يتعلق بالبحث عن الكتب بأرقام الأحاديث، والحمد لله أولا وآخر والآن جاء دور البحث عن الكتب بأرقام الصفحات أو الجزء والصفحة وهذه المجموعة فيها تعقيدات أكثر من سابقتها والبحث فيها سيكون بنفس الطريقة المعتمدة السابقة، من حيث اختيار اسم الكتاب من نموذج فإن لم يكن فمن عمود الكتب .. لا تعديل في هذا الأمر الاختلاف سيكون بأن البحث القديم كان بالاعتماد على رقم (B_HNO) أما الآن فسيكون بالاعتماد على عمودي: (Part) و (Page) أو أحدهما وهنا تكمن أول إشكالية .. فقبل إعداد ملف التجربة أردت أن آخذ رأيك في هذه القضية: الكتب التي تخرج بالاعتماد على الصفحات نوعان: 1 - الأول وهو الأكثر يذكر الجزء والصفحة بفاصل / بمسافة أو بدون مسافة [ (1/ 25)، ( 3 /7 ) ، 5/ 99 ، 6 /59] 2 - الثاني يذكر الصفحة فقط بعد حرف (ص بمسافة أو بدون مثل: [ (ص 25)، (ص66) ( ص 126) ] هذا كله في جدول (TAB) أما في جدول (BOOKS) فإن عمود (Part) لا يكون فارغا، وحتى في هذه الكتب التي لا يذكر فيها رقم الجزء ويستعاض عنه بـ (ص ) فرقم الجزء فيها (1) يعني لا يوجد ما يميزها وأعتقد أنه لا بد من تمييز مثل هذه الكتب عند البحث، لأن الدالة عندما تريد أن تبحث عن مثل هذه الكتب فهي لن تبحث عن رقم الصفحة يعد [ 1/ ] بل بعد (ص وأنا أستطيع تمييز مثل هذه الكتب، إما بأن أغير رقم الجزء فيها مؤقتا إلى (0)، أو بإضافة حقل خاص بصيغة (نعم أو لا) لتمييزها، بحيث أن الدالة إذا وجدت رقم (0) في عمود الجزء، أو علامة (نعم) في الحقل الخاص فستبحث عن (ص بدل البحث عن رقم الجزء فما هو الأنسب .. تغيير رقم الجزء إلى (0) أو تمييز هذه الكتب بعلامة في حقل خاص ؟ بانتظار رأيك لأعد الملف مع باقي التفاصيل
  14. (BooksList) فيه أسماء الكتب وبدائلها وأرقامها التي هي مجال البحث أما قائمة بأسماء كل الكتب التي ترد في (TAB) فلا يوجد، ومن الصعب حصرها، وبعضها يذكر مختصرا مثل: طب، هق، ك، كر، طس، شعب .. ، وهذه الأحرف تتكرر كثيرا في النص، مما يجعل البحث عنها وتمييزها صعب جدا غير موجود ، أضفته مؤقتا لإجراء التجارب، وأنا أحدثه يدويا .. لذلك فإن إعداد ملف للتجارب يأخذ وقتا أنا أعد ملفا خاصا لهذا الغرض 🙂 .. ولكن بعد أن نسدل الستار عن الخطوة الأولى: البحث عن رقم الحديث. بقي تعديل واحد هو الذي ذكرته في المشاركة السابقة وهذا التعديل بوضع حد ينتهي عنده البحث وينتقل للتالي قد يساعد في موضوع الصفحات
  15. ليس بالضرورة أخي الكريم 🙂، فقد يجتمع في الحديث الواحد: ابن عساكر في معجمه & ابن عساكر في تاريخه & ابن عساكر في جزئه البيهقي في سننه & البيهقي في الشعب & البيهقي في الأربعين
  16. أحسن الله إليك أخي الكريم بخصوص التعديل الأول: البحث بنفس الطريقة لكن باعتبار كتاب واحد فقط، فقد تم الأمر بحمد الله أما التعديل الثاني ، فلفت نظري قولك: فقمت بتغير : معجم ابن عساكر (142) إلى: معجم ابن عساكر 142 – فلم تجده الدالة لذلك فالبحث ينبغي أن يكون عن الرقم بعد اسم الكتاب بغض النظر عما بينهما من الأقواس والمسافات فالكتب تختلف في طريقة ترقيمها، ففي بعضها: كتاب ((55)) & كتاب 152 - & كتاب 152- & كتاب [47] & كتاب 35، & كتاب "29" ففي تصوري أن البحث سيكون عن الرقم بعد اسم الكتاب بمسافات أو بدون مسافات إلى أول رقم يعني ألا يشترط وجود شيء قبل الرقم أما نهاية البحث فهي: مسافة أو أي شيء غير الأرقام بما في ذلك: ) ] ، - _ يعني: اسم الكتاب يتبعه أي عدد من المسافات - او بدون ثم أي عدد من المسافات ثم رقم أو أرقام بدون فواصل فإذا تم الفصل بمسافة أو أو شيء غير الأرقام ينتهي البحث ثم ماذا قصدت أخي الكريم بقولك ماذا يعني هذا الخيار وما تأثيره على النتائج ؟
  17. بارك الله فيك أخي الكريم وأحسن إليك كما أشرت سابقا .. قد أحتاج إلى استخدام هذه الدالة لكتاب معين دون الحاجة للتعديل على جدول (books) أو (BooksList) في هذه الحالة سأستخلص الكتاب المطلوب من (books) لتعمل الدالة عليه وحده وستجد في الملف المرفق جدول (books) وفيه كتاب واحد فقط هو "معجم ابن عساكر" ولن تجد في الجدول اسم الكتاب لأن اسم الكتاب (الأول والثاني) ستأخذه الدالة من مربع النص في النموذج الذي سيظهر والأمر الأول: (تحديث MNO - بحث في الكل) يعني سيتخدم نفس طريقة البحث التي اعتمدناها بكل خطواتها وملحقاتها، الفرق الوحيد هو حصر البحث في اسم الكتاب الذي سيكتب في مربع النص (Txt1 – Txt2) ولن يأخذه من جدول (books) أو (BooksList) والأمر الثاني: (تحديث MNO - بعد الرقم مباشرة) نفس السابق من حيث البحث في كتاب واحد فقط، ويختلف في طريقة البحث، فلن يبحث عن رقم الحديث في كل النص، سيبحث عنه بعد اسم الكتاب مباشرة بفاصل (5) حركات مثلا، هي للمسافات والأقواس التي تفصل بين اسم الكتاب والرقم [معجم ابن عساكر (125) ، "سنن النسائي" (301)] فإذا لم يجد الرقم المطلوب بعد اسم الكتاب مباشرة فسيتوقف عن البحث وينتقل للتالي وعندها فلا حاجة لقائمة الكتب (BooksList) لمعرفة هل الرقم المطلوب بعد هذا الكتاب أو غيره، ومن الممكن ألا نحتاج لحذف ما قبل اسم الكتاب إذا كانت هناك طريقة لجعل مجال البحث بما بعد اسم الكتاب بحد معين Smart_Search_One.accdb
  18. أحسن الله إليك أخي الكريم وجزاك خير الجزاء أجرت تجربة على الملف الكبير وانتهى العمل في أقل من ساعة .. وهذه سرعة جيدة بالنظر لكبر الملف وقمت باستعراض العديد من النتائج عشوائيا، والنتائج دقيقة بحمد الله .. وما كان فيها من خطأ فهو بسبب أخطاء في ترقيم الملف أو عدم ذكر الاسم الثاني للكتاب أما النتائج التي لم تذكر فالقليل منها لنفس الأسباب السابقة، وأكثرها لأن هذه الكتب التي ام تخرج نتيجتها هي الكتب التي تخرج بالاعتماد على الجزء والصفحة (1/ 12 – 2/ 325 ..) وليس على الرقم وبالنسبة لي فقد أحسنت وأفضلت، وتم ما طلبته لكن إن كان عندك استعداد لإجراء تعديلين على الكود لبعض الاستخدامات الخاصة لبعض الكتب هي ليست تعديلات ، بل اختصار لبعض الإجراءات التعديل الأول: أن يعمل الكود كما هو لكن على كتاب واحد فقط، يأخذ اسمه (الأول والثاني) من مربع نص في نموذج، من غير حاجة لكولكشن يعمل على عمود (bookname) التعديل الثاني: كالسابق، يعمل على كتاب واحد فقط، مع تعديل على طريقة عمل الكود، بحيث يبحث عن الرقم بعد اسم الكتاب مباشرة، بفاصل (5) حركات مثلا، فإن لم يجد الرقم المطلوب فلا حاجة للبحث في بقية النص، وعندها فلا حاجة حتى لجدول (BookList) لأنه لن يقوم بفحص النتائج عبر أسماء الكتب لاخيار المطلوب، الرقم المطلوب بعد اسم الكتاب مباشرة .. إن كان هذا بالإمكان فعلى الأغلب سأحتاج لهذين الكودين المختصرين في بعض الكتب الكبيرة فإن كانت هذه الطلبات ممكنة فسأعد جدولا مناسبا لهذا الغرض جربتها .. وهي تفي بالمطلوب والحمد لله
  19. أحسن الله إليك أخي الكريم .. دخلت لأضع الملف فإذا بك سبقتني 🙂 هذا الملف للعمل على البحث باعتبار الاسم الثاني للكتاب Smart_Search_New04.accdb
  20. جزاك الله خيرا أخي الكريم على متابعتك معي رغم الطلبات والمطبات أولا: بخصوص دالة الحذف، فهناك عندة أمور: 1 – أنا أفضل أن تكون دالة منفصلة أستخدمها أنا لإعداد نص البحث المطلوب (NASS) بحيث ترجع الدالة للطريقة الأولى في البحث، تبحث في حقل (NASS) دوت إجراء أي تعديل عليه، لأنه معد مسبقا 2- هل بالإمكان من باب الاحتياط إضافة شرط: أن يكون قبل الشرطة (رقم) أي رقم، مع احتمال وجود مسافة بينه وبين الشرطة وعدم وجود، فالمطلوب حذف الأرقام التي بين قوسين إذا كان قبلها شرطة وقبل الشرطة رقم لكن إذا لم يكن قبل الشرطة رقم فالأفضل عدم الحذف مثل: 3- جربت الدالات الثلاث، وانا سأختار الدالة الثالثة اتي تحذف كل ما بين القوسين إلا إذا كان بالإمكان إجراء تعديل بحيث تحذف أي رقم بين القوسين، حتى لو تم الفصل بين الأرقام بـ (/) أو (،) (-) أو غير ذلك، مع مسافة أو بدون .. المهم حذف كل ما هو رقم بين القوسين ثانيا: بخصوص إعداد ملف للبحث باعتبار الاسم الثاني للكتاب هل يكفي وضع هذه الأسماء في في جدول قائمة الكتب (BOOKSLIST) وليس في جدول (BOOKS)، بحيث تحضره الدالة منه بدلالة رقم الكتاب (TableNo) أم الأفضل وضعها أيضا في جدول (BOOKS) بجانب رقم الكتاب والاسم الأول مع العلم أن جدول (BOOKS) لم يكن فيه عمود خاص لأسماء الكتب (BookName) وإنما وضعته أنا وتم تعبئته باستعلام تحديث من (BOOKSLIST) بدلالة (TableNo) ظنا منى أن هذا أفضل ليعمل الكود بسرعة .. فما هو رأيك أخي الكريم ؟
  21. سأعمل على ذلك بعون الله لكني الآن لا زلت أنتظر أن تنهي الدالة عملها فقد جربت آخر تحديث الذي فيه دالة حذف الأرقام على الملف الكبير الذي أخذ سابقا تقريبا (40) دقيقة والآن الدالة تعمل منذ أربع ساعات ولم ينتهي العمل وإذا كانت دالة الحذف تعمل على النص كله في كل عملية بحث فلعل هذا هو سبب التأخر لذلك كنت أفضل دالة مستقلة لإعداد نص خاص للبحث في (TAB) بحيث يكون البحث دون حذف أو تعديل على النص على شاكلة النص بدون تشكيل الذي أعددته لأغراض البحث
  22. تمام أخي الكريم .. النتائج دقيقة بحمد الله .. فجزاك الله خيرا بانتظار إضافة البحث عن الاسم الثاني لبعض الكتب في الأحاديث التي لا نتائج لها مع التنبيه أنه ليس كل الكتب سأضع لها اسما ثانيا .. فقط الكتب التي أرى أنها بحاجة لذلك .. قصدي ألا تتعطل الدالة إذا وجدت حقل الاسم الثاني (BOOKNAME2) فارغا لأبدأ العمل .. فيكفي تجارب .. لا بد من استغلال الوقت بالمراجعة الحقيقية وسؤال جانبي صغير: كيف أستخدم كود حذف الأرقام لوحده إذا احتجت إليه، جربت CurrentDb.Execute "UPDATE TAB SET TAB.NASS = wipeValueFormString([nass]);" ولم تنجح 🙂
  23. النتيجة التي كانت ظاهرة (32901) غير صحيحة، النتيجة الصحيحة للحديث رقم (25) من مصنفات ابن البختري هي: (59509) ولم تظهر لأن هذا الحديث غير موجود في الجدول المرفق أصلا الخلاصة: نتيجة الدالة صحيحة حسب المعطيات ثم إن المثال الذي ذكرته: مصنفات ابن البختري (15)، و269- (25) حدثنا محمد بن الحسين بن أبي الحنين .. ليس رقمه في مصنفات ابن البختري هو (25)، له رقمان الأول (15) والثاني (269) وهكذا هو في الملف المرفق وإن كنت تعني بالوظيفة الجديدة هو دالة حذف الأرقام، فالمهم في الأمر هو كيف أصبح النص بعد حذف الأرقام، المفترض ان يكون مصنفات البختري (15)، و269 - حدثنا محمد ..
  24. هذا الكلام جعلني أفكر وأنا في السيارة .. هل يمكن إضافة اسم ثاني للكتاب للبحث عنه إن كانت نتيجة البحث عن الاسم الأول صفر فبالنظر للأحاديث التي لم تجدها الدالة فنسبة لا بأس بها بسبب اختلاف اسم الكتاب لعدة أسباب.. مثلا جزء الصفار = جزء إسماعيل الصفار أمالي ابن بشران = ابن بشران في أماليه معجم ابن عساكر = ابن عساكر في معجمه وهكذا .. فإن كان بالإمكان إضافة عمود في جدول قائمة الكتب : bookname2 توضع فيه هذه الأسماء عند اللزوم بحيث إن لم تجد الدالة أي نتيجة تعيد البحث باستخدام الاسم الثاني إذا كان موجودا في القائمة هذا من شأنه أن يقلل من النتائج غير الموجودة
×
×
  • اضف...

Important Information