الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الفرز التصاعدي

مغلق
بدأه mqurashi في 23 سبتمبر 2003 · 13 رد · 1,327 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الكرام

السلام عليكم ورحمة الله وبركاته

لدي جدول به اكثر من حقل

الحقل الأول به ارقام لاوامر العمل وخاصيته نص مكون من حروف وارقام

يتم فرزها تصاعديا بطريقة صحيحة ولكن عندوصل الرقم 100 واعلى يصبح هناك لخبطة في الفرز حيث يعامل المئة مثل الواحد

مرفق الجدول

امل التكرم بمساعدتي

ولكم وافر الشكر

محمد

#2

أخي الكريم

السلام عليك وبعد

مشكلتك محلولة بإذن الله ولكن هل من الممكن ذكر بعض الأرقام على سبيل المثال

تحياتي

#3

اشكرك اخي على تجاوبك السريع

والأرقام مثل

NS-1

NS-2

.

.

NS-100

BZ-1

BZ-1

وكان بودي ارسل ملف ولكن ماادري كيف الطريقة

محمد

#4

الأخ / محمد قرشي ،،،، السلام عليكم ورحمة الله وبركاته ,,,, حدثت معي مثل هذه المشكلة ،،،، وقد تغلبت عليها بإضافة رقم ( 0 ) قبل الرقم ،،،، بعدد الخانات التي أريدها مثلاً : الرقم الذي أريده لـ ( NS ) نهايته ( 9999 )

يكون تسجيله في الجدول بهذه الطريقة :

NS-0001

NS-0002

NS-0003

حتى آخر سجل

NS-9999

والنوع الثاني ( BZ ) نهايته ( 999 ) مثلاً ،،،، يكون تسجيله بهذه الطريقة :

BZ-001

BZ-002

BZ-003

حتى آخر سجل

BZ-999

وهكذا ,,,,,,,,

بهذه الطريقة سوف يمكنك فرزها تصاعديا و تنازليا ,,,,, كيفما تشاء ‍‍‍‍‍‍‍‍!!!!!

لا أدري ما إذا كانت هناك طريقة أخرى لحل مثل هذه المشكلة عند الزملاء !!!!

شاكر

تم تعديل هذه المشاركة بواسطة شاكر الزين في 24 سبتمبر 2003 في 08:21

المسلم من سلم الناس من لسانه ويده

#5

أخي الكريم

السلام عليكم وبعد

المشكلة الرئيسة بالطبع هي أن أكسس يتعامل مع الرقم في هذه الحالة كنص وبالتالي فإنه ينفذ عملية الفرز بالترتيب من اليسار إلى اليمين

جرب هذا الحل رغم أنه حل معقد

عن طريق استخدام دالة left استخرج أول حرفين من اليسار ثم افرز على أساسها

عن طريق دالة mid استخرج بقية الرقم ثم افرز على أساسه

آمل أن تكون الطريقة واضحة

تحياتي

أخوك / أبو هاجر

#6

السلام عليكم ورحمة الله وبركاته

اشكركم جميعا على تجاوبكم

واريد ان اوضح ان المهم عندي ان يكون الترقيم مرتب في حالة استخراج التقارير

امل المساعدة بطريقة تفصيلية

وجزاكم الله خيرا

#7

أخي الكريم

السلام عليكم وبعد

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

تحياتي

أخوك / أبو هاجر

#8

السلام عليكم ورحمة اللله وبركاته

اخوي اشكرك على تعاونك

اسم الجدول order

اسم الحقل ser

وتقبل وافر تحياتي

محمد

#9

أخي الكريم

السلام عليكم وبعد

أنشئ استعلاماً جديداً وفي صفحة عبارة SQL ألصق العبارة التالية

SELECT order.ser, Left([ser],2) AS Expr1, CDbl(Mid([ser],4)) AS Expr2
FROM [order]
ORDER BY Left([ser],2), CDbl(Mid([ser],4));

والفكرة تعتمد على تقسيم الحقل ثم تحويل الجزء الرقمي من السلسلة النصية إلى رقم باستخدام الدالة CDb ثم الفرز على أساس الأحرف أولاً ثم الأرقام ثانياً

تحياتي

أخوك / أبو هاجر

#10

مشكور أخ أبو هاجر على هذا الكود الرائع

شاكر

المسلم من سلم الناس من لسانه ويده

#11

اشكرك ياخي ابوهاجر

لقد جربت الكود ونجح معي

ولكن انا عندي استعلامات كثيرة بعضها يعتمد على اكثر من جدول

هل اضع الكود مع كل استعلام على حدة

اشكرك مرة اخرى واتمنى لك كل التوفيق وجزاك الله خيرا

اخوك محمد

#12

أخي الكريم

السلام عليكم وبعد

ضع الكود مع أي استعلام فقط غير اسم الحقل والجدول

تحياتي

أخوك / أبو هاجر

#13

الأستاذين/ شاكر وأبو هاجر

ما شاء الله عليكما

دائما مشاركاتكم مفيده ليست للسائل فقط ، وأيضاً للمشاهد.

ibnmusqat.gif
#14

حياك الله أخي : ابن مسقط ،،،، وأنا أيضا أستفيد من طرحك و أمثلتك ،،، وعساك على

القوة ,,,,

شاكر

المسلم من سلم الناس من لسانه ويده

هذا الموضوع مغلق.

مواضيع مشابهة