اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

nssj

03 عضو مميز
  • Posts

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

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

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

  1. جزاك الله خيرا أخي الكريم وأحسن إليك تم المطلوب بحمد الله ولكن اسمح لي بسؤال لزيادة معلوماتي التراكمية 🙂 عندما نظرت في الكود ( Do While ،، Loop ) لاحظت أنه يشبه بعض الأكواد التي أحتفظ بها لعمليات الترقيم، وهي الأكواد التي فيها ( For i = 1 To K ،، Next i) فهل هذين النوعين يؤديان نفس الغرض ؟
  2. أخي الكريم .. سأشرح الخطوات التي كنت سأقوم بها يدويا للقيام بالمطلوب، لعلها توضح ماهية الاستعلام أو الكود المطلوب البداية ستكون من (HNO)، مع ملاحظة أن كل الأرقام الموجودة فيه متكررة، وأبدأ بكل مجموعة وأنظر إلى المجموعة التي تقابلها من (SUB_ID) فإذا كان لها نفس الرقم فالعمل صحيح، وليس المقصود (بنفس الرقم) أن يكون لها نفس رقم (HNO)، بل المقصود أن يكون الرقم فيها موحداً لكل أفراد المجموعة، فإذا كان كذلك فالعمل صحيح وأنتقل للمجموعة التالية من (HNO) وهكذا وفي الجدول المرفق أول أربع مجموعات لا خطأ فيها أول خطأ في المجموعة التي تليها فلا ينبغي أن يختلف الرقم في (SUB_ID) بل ينبغي أن يكون الرقم موحداً إما (73) أو (72) لذلك ينبغي تمييز هذه المواضع بعلامة في (CHEK) لمراجعتها وتصحيحها وكذلك في موضع الخطأ الثاني كان ينبغي أن يكون رقم كل أفراد مجموعة (SUB_ID) هو (261) فالمطلوب تمييز هذا الموضع أيضاً لمراجعته ومعرفة سبب الخطأ هذه الخطوات التي كنت سأقوم بها يدويا، لكن الجدول كبير، مع وجود احتمال أن يزل النظر فلا أنتبه لوجود الخطأ لتتابع الأرقام .. فإذا كان من الممكن القيام بذلك عبر استعلام أو كود فهو أفضل
  3. أخي الكريم .. هذا الاستعلام عالج الموضعين الذين ذكرتُهما فقط، والمطلوب ليس معالجة الخطأ ، المطلوب معرفة أين مواضع الخطأ فالمشكلة أني لا أعرف أين هذه الأخطاء في الملف الأصلي، وهذين الخطأين وضعتهما أنا يدويا للتوضيح
  4. شكراً على مشاركتك أخي الكريم .. لكن يبدو أني لم أشرح بشكل جيد انظر هذه الصورة المفروض أنه إذا كان رقم (HNO) واحداً، يكون أيضاً رقم (SUB_ID) واحداً لكن يوجد في الجدول خطأ في موضعين ميزتهما باللون الأحمر، ووضعت علامة يدوية في حقل (CHEK) للإشارة إلى أنه يوجد هنا خطأ ففي الموضع الأول المفروض أن يكون رقم (SUB_ID) = (73) ، مثل الرقم الذي قبله لأن لهما نفس رقم (HNO) الذي هو (20) وفي الموضع الثاني المفروض أن يكون رقم (SUB_ID) = (261) ، مثل الرقم الذي قبله لأن لهما نفس رقم (HNO) الذي هو (58) أرجو أن أكون قد شرحت المطلوب بشكل أوضح وأرجو أنه يمكن القيام بذلك باستعلام أو كود، لأن القيام بذلك يدويا سيأخذ وقتل طويلاً في الملف الأصلي
  5. السلام عليكم الإخوة الكرام .. لدي جدول (TAB3) فيه حقل مرقم (HNO) وحقل مرقم آخر (SUB_ID) والمفترض أنه حيث كان رقم (HNO) واحداً، يكون أيضاً رقم (SUB_ID) واحداً وما كان سوى ذلك فهو خطأ وللتوضيح فهذه نسخة مصغرة من الجدول، والأرقام التي فيها خطأ مميزة بالدائرة الحمراء، والمطلوب تمييز هذه الأرقام بوضع علامة في حقل (CHEK)، أو إظهارها في استعلام خاص TAB3.accdb
  6. بارك الله فيك أخي الكريم @ابو جودي أنا أبحث دائما عن مواضيع البحث لحاجتي لها وقمت سابقاً بعدة محاولات لاختراع أكواد للبحث بعدة خيارات .. لكن بمقارنتها بالكود الخفيف الظريف الذي تفضلت به .. يظهر الفرق بين .. .. والـ .. .. 😂 فإذا كان لديك متسع من الوقت فهل لك أن تضيف إلى كود البحث خياراً آخر وهو البحث عبر مربعي بحث وليس مربع واحد فقط ، مع خيار البحث [و - أو] وفي كل مربع منهما الخياران [يتضمن - يتطابق] يعني كما في هذه الصورة التقريبية أنا أجريت سابقا عدة محاولات .. لكني ضعت في زحمة الاحتمالات 😅
  7. أولاً: بتحربة التحديد فقط فليس كل مرة يقوم بتحديد النص المطلوب .. فأحيانا لا يحدد شيئا مع وجود المعطيات المطلوبة، في الملف المرفق لا يحدد شيئا في رقم (2) ورقم (4) ثانيا: عند تجربتي له في كود القص واللصق كان يقص نصا آخر من صفحة أخرى والمطلوب أن يقص من الصفحة التي هو فيها فقط .. وربما تنتهي هذه المشكلة إذا عولجت المشكلة الأولى ثالثا: مجال العمل هو حقل (nass) أما (nass2) فهو لبيان النص المطلوب الحصول عليه وضعته يدويا على عجل لذاك حصل فيه خطأ في الحديث الثاني 🙂
  8. جزاك الله خيرا أخي الكريم .. كما ذكرتُ في الموضوع السابق: الذكاء الصناعي صعب علي 😂 .. لم أعرف كيف أشغل هذا الكود 🤔 جربت أن أشغله لوحده في زر خاص .. ولم يحدث شيء ومع أن هذا الكود يختلف كليا عن الكود الذي استخدمته ، جربت أن أدخله ضمن الكود بتاعي عبر (Call SelectText) والنتيجة نفسها
  9. للرفع .. وليس بالضرورة الاطلاع أو التعديل على الكود كله .. أنا تنقصني وأعتقد أني بعدها أستطيع إكمال المهمة بعون الله وقد حاولت - بالنظر لمشاركات سابقة للإخوة الكرام - أن أقوم بتحديد النص المطلوب بعبارات مثل Me.nass.SelStart = 0 ' المطلوب تحديد من أول النص إلى ما قبل أول فقرة تبدأ برقم Me.nass.SelLength = InStr([nass], IsNumeric(Left([nass], 1))) Me.nass.SelLength = InStr([nass], IsNumeric(Left([nass], 1)) - 1) Me.nass.SelLength = Len(IsNumeric(Left([nass], 1))) Me.nass.SelLength = InStr(10, [nass], IsNumeric(Left([nass], 1))) ولكن كانت تخرج هذه الرسالة
  10. الإخوة الكرام .. السلام عليكم أنا بحاجة لكود يقوم بنسخ نص معين من سجلات محددة ليضع ما تم نسخة في آخر السجل السابق * والسجلات التي هي مجال القص هي التي يكون فيها الحقل (cut_thes) يساوي: نعم * وكنت في البداية أريد قص النص من أوله إلى آخر أول فقرة، ونجحت في ذلك Me.nass.SelStart = 0 Me.Nass.SelLength = InStr([Nass], Chr(13)) - 1 DoCmd.RunCommand acCmdCut وعلى هذا الأساس فالكود كان يعمل بشكل جيد وبدون مشاكل لكن ظهر لي أن الأفضل قص النص من أوله إلى ما قبل أول فقرة تبدأ برقم فإن لم يكن هناك فقرة تبدأ برقم فيتم قص النص كله وهذه لم أعرف كيف أنفذها يعني في هذه الصورة المطلوب قص السطرين ونقلهما ، وليس قص السطر الأول فقط وقد أضفت حقلا للنص المطلوب الحصول عليه وضعته يدويا للتوضيح أرجو أن أكون قد أوضحت المطلوب .. والكود المرفق سيوضح المطلوب أكثر .. ينقصني فيه جزئية تحديد النص المطلوب: من أول الحقل إلى ما قبل أول فقرة تبدأ برقم Cut_Paste.rar
  11. المشكلة إني بعد كل هذا الوقت وهذه التجارب مش عارف وين المشكلة بالضبط 🙂 المشكلة إجمالاً في طريقة تعرف الأكسس على الفقرات وتعدد رموزها ويبدو أن هذا الأمر يختلف من ملف لآخر حسب طريقة الإدخال والكتابة لكن استخدام الكود الذي تفضلتَ به سابقا في حذف الأسطر والمسافات الزائدة ، يبدو أنه يوحد رموز الفقرات في الملف، مما يعطي أداء أفضل عند البحث عنها لكن على الرغم من ذلك، الكود الذي تفضلت به هنا لا يتعرف على بعض الفقرات، في الملف المرفق توجد ثلاث فقرات لم يتعرف عليها، مع أنني خلال التجارب تأكدت من أن كل الفقرات هي (chr13) باستخدام الدالة التي تفضلت بها مشكورا لكن لما استخدمت كود الأخ Moosak -بعد استخدام كود المسافات والأسطر- أعطى النتيجة المطلوبة أما لماذا تعرف هذا الكود على كل الفقرات بخلاف ذاك مع أن المعطيات واحدة .. فهذا فوق مستوى معرفتي بمرااااحل 😅 الحاصل .. أنه تم الوصول للمطلوب من خلال استخدام كودين .. ولا مشكلة عندي في هذا الأمر بل هذا يجعلني أفكر بجدية لاستخدام كود حذف الأسطر والمسافات الزائدة على كل الملفات التي أستخدمها في أكسس لتوحيد المنهج
  12. حصيلة التجارب .. النتائج الدقيقة تم الوصول لها بكود الأخ Moosak بعد تعديل النص بكود قديم للأخ jjafferr هذه النتيجة بعد عدة تجارب على عدة ملفات .. كانت تخرج لي نتائج متفاوتة .. وحاولت بعد إجراء عمليات استبدال بين أفراد عائلة [علامات الفقرات: (chr) ] لكن لم أصل إلى النتيجة المطلوبة وبقيت النتائج متفاوتة لسبب لم أعرفه، لكن كان أداء كود الأخ jjafferr أفضل ثم استخدمت كود الأخ jjafferr لحذف المسافات والأسطر الفارغة كود حذف الأسطر الفارغة والمسافات في أول السطر فحصلت على النتيجة المطلوبة من كود الأخ Moosak، وبقيت بعض الاختلافات في نتيجة كود الأخ jjafferr وهذه نتيجة الكودين قبل تعديل النص وهذه النتيجة بعد التعديل وفي الملف المرفق جدول (0book) للنص قبل التعديل لاستخدامه عند التجارب، واستعلام تعديل النص (qry_Update) check_Book4.rar
  13. أما أنا فلا زلت على البسكلته 🛴 😂 هذا مجرد مرور سريع .. لأني بحاجة لوقت لأهضم هذه الوجبات الدسمة .. السهرة الليلة مطولة 😀
  14. المشكلة أن الذكاء الصناعي غير مناسب للمبتدئين أمثالي .. لأن اقتراحاته يصعب علي استيعابها 😅 أنا أخذت وقتا لأفهم كود الأخ جعفر وهو سطر واحد .. والآن لدي صفحتان 😄 لكن هذا لن يمنعني أن (أُعُلِّمَ) على الذكاء الاصطناعي 😁 .. فلا تزال توجد نفس المشكلة في هذه الصفحة (ويمكن معرفة الخطأ إن وجد باستعلام difference) فإن أمكن تجاوزها فبها ونعمت .. وإلا فالذكاء الاصطناعي حل (95%) من المطلوب .. وأنا قنوع 🙂
  15. أخي الكريم .. المطلوب تمييز الصفحات التي فيها أكثر من رقم للأحاديث وحيث أن ترقيم الأحاديث ليس بين أقواس أو رموز خاصة، وأيضا فإن الصفحة قد تحتوي على أرقام أخرى غير أرقام الأحاديث، كأرقام الآيات مثلا [النساء: 176] فالطريقة الوحيدة لتمييز أرقام الأحاديث هو البحث عن الأرقام التي في أول الفقرات فإذا كانت الصفحة الواحدة فيها أكثر من فقرة تبدأ برقم، فهذا يعني أن فيها أكثر من ترقيم .. وهو المطلوب، فعندها توضع علامة لهذه الصفحة وقد أضفت حقل (aa) وميزت فيه الصفحات المطلوبة يدويا لإجراء المقارنة بين الاستعلامين، وظهر أن الاستعلام الأول (1chek) يؤدي نتيجة أفضل .. book.check_no = IIf(IsNumeric(Left([Nass],1)) And InStr(10,[Nass],Chr(10)),-1); فالإشكالية في هذه الصفحات أما الصفحتان الأولى والثانية فكل منهما لا تبدأ بأرقام، والمطلوب في مثل هذه الصفحات تمييز التي فيها أكثر من فقرة تبدأ برقم، وليس التي فيها فقرة تبدأ برقم أما الصفحة الثالثة فلا أدري ما السبب، إلا إذا كان الفرق بين ch(10) & ch(13) فلما استخدمت (13) بدل (10) في الكود لم تظهر الإشكالية في هذه الصفحة لكن حصلت على نتائج مختلفة وأخطاء أكثر !! وحصلت على النتيجة المطلوبة بالاستعانة بالحقل الذي ميزته يدويا (aa) بجعل الكود يعمل على الصفحات التي فيها اختلاف فقط عبر هذا الكود في النموذج CurrentDb.Execute "UPDATE book SET book.check_No = IIf(IsNumeric(Left([Nass],1)) And InStr(10,[Nass],Chr(10)),-1)" CurrentDb.Execute "UPDATE book SET book.check_No = IIf(InStr(10,[Nass],Chr(13)),-1)where book.check_no <> book.aa" هذه حصيلة تجارب الليلة الماضية .. ولم أعرف كيف أجمع بين نتائجها للوصول للمطلوب بشكل دقيق .. هذا إذا كان من الممكن تحقيق ذلك check_Book2.rar
  16. أحسن الله إليك أخي الكريم .. بالنسبة للاعتبار الأول (الصفحات التي لا تبدأ بأرقام) تم المطلوب بحمد الله أما بالنسبة للثاني، فهو يضع علامة في الصفحات التي ليس فيها إلا ترقيم واحد إذا كانت لا تبدأ بأرقام، وظني أن السبب أنه في هذه الحالة يكون الترقيم في أول الفقرة وليس في أول الحقل وإشكالية أخرى ظهرت لي لا أدري ما سببها وهي كما في الصورة
  17. وعلكم السلام أخي الكريم جعفر أولا: لأني أجيد التعامل مع الأكواد أكثر حولت الاستعلام إلى كود 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) ماذا تعني 🤔
  18. الإخوة الكرام السلام عليكم ورحمة الله وبركاته في الملف المرفق حقل نصي (Nass) المطلوب كود لتمييز الصفحات باعتبارين * الاعتبار الأول: الصفحات التي لا تبدأ بأرقام، يعني في مثل هذه الصفحة يصبح مربع (check_Page) : نعم * الاعتبار الثاني: المفترض ألا تحتوي الصفحة إلا على ترقيم واحد، والمطلوب تمييز ما عدا ذلك، وآلية تمييز هذه الصفحات فهي أن يوجد فيها أكثر من فقرة تبدأ برقم، كما في هذه الصورة فقد تحتوي الصفحة على أرقام في أكثر من موضع كما في الصورة، فإذا كان الرقم في بداية السطر فيعني أنه للترقيم، فإذا كان يوجد أكثر من رقم بهذا الشرط فتميز هذه الصفحة بجعل مربع (check_No) : نعم check_Book.accdb
  19. جزاك الله خيراً أخي الكريم Moosak وأحسن إليك .. تم المطلوب بحمد الله بعد تجاوز بعض المشاكل وتصحيح بعض الأخطاء في الملف .. ولذلك تأخرت في الرد 🙂 أولا: غيرت (Dim I As Integer) إلى (Dim I As Long) للعمل على الملف الأصلي الذي يحتوي (54700) سجلا ثانيا: كانت تخرج هذه الرسالة وكنت أظن أن المشكلة هي كثرة عدد السجلات، فكنت أحذف من السجلات وأعيد التجربة حتى وصلت إلى (70) سجلاً، ولا زالت الرسالة تخرج وبعدين شربت كاسة شاي ومخمخمت 😁 واستنتجت أن المشكلة هي وجود قوس البداية { ، بدون نهايته: } ، ويرجع السبب لأمرين: 1- أنني استخدمت نصا مختصرا، لأني لا أريد البحث في كل السجل لوجود أرقام بين {} في أواخر العديد من السجلات وهي أرقام غير مطلوب استخراجها، نحو: (يأتي {8155} ، تقدم {122} ..) وفي بعض الصفوف كانت توجد آيات بين قوسين {} ونتيجة الاختصار تبقى بداية الآيات مع قوس البداية { ، ويحذف الباقي مع قوس النهاية } وتجاوزت هذه المشكلة بعمليات استبدال {أ - {ب - {ت .. .. بفراغ 2- وجود أخطاء بكتابة الأرقام والأقواس، مثل: {1088) ، {2512 عن ابن .. وتم تصحيح هذه الأخطاء، لأن الكود يقوم بتعبئة الجدول إلى أن يصل إلى السجل الذي فيه الخطأ ويقف، وهكذا عرفت أين الأخطاء وعالجتها والآن بحمد الله تم المطلوب وزيادة: بتصحيح هذه الأخطاء فالحمد لله أولاً وآخراً وكل الشكر للأخ الكريم Moosak على مساعدته
  20. فعلا الكود قام باستخراج الأرقام المطلوبة .. لكن يبقى وضعها في الجدول المطلوب (TAB_MNO) بالطريقة المطلوبة كما يظهر في الصورة ، رقم (MNO) ثم الرقم المستخرج من هذا السجل أعني أخي الكريم أنه في حالة وجود أكثر من رقم مستخرج كما في الصورة التي أرفقتها أنا وأنت، تجعل الخيار في حقل (MK) : نعم لأني قد أحتاج لفرز هذه الحقول التي فيها أكثر من رقم
  21. الإخوة الكرام .. حقل (NASS) في جدول (TAB) حقل نصي، كثير من حقوله – وليس كلها - تحتوي على ترقيم معين بين قوسي {} والمطلوب استخراج هذه الأرقام حيث وجدت، الأرقام التي بين هذين القوسين فقط دون القوسين، ووضعها في جدول (TAB_MNO) في حقل (OLD_NO)، مع وضع رقم (MNO) للسجل الذي تم الاستخراج منه مع ملاحظة أمرين: * أنه لا يشترط أن يكون كل ما هو بين هذين القوسين {} أرقاماً، فقد يكون حروفا أو رموزا، وفي هذه الحالة فغير مطلوب استخراج ما بينهما * قد تتعدد هذه الأقواس مع الأرقام في السجل الواحد، والمطلوب استخراج الجميع وليس أول قوسين فقط، وفي هذه الحالة توضع علامة (نعم) في جدول (TAB_MNO) عند رقم السجل الذي حدث فيه هذا التعدد وفي هذه الصورة تظهر الملاحظتان (وجود غير الأرقام بين القوسين ووجود أكثر من قوسين) وقمت بتعبئة بعض الصفوف في جدول (TAB_MNO) يدويا ليظهر المطلوب فهل يمكن إنشاء كود يقوم بهذه العملية ؟ MZ_MNO.accdb
  22. الملاحظة التي في ذكرتُها مشاركة سابقة فأنا لم أجد هذا الخيار في الفيديو الذي وضعته أخي الكريم
  23. جزاك الله أخي الكريم .. يظهر من الصور أنه عمل جميل وفيه خيارات كثيرة ومتنوعة لكن أرجو أن يكون فيه خيار لعرض أسماء المسانيد التي توجد فيها الأحاديث لاستعراض أحاديث كل مسند لوحده عند الحاجة لذلك
×
×
  • اضف...

Important Information