nssj قام بنشر نوفمبر 16, 2021 قام بنشر نوفمبر 16, 2021 (معدل) الإخوة الكرام .. في الملف المرفق جدول (TAB) حقل (NASS) المطلوب نسخ كل أول سطر يبدأ بـ [@@$] والترتيب على أساس (TNO) ووضعه في حقل (MS_NAME) في جدول (TAB_Msaaneed) كل ما استطعت فعله هو استعلام لحصر السجلات المطلوبة من جدول (TAB) والتي تبدأ [@@$] أما كيفية نسخ أول سطر من كل سجل منها ووضعه في حقل (MS_NAME) من الجدول الثاني .. فهذا صعب جداً علي 😐 MZ.accdb تم تعديل نوفمبر 16, 2021 بواسطه nssj
jjafferr قام بنشر نوفمبر 17, 2021 قام بنشر نوفمبر 17, 2021 وعليكم السلام 🙂 1. في الاستعلام ، انت استخدمت المعيار Like "*" & "@@$ " & "*" وهذا معناه ابحث في الحقل ، وفي اي مكان منه تجد الجملة "@@$ " ، اعرض السجل ، بينما انت تريد الحقل الذي يبدأ بالجملة "@@$ " ، فيجب ان يصبح المعيار Like "@@$ " & "*" 2. يجب التدقيق في "ماذا يوجد نهاية اول سطر" ، حتى يمكننا اعطاء الامر لتفكيك اول سطر عن بقية بيانات الحقل . الطريقة الاولى هي استعمال الطريقة/الطرق من هذا الرابط . والطريقة الثانية ، هي استعمال برنامج يساعدنا في هذا ، وانا استخدم هذا البرنامج المجاني Notepad++ في جميع كمبيوترات عملي: https://notepad-plus-plus.org وعليه ، نرى هذه النتيجة لما وضعنا هذه الحقول في البرنامج اعلاه: . اذن تم معرفة ماهية نهاية الاسطر ، والاشارة/الرمز CR LF ، يمكن ترجمتها الى احد هاتين الجملتين (في الرابط اعلاه ، هنا جدول ascii وسنرى فيه هذه العلامة وقيمتها) : chr(13) او chr(10) ، او كليهما مع بعض ، ونحتاج الى التجربة للتأكد من استخدام ايهم. في الاستعلام ، في حقل جديد ، نضع : S: Mid([NASS], 1 , InStr([NASS],Chr(13)) ) نستخدم الامر Mid ، نقول فيه ، ابدأ من اول حرف في الحقل NASS ، ثم نستخدم الامر InStr لمعرفة اذا كانت الاشارة/الرمز chr(13) صحيح ، واين موقعه في السطر (او كما قلنا سابقا: CR ) ، هذا معناه ، الامر Mid يُظهر لنا نتائج من الحرف الاول الى المكان الذي نحصل عليه الرمز chr(13) ، وعلى اساس هذه النتيجة نقرر اذا كنا بحاجة الى استعمال chr(10) او لا ، وعند تشغيل الاستعلام ، تظهر لنا هذه النتائج : . اذن تجربتنا صحيحة ، وتم الحصول على السطر الاول ، 3. تحويل هذا الاستعلام الى استعلام الحاقي ، لنلحق هذه البيانات في الجدول TAB_Msaaneed ، في الحقل MS_NAME : . والنتيجة: . جعفر 1413.MZ.accdb.zip 2
nssj قام بنشر نوفمبر 17, 2021 الكاتب قام بنشر نوفمبر 17, 2021 أخي الكريم جعفر .. جزاك الله خيراً وأحسن إليك أكرر شكري لك على نصائحك وتوضيحاتك .. لأنه يهمني أن أعرف كيف تمت معالجة المشكلة، فهذا ربما يساعدني في تجاربي ومحاولاتي القادمة .. لعلي أستطيع أن أحل بعض مشاكلي بنفسي ولكن -كما هو المعتاد 😁- هذا لا يمنع أن تكون لدي بعض الاستفسارات أولا: لا حظت وجود سطر فارغ في آخر نتيجة الاستعلام: وحاولت تعديل الاستعلام إلى: S: Mid([NASS],1,InStr([NASS],Chr(10))) Mid([NASS],1,InStr([NASS],Chr(13)+Chr(10))) والنتيجة نفسها .. لا يزال السطر الفارغ في آخر الحقل موجودا .. ومع أنه يمكن حذفه باستخدام الكود القديم الذي تفضلت به - واللي غلبنا ووجع راسنا 😅-: كود حذف الأسطر والمسافات (Remove_Extras) لكن أحببت أن أنقل لك هذه الملاحظة فربما يكون بإمكانك معالجتها بتغيير صيغة الاستعلام ثانيا: رقم (1) في الاستعلام أثار فضولي .. وفهمت من كلامك أن وظيفته تحديد متى تبدأ مهمة الاستعلام، فرقم واحد تعني أن يبدأ من أول حرف، فجربت أن أغيره إلى (4) حتى يبدأ النسخ من رابع حرف، أي بعد الرمز المطلوب (@@$ ) ، وفعلا هذا ما حدث .. لكن لا حظت أن تغيير الرقم أثر أيضا على آخر النص المطلوب نسخه .. فزاد بعض الأحرف من السطر التالي، وبدون سطر فارغ ! .. كما في الصورة فهل هذا يعني أني ما استنتجته من كلامك غير صحيح وأن لهذا الرقم تأثير آخر ؟
تمت الإجابة jjafferr قام بنشر نوفمبر 17, 2021 تمت الإجابة قام بنشر نوفمبر 17, 2021 لم الاحظ المسافة الزائدة 🙂 كما لاحظنا في مشاركتي اعلاه ، وبسبب وجود اشارتين/رمزين CR LF ، فالمسافة (واقعا هي ليست مسافة ، وانما الانتقال الى السطر التالي) ، ونحن وقفنا عند الرمز الاول ولم نعير انتباه للرمز الآخر ، فنتجت عنه هذه المسافة 🙂 تفضل هذا التعديل: S: Mid([NASS],1,InStr([NASS],Chr(13))-1) . ومفهمومك صحيح 100% ، وليس عندي جواب لهذه الظاهرة ، غير اننا نستعمل اللغة العربية والتي تعمل بعض الاشكالات 😁 ولكن تم حلها كما في الطريقة السابقة ، بتنقيص نفس الرقم المستخدم في البداية ، هكذا: S2: Mid([NASS],5,InStr([NASS],Chr(13))-5) جعفر 1413.MZ.accdb.zip 1
nssj قام بنشر نوفمبر 17, 2021 الكاتب قام بنشر نوفمبر 17, 2021 بارك الله فيك أخي الكريم وأحسن إليك .. تم المطلوب بحمد الله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.