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

مشكلة في استعلام


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

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

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

اننا نجزء الاستعلام

للجدول الرئيسي والتابع1 استعلام واستخدام sum للناتج

الجدول الرئيسي والتابع2 استعلام واستخدام sum للناتج

استعلام نهائي للاستعلامين السابقين

ولاداعي لاستخدام دالة IIf ودالة isnull لكون nz تغني عنهما

انظر للصورة المرفقة

 

استعلاااام.PNG

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

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

 

اتفق مع اخوي خالد 100% ، والميزة هي انك تقدر تحسب النتائج بسهولة بهذه الطريقة 🙂 

 

بس هل لاحظت ان علاقاتك خطأ !!

image.png.94bad47871ee2b8e02bd9fa76f4c461a.png

.

جعفر

 

 

عفوا ، ما انتبهت انك عامل Lookup في الجداول ، وهذه احد الشعلات اللي اتجنبها 100% في برامجي !!

 

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

الاساتذة المحترمين  kha9009lid و jjafferr 

اذا كان لدي 9 جداول تابعة للجدول الرئيسي وانا احتاجها جميعا في الاستعلام التجيميعي  وحسب جواب الاستاذ خالد هل يجب ان اعمل في هذة الحالة 10 استعلامات 

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

  • أفضل إجابة
22 دقائق مضت, ازهر عبد العزيز said:

اذا كان لدي 9 جداول تابعة للجدول الرئيسي وانا احتاجها جميعا في الاستعلام التجيميعي  وحسب جواب الاستاذ خالد هل يجب ان اعمل في هذة الحالة 9 استعلامات

دائما هناك حلول

مثلا ممكن نوصل للنتيجة بعدد 2 استعلام

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

والاستعلام الثاني يكون النهائي وفيه يتم احتساب الاجمالية ومصدرة الجدول الجديد

طبعا هذة الفكرة بناء على ان الجداول التسعة مشابهه لمثالك المرفق

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

2 ساعات مضت, jjafferr said:

في الجدول ، ما عندك امكانية تغييره برمجيا (ممكن ولكن باكواد طويلة ومعقدة) ، لذا ، فنحن نستعمل هذا الطريقة في النموذج للكمبوبوكس 🙂 

image.png.577eca8df0baa257943124cc5ab1ee15.png

.

جعفر

شكرا استاذ جعفر لكنك لم تذكر هذةالنصيحة هنا  https://www.officena.net/ib/topic/104245-نصيحة-للاخوان-الاعضاء/?tab=comments#comment-627345

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

من بعد اذن الاخوة الكرام

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

Expr1: Nz(DSum("[crelative_num]";"[TBc]";"[idv] =" & [TBv]![idv]);0)

Expr2: Nz(DSum("[hrelative_num]";"[TBh]";"[idv] =" & [TBv]![idv]);0)

vvv.rar

تحياتي

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

5 ساعات مضت, محمد أبوعبدالله said:

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

 

علشان يكون برنامجك ناجح ، اعتبر ان به عشرات الآلاف من السجلات ، على الاقل !!

الطريقة الوحيدة للحصول على معلومة معينة في قواعد البيانات ، من بين مئات او آلاف او ملايين السجلات ، هو الاستعلام :

  1. قد يكون الاستعلام العادي الذي يسمح لنا الاكسس عمله بالطريقة التقليدية السهلة (وللعلم ، فالاكسس كان يتفوق على الكثير من قواعد البيانات العملاقة بهذه الميزة ، اما الباقين فكانوا يستعملون الكود !!) ،
  2. او الاستعلام في الكود بإستخدام SQL ،
  3. او الاستعلام بطريقة Recordset ،
  4. او بطريقة اسهل ، وهي الاستعلام بطريقة DSum او DLookup او DCount او DMax او بقية عائلة الدوال التي تبدأ بـ D (اذن فهي استعلام ايضا)**1 .

 

يمكننا عمل استعلام مجاميع بواسطة الاستعلام العادي ، مع وضع معرّف السجل ID (وبهذه الطريقة يعمل الاستعلام مرة واحدة للحصول على المعلومة وجمعها) ، وقد نحتاج الى استعمال هذا الاستعلام كمصدر بيانات لإستعلام آخر عادي لإظهار بقية البيانات (يعني استعلام مجاميع 1 + استعلام عادي 1 = استعلامين) ، 

