nssj قام بنشر ديسمبر 23, 2022 قام بنشر ديسمبر 23, 2022 الإخوة الكرام .. حقل (NASS) في جدول (TAB) حقل نصي، كثير من حقوله – وليس كلها - تحتوي على ترقيم معين بين قوسي {} والمطلوب استخراج هذه الأرقام حيث وجدت، الأرقام التي بين هذين القوسين فقط دون القوسين، ووضعها في جدول (TAB_MNO) في حقل (OLD_NO)، مع وضع رقم (MNO) للسجل الذي تم الاستخراج منه مع ملاحظة أمرين: * أنه لا يشترط أن يكون كل ما هو بين هذين القوسين {} أرقاماً، فقد يكون حروفا أو رموزا، وفي هذه الحالة فغير مطلوب استخراج ما بينهما * قد تتعدد هذه الأقواس مع الأرقام في السجل الواحد، والمطلوب استخراج الجميع وليس أول قوسين فقط، وفي هذه الحالة توضع علامة (نعم) في جدول (TAB_MNO) عند رقم السجل الذي حدث فيه هذا التعدد وفي هذه الصورة تظهر الملاحظتان (وجود غير الأرقام بين القوسين ووجود أكثر من قوسين) وقمت بتعبئة بعض الصفوف في جدول (TAB_MNO) يدويا ليظهر المطلوب فهل يمكن إنشاء كود يقوم بهذه العملية ؟ MZ_MNO.accdb
Moosak قام بنشر ديسمبر 23, 2022 قام بنشر ديسمبر 23, 2022 (معدل) أهلا بك أخي @nssj 🙂 بداية أشكر أخي @محب العقيدة على الموقع الرائع الذي أشار إليه في هذا الموضوع : اداة بحث ثورية 😊🌹 وقد طلبت من الموقع أن يعطيني كود يستخرج الأرقام ( فقط ) من بين هذه الأقواس {} .. من أي جملة .. وقد أعطاني هذا الكود ( قمت بعمل بعض التعديلات البسيطة وتحويله إلى دالة 🙂 ) : Public Function ExtractNumbers(text As String) As String ' This Code extract only numbers from a text if they are surrounded by these characters "{}" Dim i As Integer Dim num As String Dim result As String 'text = "The value of x is {3} and the value of y is {7}" result = "" For i = 1 To Len(text) If Mid(text, i, 1) = "{" Then ' Found the start of a number num = "" Do While Mid(text, i, 1) <> "}" ' Check if the current character is a numeric character If IsNumeric(Mid(text, i, 1)) Then num = num & Mid(text, i, 1) End If i = i + 1 Loop ' Found the end of the number, so add it to the result result = result & num & " " End If Next ' result now contains the numbers from the text, separated by spaces 'Debug.Print result ExtractNumbers = Trim(result) End Function والنتيجة رهييييييييييبة بصراحة ونااااااااااااجحة 100% 😄👌🏼 مثال بعد التطبيق : 39 دقائق مضت, nssj said: وفي هذه الحالة توضع علامة (نعم) في جدول (TAB_MNO) عند رقم السجل الذي حدث فيه هذا التعدد وهذه الجزئية لم أفهمها في طلبك .. 🙂 MZ_MNO.rar تم تعديل ديسمبر 23, 2022 بواسطه Moosak 4
nssj قام بنشر ديسمبر 23, 2022 الكاتب قام بنشر ديسمبر 23, 2022 فعلا الكود قام باستخراج الأرقام المطلوبة .. لكن يبقى وضعها في الجدول المطلوب (TAB_MNO) بالطريقة المطلوبة كما يظهر في الصورة ، رقم (MNO) ثم الرقم المستخرج من هذا السجل 28 دقائق مضت, Moosak said: وهذه الجزئية لم أفهمها في طلبك .. 🙂 أعني أخي الكريم أنه في حالة وجود أكثر من رقم مستخرج كما في الصورة التي أرفقتها أنا وأنت، تجعل الخيار في حقل (MK) : نعم لأني قد أحتاج لفرز هذه الحقول التي فيها أكثر من رقم
تمت الإجابة Moosak قام بنشر ديسمبر 23, 2022 تمت الإجابة قام بنشر ديسمبر 23, 2022 (معدل) تم بحمد الله 🙂 يمكنك الآن استخراج جميع الأرقام من جميع السجلات وإضافتها في الجدول بضغطة زر واحدة ( الزر الأصفر في الأسفل ) 🙂 وأضفت النموذج الفرعي لرؤية الأرقام المرتبطة بالسجل .. وهذه السجلات في الجدول : MZ_MNO.rar تم تعديل ديسمبر 23, 2022 بواسطه Moosak 3
nssj قام بنشر ديسمبر 24, 2022 الكاتب قام بنشر ديسمبر 24, 2022 جزاك الله خيراً أخي الكريم Moosak وأحسن إليك .. تم المطلوب بحمد الله بعد تجاوز بعض المشاكل وتصحيح بعض الأخطاء في الملف .. ولذلك تأخرت في الرد 🙂 أولا: غيرت (Dim I As Integer) إلى (Dim I As Long) للعمل على الملف الأصلي الذي يحتوي (54700) سجلا ثانيا: كانت تخرج هذه الرسالة وكنت أظن أن المشكلة هي كثرة عدد السجلات، فكنت أحذف من السجلات وأعيد التجربة حتى وصلت إلى (70) سجلاً، ولا زالت الرسالة تخرج وبعدين شربت كاسة شاي ومخمخمت 😁 واستنتجت أن المشكلة هي وجود قوس البداية { ، بدون نهايته: } ، ويرجع السبب لأمرين: 1- أنني استخدمت نصا مختصرا، لأني لا أريد البحث في كل السجل لوجود أرقام بين {} في أواخر العديد من السجلات وهي أرقام غير مطلوب استخراجها، نحو: (يأتي {8155} ، تقدم {122} ..) وفي بعض الصفوف كانت توجد آيات بين قوسين {} ونتيجة الاختصار تبقى بداية الآيات مع قوس البداية { ، ويحذف الباقي مع قوس النهاية } وتجاوزت هذه المشكلة بعمليات استبدال {أ - {ب - {ت .. .. بفراغ 2- وجود أخطاء بكتابة الأرقام والأقواس، مثل: {1088) ، {2512 عن ابن .. وتم تصحيح هذه الأخطاء، لأن الكود يقوم بتعبئة الجدول إلى أن يصل إلى السجل الذي فيه الخطأ ويقف، وهكذا عرفت أين الأخطاء وعالجتها والآن بحمد الله تم المطلوب وزيادة: بتصحيح هذه الأخطاء فالحمد لله أولاً وآخراً وكل الشكر للأخ الكريم Moosak على مساعدته 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.