اذهب الي المحتوي
أوفيسنا

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

قام بنشر

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

في الملف المرفق استعلام (QF_Subject)  فيه حقول بياناتها أرقام، أريد استبدالها بالأسماء التي ترمز إليها

* أولا: المطلوب أن تظهر الأسماء في الحقول (   (LVL1name – LVL2name - LVL3name – LVL4name

ومصدرها واحد وهو حقل (SName) ولكن باعتبار أرقام  الحقول: (LVL1 - LVL2   - LVL3   - LVL4 )  

فليظهر الاسم المطلوب لـ (LVL1) يجب اعتبار باقي المستويات = 0

وليظهر اسم (LVL2) يجب اعتبار (LVL3) (LVL4) = 0

وفي الجدول (Q_Subject) النتائج المراد الوصول إليها

 

* ثانيا: أن تظهر الأسماء في (TYPE2name - TYPE1name) ومصدر هذه الأسماء من جدول آخر وهو (DATA_list)

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

QF_Subject.accdb

قام بنشر
52 دقائق مضت, nssj said:

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

 

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

حاولت فهم الموضوع من معطياتك أخي الكريم ولكني لم أوفق .. ان أمكن توضيح أكثر فنكون من الشاكرين :wub: 

  • Thanks 1
قام بنشر

في الصورة المرفقة، الجدول الأول للاستعلام، ويظهر كيف أن أسماء المستويات الأربعة (LVL1 - LVL2   - LVL3   - LVL4 )   هي واحدة وأخذها الاستعلام تلقائيا من حقل (SName)

والمطلوب أن يحضر اسم كل مستوى في حقول خاصة أعدت لهذا الغرض  (   (LVL1name – LVL2name - LVL3name – LVL4name

والنتيجة المطلوبة في الجدول الذي تحته.

image.png.8a655efe63553970a55f91f7a601f7e1.png

 

وإحضارها يكون من جدول (TAB_Subject) باعتبار أرقام (LVL1 - LVL2   - LVL3   - LVL4 )  التي في الاستعلام

وكمثال في الحديث الأخير:

اسم الموضوع الرئيسي (LVL1) هو (المناقب)، والمطلوب إحضاره من جدول (TAB_Subject) بدلالة رقم (1LVL) الذي في الاستعلام وهو (38)، بشرط أن تكون أرقام بقية المستويات هي (صفر)، وهذه صورة جدول (TAB_Subject) وفق هذه المعطيات

 image.png.20169b752bf7f23dbc7d43e411b47ac9.png

والمستوى الثاني (LVL2) رقمه (558) مع كون أرقام المستويين التي بعده (صفر)، واسمه: فضائل بقية الصحابة على الترتيب الهجائي

 image.png.7bb57e8f3095fd4c2ece4ae105c46292.png

والثالث (LVL3) رقمه (1032) والمستوى الذي بعده (صفر) واسمه: أ

 image.png.9be75439b983028667e3745fb0fadc89.png

فهل يمكن إدراج هذه الشروط والاعتبارات في الاستعلام لإظهار الاسم بدل الرقم.

قام بنشر

😅 الموضوع أكثر من متشعب ..

ولكن كمحاولة لست متأكداً من نتائجها ، قمت بالتجربة على قيم محددة في الاستعلام التالي ، جربه فضلاً أخي الكريم @nssj .

SELECT TAB_Subject.ID, TAB_Subject.LVL1, (SELECT TOP 1 SName FROM TAB_Subject AS L1 
     WHERE L1.LVL1 = TAB_Subject.LVL1 
     AND L1.LVL2 = 0 AND L1.LVL3 = 0 AND L1.LVL4 = 0) AS LVL1name, TAB_Subject.LVL2, (SELECT TOP 1 SName FROM TAB_Subject AS L2 
     WHERE L2.LVL1 = TAB_Subject.LVL1 
     AND L2.LVL2 = TAB_Subject.LVL2 
     AND L2.LVL3 = 0 AND L2.LVL4 = 0) AS LVL2name, TAB_Subject.LVL3, (SELECT TOP 1 SName FROM TAB_Subject AS L3 
     WHERE L3.LVL1 = TAB_Subject.LVL1 
     AND L3.LVL2 = TAB_Subject.LVL2 
     AND L3.LVL3 = TAB_Subject.LVL3 
     AND L3.LVL4 = 0) AS LVL3name, TAB_Subject.LVL4, (SELECT TOP 1 SName FROM TAB_Subject AS L4 
     WHERE L4.LVL1 = TAB_Subject.LVL1 
     AND L4.LVL2 = TAB_Subject.LVL2 
     AND L4.LVL3 = TAB_Subject.LVL3 
     AND L4.LVL4 = TAB_Subject.LVL4) AS LVL4name, TAB.TYPE1, (SELECT LISTname FROM DATA_list 
     WHERE NOM2 = TAB.TYPE1 AND NOM1 = 1) AS TYPE1name, TAB.TYPE2, (SELECT LISTname FROM DATA_list 
     WHERE NOM2 = TAB.TYPE2 AND NOM1 = 2) AS TYPE2name
FROM TAB, TAB_Subject_X, TAB_Subject
WHERE TAB.MNO = TAB_Subject_X.MNO 
    AND TAB_Subject_X.SUB_ID = TAB_Subject.ID
    AND TAB_Subject.ID IN (76, 159, 1873)
ORDER BY TAB_Subject.ID;

عله يكون بداية طيبة ..

قام بنشر
10 ساعات مضت, Foksh said:

😅 الموضوع أكثر من متشعب ..

كالعادة .. أمور كنت أظنها يسيرة فإذا بها متشعبة ومعقدة حتى في نظر أهل الخبرة 😅

مقصدي الأهم من هذا الطلب معرفة ما إذا كان هذا الإجراء متاحا في الاستعلام، ثم إذا كان ممكنا هل هو (ظاهرة صحية) لا تسبب البطء في التشغيل

لأن عندي استعلام يضم عدة جداول مترابطة، أريد أن أجعله مصدرا موحدا لعدة نماذج

فإذا كان بالإمكان أن توجد هذه المعلومات في الاستعلام نفسه بحيث تعرض في النماذج من خلال (مربع نص) فهو أفضل، وإلا فأنا اعتدت على إظهار هذه المعلومات في النماذج باستخدام (قائمة تحرير وسرد) واستعلامات داخلية خاصة لكل نموذج.

وقد حاولت مجددا في الاستعلام باستخدام جداول مكررة داخل الاستعلام، وتمكنت من الحصول على المطلوب في (LVL1) (LVL2) فقط ، دون المستوى الذي بعده (LVL3).

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

والنتائج الي أظهرها الاستعلام الذي تفضلت به أخي الكريم أفضل، فقد أظهر الأسماء في جميع المستويات.

لكن فيه نفس المشكلة التي ظهرت في محاولتي الأخيرة، وهي ظهور الاسم في المستويات الفارغة، أعني التي الرقم فيها (صفر)

 image.png.62b201a3a5dae4738b48e02dcb44c72e.png

وربما السبب أن المستوى الأول والثاني (LVL1) (LVL2) موجودان في كل حديث، أما ما بعده فليس بالضرورة.

فحيثما كان رقم (LVL3) أو (LVL4) هو (صفر) فالاسم = ""

QF_Subject2.accdb

قام بنشر

امممم تقريباً بدأ افهم 😅😅 

جرب هذا الاستعلام !!!

SELECT 
    TAB_Subject.ID,
    TAB_Subject.LVL1,
    IIf(TAB_Subject.LVL1 = 0, Null, 
        (SELECT TOP 1 SName FROM TAB_Subject AS L1 
         WHERE L1.LVL1 = TAB_Subject.LVL1 
           AND L1.LVL2 = 0 AND L1.LVL3 = 0 AND L1.LVL4 = 0)) AS LVL1name,

    TAB_Subject.LVL2,
    IIf(TAB_Subject.LVL2 = 0, Null, 
        (SELECT TOP 1 SName FROM TAB_Subject AS L2 
         WHERE L2.LVL1 = TAB_Subject.LVL1 
           AND L2.LVL2 = TAB_Subject.LVL2 
           AND L2.LVL3 = 0 AND L2.LVL4 = 0)) AS LVL2name,

    TAB_Subject.LVL3,
    IIf(TAB_Subject.LVL3 = 0, Null, 
        (SELECT TOP 1 SName FROM TAB_Subject AS L3 
         WHERE L3.LVL1 = TAB_Subject.LVL1 
           AND L3.LVL2 = TAB_Subject.LVL2 
           AND L3.LVL3 = TAB_Subject.LVL3 
           AND L3.LVL4 = 0)) AS LVL3name,

    TAB_Subject.LVL4,
    IIf(TAB_Subject.LVL4 = 0, Null, 
        (SELECT TOP 1 SName FROM TAB_Subject AS L4 
         WHERE L4.LVL1 = TAB_Subject.LVL1 
           AND L4.LVL2 = TAB_Subject.LVL2 
           AND L4.LVL3 = TAB_Subject.LVL3 
           AND L4.LVL4 = TAB_Subject.LVL4)) AS LVL4name,

    TAB.TYPE1,
    (SELECT LISTname FROM DATA_list 
     WHERE NOM2 = TAB.TYPE1 AND NOM1 = 1) AS TYPE1name,

    TAB.TYPE2,
    (SELECT LISTname FROM DATA_list 
     WHERE NOM2 = TAB.TYPE2 AND NOM1 = 2) AS TYPE2name

FROM 
    TAB, TAB_Subject_X, TAB_Subject
WHERE 
    TAB.MNO = TAB_Subject_X.MNO 
    AND TAB_Subject_X.SUB_ID = TAB_Subject.ID
    AND TAB_Subject.ID IN (76, 159, 1873)
ORDER BY 
    TAB_Subject.ID;

استخدمت الدالة IIf في كل حقل من حقول أسماء المستويات ، ونجعل الاسم يظهر فقط إذا كانت القيمة المقابلة > 0 ، وإلا = Null

 

هل التالي صحيح في الصورة ؟

image.png.e79f8f95344b0e9f6134f1d9229551e7.png

  • Like 1
قام بنشر
20 دقائق مضت, Foksh said:

امممم تقريباً بدأ افهم 😅😅

التقصير مني أخي الكريم لأني لم أوضح الفكرة بالشكل المناسب  😐

النتيجة صحيحة 100%

12 ساعات مضت, Foksh said:

عله يكون بداية طيبة

نعم .. هذه البداية فقط 😁

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

قام بنشر
38 دقائق مضت, nssj said:

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

الفرق في عدم وجود بعض الحقول ، صحيح ؟؟

ام ماذا ؟؟؟

قام بنشر
35 دقائق مضت, Foksh said:

الفرق في عدم وجود بعض الحقول ، صحيح ؟؟

الفرق في وجود جدول آخر والعلاقات بين الجداول

 image.png.98ca9894cb79f54e67362c1fd648ab20.png

فالنسخة المرفقة من الاستعلام هي نسخة مصغرة للتجربة، حتى أنه فيه جدول (DATA_list) وليس في الاستعلام الأصلي الذي أستخدمه ، لأني لا أزال في طور التجارب، وقد أضيف جدولا آخر

وأنا كنت أتوقع أن تكون معالجة الأمر بوضع دالة داخل الاستعلام، على شاكلة:

 image.png.3bced8bf800c42ec2826bad3ec9f0343.png

أو

image.png.2af33500c3be704a1bdfe95eb7d8df96.png

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

قام بنشر

😕

لماذا تختار الشرح المبهم والذي لا يؤدي الى توضيح الفكرة والهدف ..

الحقول التي غير موجودة في استعلامي هي ؟؟؟ ( أرجو تحديدها ) ولا تنسى أنني اتعامل مع مرفقك وليس مع المرفق الذي تملكه وتطبق عليه ان كان مختلفاً في بنيته وتركيبه .

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