بينما عند وضع DSum في الاستعلام ، فإن الاستعلام يقوم بعمله كإستعلام عادي ، بالاضافة الى استعلام DSum لكل سجل (يعني 1 + استعلامات بعدد السجلات) ، لهذا السبب تجد انه بطئ جدا ، ويمكنك القاء نظرة هنا لمقارنة السرعة ، وبالخصوص آخر مقارنة وهي للـ DLookup في استعلام :

 

 

جعفر

 

**1  :

هذه الطريقة لا تعمل عند ربط الاكسس مع SQL Server ،

كنت اعتقد ان هذه الطريقة موجودة في الاكسس فقط ، وقد افادني اخي الاستاذ خالد @kha9009lid بأنها تعمل مع اوراكل بنفس طريقة عملها مع اكسس ولكن بدون الحاجة الى علامات التنصيص والاقواس []

وايضا تعمل مع قاعدة بيانات بيس الخاصة بتطبيق اوبن اوفيس بنفس الطريقة

تم تعديل بواسطه jjafferr
تصحيح معلومة
  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

2 دقائق مضت, jjafferr said:

بالاضافة الى استعلام DSum بعدد السجلات (يعني 1 + استعلامات بعدد السجلات)

تمام استاذنا الفاضل وصلت المعلومة

الآن فهمت لماذا لا تفضل استخدام dsum مباشرة في الاستعلام وتفضل استخدام استعلامين الاول تجميعي والثاني مبني على الاول

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

تحياتي

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

2 ساعات مضت, jjafferr said:

ما شاء الله عليك اخوي خالد ، ذاكرتك قوية 🙂 

ليس الذاكرة فقط وايضا نظرة 6/6  استاذ خالد عليك بالبخور وقراءة المعوذتيين   ربي يحفظك 

 

 

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

1 دقيقه مضت, ازهر عبد العزيز said:

ليس الذاكرة فقط وايضا نظرة 6/6 

استاذ خالد عليك بالبخور وقراءة المعوذتيين  

ربي يحفظك 

 

هممم ، يعني تريد تخبر اخوي خالد اني عماني ، وتريده يتحرّز بالبخور ، للعلم ، البخور يعزم اصحابنا :wavetowel:

 

جعفر

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

3 دقائق مضت, jjafferr said:

 

هممم ، يعني تريد تخبر اخوي خالد اني عماني ، وتريده يتحرّز بالبخور ، للعلم ، البخور يعزم اصحابنا :wavetowel:

 

جعفر

بصراحة انت تحتاجهن اكثر  وايضا تبحث عن الرابعة 😈

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

3 ساعات مضت, jjafferr said:

ما شاء الله عليك اخوي خالد ، ذاكرتك قوية

ههههه

نعم صحيح وهي ميزة للشباب ومشكلة للمسنين

49 دقائق مضت, ازهر عبد العزيز said:

يس الذاكرة فقط وايضا نظرة 6/6  استاذ خالد عليك بالبخور وقراءة المعوذتيين

لا والله النظر ضعيف جدا بسبب السن ومشاكله

ذهبَ الشبابُ فما له منْ عودةٍ وأتَى المشيبُ فأينَ منهُ المَهربُ

42 دقائق مضت, jjafferr said:

هممم ، يعني تريد تخبر اخوي خالد اني عماني ، وتريده يتحرّز بالبخور ، للعلم ، البخور يعزم اصحابنا

انعم واكرم بعمان واهلها الافاضل واصحابكم هم اصحابنا 😎

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

13 دقائق مضت, kha9009lid said:
56 دقائق مضت, jjafferr said:

هممم ، يعني تريد تخبر اخوي خالد اني عماني ، وتريده يتحرّز بالبخور ، للعلم ، البخور يعزم اصحابنا

انعم واكرم بعمان واهلها الافاضل واصحابكم هم اصحابنا 😎

الله يسلمك ، اخوي زاهر عنده خطأ فني وما فهم السالفة :biggrin:

اصحابنا اللي اتكلم عنهم ، اللي البخور يعزمهم ، تراهم اللي يطيرون :biggrin:

 

جعفر

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information