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

نسخ أول سطر يبدأ بقيمة معينة ووضعها في حقل في جدول آخر


nssj
إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

الإخوة الكرام .. في الملف المرفق جدول (TAB) حقل (NASS)

المطلوب نسخ كل أول سطر يبدأ بـ [@@$] والترتيب على أساس (TNO) ووضعه في حقل (MS_NAME) في جدول (TAB_Msaaneed)

كل ما استطعت فعله هو استعلام لحصر السجلات المطلوبة من جدول (TAB) والتي تبدأ [@@$]

أما كيفية نسخ أول سطر من كل سجل منها ووضعه في حقل (MS_NAME) من الجدول الثاني .. فهذا صعب جداً علي 😐

MZ.accdb

تم تعديل بواسطه nssj
رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

1.

في الاستعلام ، انت استخدمت المعيار

Like "*" & "@@$ " & "*"

وهذا معناه ابحث في الحقل ، وفي اي مكان منه تجد الجملة "@@$ " ، اعرض السجل ،

بينما انت تريد الحقل الذي يبدأ بالجملة "@@$ " ، فيجب ان يصبح المعيار

Like "@@$ " & "*"

 

2.

يجب التدقيق في "ماذا يوجد نهاية اول سطر" ، حتى يمكننا اعطاء الامر لتفكيك اول سطر عن بقية بيانات الحقل

image.png.43d6fc6bffd8cc952b0ae9550aaca0e3.png

.

الطريقة الاولى هي استعمال الطريقة/الطرق من هذا الرابط

.

والطريقة الثانية ، هي استعمال برنامج يساعدنا في هذا ،

وانا استخدم هذا البرنامج المجاني Notepad++ في جميع كمبيوترات عملي: https://notepad-plus-plus.org

وعليه ، نرى هذه النتيجة لما وضعنا هذه الحقول في البرنامج اعلاه:

image.png.d0af4da3c8ea52a34f21194ef5e326ed.png

.

اذن تم معرفة ماهية نهاية الاسطر ، والاشارة/الرمز 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) او لا ، 

وعند تشغيل الاستعلام ، تظهر لنا هذه النتائج :

image.png.fd62fafb0160ac16ab132103180cbefd.png

.

اذن تجربتنا صحيحة ، وتم الحصول على السطر الاول ،

 

3.

تحويل هذا الاستعلام الى استعلام الحاقي ، لنلحق هذه البيانات في الجدول TAB_Msaaneed ، في الحقل MS_NAME :

image.png.1afcfefe49213b856a3d324407625c26.png

.

والنتيجة:

image.png.29f717a79e35bf93585bf36d9ac30e3c.png

.

جعفر

1413.MZ.accdb.zip

  • Like 2
رابط هذا التعليق
شارك

أخي الكريم جعفر .. جزاك الله خيراً وأحسن إليك

أكرر شكري لك على نصائحك وتوضيحاتك .. لأنه يهمني أن أعرف كيف تمت معالجة المشكلة، فهذا ربما يساعدني في تجاربي ومحاولاتي القادمة .. لعلي أستطيع أن أحل بعض مشاكلي بنفسي

ولكن -كما هو المعتاد  😁- هذا لا يمنع أن تكون لدي بعض الاستفسارات

أولا: لا حظت وجود سطر فارغ في آخر نتيجة الاستعلام:

 001.jpg.3645cfca7a61b566e535d73496027a47.jpg

وحاولت تعديل الاستعلام إلى:

S: Mid([NASS],1,InStr([NASS],Chr(10)))

Mid([NASS],1,InStr([NASS],Chr(13)+Chr(10)))

والنتيجة نفسها .. لا يزال السطر الفارغ في آخر الحقل موجودا .. ومع أنه يمكن حذفه باستخدام الكود القديم الذي تفضلت به - واللي غلبنا ووجع راسنا 😅-: كود حذف الأسطر والمسافات (Remove_Extras)

لكن أحببت أن أنقل لك هذه الملاحظة فربما يكون بإمكانك معالجتها بتغيير صيغة الاستعلام

ثانيا: رقم (1) في الاستعلام أثار فضولي .. وفهمت من كلامك أن وظيفته تحديد متى تبدأ مهمة الاستعلام، فرقم واحد تعني أن يبدأ من أول حرف، فجربت أن أغيره إلى (4) حتى يبدأ النسخ من رابع حرف، أي بعد الرمز المطلوب (@@$ ) ، وفعلا هذا ما حدث .. لكن لا حظت أن تغيير الرقم أثر أيضا على آخر النص المطلوب نسخه .. فزاد بعض الأحرف من السطر التالي، وبدون سطر فارغ ! .. كما في الصورة

 003.jpg.d74dbcf039ec8daade45503e1a67351e.jpg

فهل هذا يعني أني ما استنتجته من كلامك غير صحيح وأن لهذا الرقم تأثير آخر ؟

رابط هذا التعليق
شارك

  • أفضل إجابة

لم الاحظ المسافة الزائدة 🙂

كما لاحظنا في مشاركتي اعلاه ، وبسبب وجود اشارتين/رمزين CR LF ، فالمسافة (واقعا هي ليست مسافة ، وانما الانتقال الى السطر التالي) ،

ونحن وقفنا عند الرمز الاول ولم نعير انتباه للرمز الآخر ، فنتجت عنه هذه المسافة 🙂

 

تفضل هذا التعديل:

S: Mid([NASS],1,InStr([NASS],Chr(13))-1)

.

 

ومفهمومك صحيح 100% ، وليس عندي جواب لهذه الظاهرة ، غير اننا نستعمل اللغة العربية والتي تعمل بعض الاشكالات  😁

ولكن تم حلها كما في الطريقة السابقة ، بتنقيص نفس الرقم المستخدم في البداية ، هكذا:

S2: Mid([NASS],5,InStr([NASS],Chr(13))-5)

 

image.png.8b3c8a9f14be29e18b9d2524b45a2a6e.png

 

جعفر

1413.MZ.accdb.zip

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information