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

دمج عدة سنوات في إستعلام للتصفية

بدأه كريمو2 في 4 يوليو 2014 · 30 رد · 836 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني

رمضان كريم

مساعدة بخصوص دمج سنوات في الإستعلام

Year([Menha_Date])

و

Year([Cridi_Date])

و

Year([Elec_Date])

و

Year([Mosa3da_Date])

و

Year([Moss_Date])

الدمج

Year([Menha_Date]) & Year([Cridi_Date]) & Year([Elec_Date]) & Year([Mosa3da_Date]) & Year([Moss_Date])

على فكرة المراد من الدمج هو للتصفية

تم تعديل هذه المشاركة بواسطة كريمو2 في 4 يوليو 2014 في 21:36

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#2

على مايبدو وفهمي للسؤال ...  انك تحتاج الى اضافة حقل في الاستلام

Expr1: Year([DATE_BIRTH])

بهذا يمكن عمل تصفية

واذا كان ليس هذا المطلوب الرجاء ارفاق ملف مع توضيح اكثر

شكرا تحياتي

طارق العيد

#3

شكر اخي على الرد

اتمنى الصورة توضح المطلوب

post-237625-0-24391800-1404543199_thumb.

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#4

وعليكم السلام اخي :)

 

الافضل ان لا تدمج الحقول ، وانما تعمل لكل سنة عمودها الخاص في الاستعلام ، وتصفي كل عمود على حدة :)

 

 

جعفر

#5
jjafferr كتب:

وعليكم السلام اخي :)

 

الافضل ان لا تدمج الحقول ، وانما تعمل لكل سنة عمودها الخاص في الاستعلام ، وتصفي كل عمود على حدة :)

 

 

جعفر

شكرا أخي جعفر

والمعيار 

[Forms]![FormMasarifReport]![txtYear]

كيف اتصرف معه هل يوضع للكل إذا كان كذالك لم يعطي نتيجة صحيحة

وإذا وضع لأحدهم كذالك نفس الشيء لم يعطي نييجة صحيحة

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#6

وكيف تقوم بالتصفية حاليا؟

بالنسبة لاعمدة السنة ، بدلا عن Group by ، تستطيع ان تستخدم Where او Expression.

 

بما انك لم ترفق مثالك ، فاضطررت ان اعمل مثال بسيط ، وبه 3 انواع من الاستعلام ، والكل يعطي نفس النتيجة:

 

1. النموذج وبه السنة:

post-273849-0-14347000-1404586576_thumb.

 

2. الاستعلام الاول ونتيجته

post-273849-0-14147400-1404586600_thumb.

post-273849-0-65625900-1404586622.jpg

 

 

3. الاستعلام الثاني ونتيجته

post-273849-0-05826400-1404586647_thumb.

post-273849-0-97380900-1404586669.jpg

 

 

4. الاستعلام الثالث ونتيجته

post-273849-0-53818900-1404586695_thumb.

post-273849-0-79350400-1404586718.jpg

 

 

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

 

جعفر

195.Year filter.mdb.zip

#7

شكرا لك اخي 

جربت الطريقة ومافلحت في النتائج

التجريب بسنتين 2013 و 2014

النتيجة الصحيحة حسب الصورة

 

 

post-237625-0-61828300-1404604437_thumb.

 

بالنسبة للمرفق

الدخول على استعلام4

 

لتثبيت النتائج الدخول على الفورمات التالية

FrmMen7Report

FrmCridiReport

FrmElecReport

FrmMoussadaReport

FrmScholaireReport

الرحلات وقفة رمضان

 

أتمنى المساعدة

 

2014.rar

تم تعديل هذه المشاركة بواسطة كريمو2 في 6 يوليو 2014 في 03:02

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#8

الله يطول في عمرك اخي كريمو :)

الاستعلام شغال آخر حلاوة ، بس ما في بيانات متطابقة لنفس السنة في الجداول (اخذ مني حوالي ساعة علشان اوصل لهذه النتيجة  :( ) ،

 

1. انا ازلت المعيار ، وخليت الاستعلام4 يشتغل ، مع إدخال التواريخ من جميع الجداول في الاستعلام:

post-273849-0-32065800-1404641866_thumb.

 

 

2. والنتيجة كانت:

post-273849-0-06636100-1404642175_thumb.

 

 

لاحظ السنوات اللي في المربعات الحمراء ، هي غير عن بقية السنوات في نفس السجل ، فمن الطبيعي ان لا نحصل على فلتر لما نضع المعيار لسنة 2013 او 2014 :(

 

3. للتجربة ، في الجدول ElectroMeng ، للموظف رقم 17 ، غيرت السنة من 2012 (انظر الصورة اعلاه) الى 2013 ليتوافق مع بقية الجداول:

post-273849-0-67653500-1404641913.jpg

 

4. رجعت للاستعلام4 ، وطلبت سنة 2013 ، فكانت هذه النتيجة:

post-273849-0-11140800-1404641941_thumb.

 

 

يعني الاستعلام4 شغال تمام :)

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 6 يوليو 2014 في 13:31

#9
jjafferr كتب:

 

1. انا ازلت المعيار ، وخليت الاستعلام4 يشتغل ، مع إدخال التواريخ من جميع الجداول في الاستعلام:

attachicon.gif195.Clipboard10.jpg

 

 

2. والنتيجة كانت:

attachicon.gif195.Clipboard11.jpg

 

 

لاحظ السنوات اللي في المربعات الحمراء ، هي غير عن بقية السنوات في نفس السجل ، فمن الطبيعي ان لا نحصل على فلتر لما نضع المعيار لسنة 2013 او 2014 :(

 

3. للتجربة ، في الجدول ElectroMeng ، للموظف رقم 17 ، غيرت السنة من 2012 (انظر الصورة اعلاه) الى 2013 ليتوافق مع بقية الجداول:

attachicon.gif195.Clipboard12.jpg

 

4. رجعت للاستعلام4 ، وطلبت سنة 2013 ، فكانت هذه النتيجة:

attachicon.gif195.Clipboard13.jpg

 

 

يعني الاستعلام4 شغال تمام :)

 

جعفر

السلام عليكم أخي جعفر

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

بالنسبة للنقطة 3 لسنة 2012 هو صحيح وليس خاطئ الموظف أخذ كهرومنزلية بهاته السنة

وبالنسبة للفلترة لما نضع 2012 يعطيني الا المستفيدين من هذه السنة فقط

ولما نصع 2013 يغض النظر عن 2012 ويعطيني الا المستفيدين في 2013

وهكذا بالنسبة لـ 2014

فرجاءا إعادة صيغة المعايير حتى تعطي النتيجة الصحيحة

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#10

اذاَ انت تريد اي سنة موجودة في اي من السجلات ،

اي انت تريد OR ولا تريد AND !!

 

لما تصفّ المعيار على نفس السطر لعدة اعمدة في الاستعلام ، فانك تستخدم AND ،

بينما لما تصفّ المعيار على اسطر مختلفة ، فانك تستخدم OR ،

 

ارجو ان يكون المعيار في الصورة هو مرادك :)

post-273849-0-31256200-1404647440_thumb.

 

 

اما ملاحظتي للنقطة رقم 3 في مشاركتي السابقة ، فكانت "للتجربة" كما قلت :)

 

جعفر

#11

الاخوة الكرام ..

في اعتقادي انه لن يكون مناسبا في هذا الموضوع الا استخدام dsum 

وكذلك اعتقد جازما بأن اي نتائج صادرة من هذا الاستعلام بهذا الشكل ستكون غير دقيقة لتأثر نتائج الجداول بعضها ببعض

الحل في اعتقادي الاستغناء عن الاستعلام والاعتماد على ديسم في كل الحقول

Me.t1 = Nz(DSum("[Menha_Value]", "[Award]", "Year ([Menha_Date])=" & Me.txtYear), 0)
 

تقبلو تحياتي

طارق العيد

#12
jjafferr كتب:

اذاَ انت تريد اي سنة موجودة في اي من السجلات ،

اي انت تريد OR ولا تريد AND !!

 

لما تصفّ المعيار على نفس السطر لعدة اعمدة في الاستعلام ، فانك تستخدم AND ،

بينما لما تصفّ المعيار على اسطر مختلفة ، فانك تستخدم OR ،

 

ارجو ان يكون المعيار في الصورة هو مرادك :)

attachicon.gif195.clipboard14.jpg

 

 

اما ملاحظتي للنقطة رقم 3 في مشاركتي السابقة ، فكانت "للتجربة" كما قلت :)

 

جعفر

اخي جعفر بورك فيك على تعبك معنا

المشكلة ليست في المعايير بل في النتيجة التي تظهر غير صحيحة

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#13
الفيلسوف111 كتب:

الاخوة الكرام ..

في اعتقادي انه لن يكون مناسبا في هذا الموضوع الا استخدام dsum 

وكذلك اعتقد جازما بأن اي نتائج صادرة من هذا الاستعلام بهذا الشكل ستكون غير دقيقة لتأثر نتائج الجداول بعضها ببعض

الحل في اعتقادي الاستغناء عن الاستعلام والاعتماد على ديسم في كل الحقول

Me.t1 = Nz(DSum("[Menha_Value]", "[Award]", "Year ([Menha_Date])=" & Me.txtYear), 0)
 

تقبلو تحياتي

اخي الفيلسوف بورك فيك على المساعدة

Me.t1 = Nz(DSum("[Menha_Value]", "[Award]", "Year ([Menha_Date])=" & Me.txtYear), 0)

دالة DSum كيف توضع في كل الحقول

و Me.t1 ماذا تعني واين توضع

تم تعديل هذه المشاركة بواسطة كريمو2 في 6 يوليو 2014 في 16:50

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#14

على فكرة أخي كريمو ، انت رابط الجداول بحقل ID بينما في اعتقادي يجب ربطها بحقل EmployeeID

#15
jjafferr كتب:

على فكرة أخي كريمو ، انت رابط الجداول بحقل ID بينما في اعتقادي يجب ربطها بحقل EmployeeID

بارك الله فيكم

 

جربت الطريقة ولكن باءت بالفشل

 

في نظري اخي جعفر هل يمكن عمل استعلام توحيد ؟

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#16

نعم ممكن :)

هل عدد الحقول المطلوبة موجودة في كل الجداول؟

جعغر

#17
jjafferr كتب:

نعم ممكن :)

هل عدد الحقول المطلوبة موجودة في كل الجداول؟

جعغر

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

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#18

نعم ممكن :)

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

جعفر

#19

الجداول حسب الترتيب

1- جدول  award

SELECT Award.EmployeeID, Award.Menha_Date, Award.mont1, Award.mont2, Award.mont3, Award.mont4, Award.mont5, Award.mont6, Award.mont7, Award.mont8, Award.mont9, Award.mont10, Award.mont11, Award.mont12
FROM Award;

2- جدول cridi

SELECT Cridi.EmployeeID, Cridi.Cridi_Date, Cridi.Cridi_Value
FROM Cridi;

3- جدول Mosa3da

SELECT Mosa3da.EmployeeID, Mosa3da.Mosa3da_Date, Mosa3da.NesbaValue, Mosa3da.Mossa3dat, Mosa3da.Takrim
FROM Mosa3da;

4- جدول ElectroMeng على فكرة هنا مبلغ Elec هو ناقص - Mont_Spéc

SELECT ElectroMeng.EmployeeID, ElectroMeng.Elec_Date, ElectroMeng.Elec, ElectroMeng.Mont_Spéc
FROM ElectroMeng;

5- جدول Moss

SELECT Moss.EmployeeID, Moss.Moss_Date, Moss.Faconce, Moss.Ramadhan
FROM Moss;

6- جدول Scolaire

SELECT Scolaire.EmployeeID, Scolaire.Scolaire_Date, Scolaire.Mscholaire
FROM Scolaire;

بمعدل 14 حقل تقريبا لكل استعلام

اتمنى مساعدة في القريب العاجل

تم تعديل هذه المشاركة بواسطة كريمو2 في 6 يوليو 2014 في 20:29

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#20

هل كل استعلام منفرد يعطي النتائج الصحيحة؟

#21
jjafferr كتب:

هل كل استعلام منفرد يعطي النتائج الصحيحة؟

نعم يعطي النتيجة صحيحة

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#22

اخي كريمو

 

عمل Union Query مضني ، واليك الخطوات التي اتبعتها حتى توصلت للنتيجة ، والتي ان شاء الله تكون مطلبك :)

 

 

الملف 195.1 : هنا جمعت الحقول المطلوبة من الاستعلامات التي وضعتها لي في مقالك السابق ، كل استعلام على حدة ،

الملف 195.2 : عبأة الخانات الفاضية

الملف 195.3 : حولتها لصيغة csv 

الملف 195.4 : ومن ثم عدلت عليها لكي تكون جاهزة للبرنامج

qry_Combined_Zero : وهو Union Query الذي نصبو اليه والذي به جميع الاستعلامات

post-273849-0-82492000-1404676875_thumb.

 

نأخذ الاستعلام اعلاه ، ونعمل استعلام مجاميع ، للموظفين: qry_Combined_Employee

post-273849-0-55434900-1404676780_thumb.

 

وآخر للسنة: qry_Combined_Year

post-273849-0-98045500-1404676754_thumb.

 

 

ومن هذه الاستعلامات تستطيع عمل التقارير التي تريد :)

واعتقد بأن الاستعلامات اصبحت سهلة التغيير لك :)

 

جعفر

195.1.Union_Query_Design.xlsx

195.2.Union_Query_Design_Filled.xlsx

195.4.Union_Query_Design_Filled_Corrected_Zero.txt

195.2014.mdb.zip

195.3.Union_Query_Design_Filled.txt

#23

عمل متعب حقا اخي جعفر


بورك فيك وربي يخليك ويحفظك ويحسن خاتمتك


هذا الإستعلام qry_Combined_Year وافي وكافي ومستخرج للنتائج الصحيحة


انه الخجل ينتابني من تعبك معي والله


يعجز اللسان عن وصف جميلك وكرمك وتواضعك


وماعساني الا ان اكرمك بدعوة صالحة بظهر الغيب 


دمت ذخرا للمنتدى


تقبل تحياتي القلبية الخالصة


 


 


تم تعديل هذه المشاركة بواسطة كريمو2 في 7 يوليو 2014 في 02:57

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#24

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

نعم جهد مضني بارك الله فيك اخي جعفر وجزاك الله خير الجزاء

طريقة استخدام دالة dsum

دالة DSum كيف توضع في كل الحقول

و Me.t1 ماذا تعني واين توضع

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

والمنتدى العامر مليئ ببيانات اكثر

Me.t1 تعني في مثلنا هذا هو اسم عنصر (حقل) في النموذج وهو مبلغ المنح في نموذج المصاريف ، حيث جمعنا كل المنح من الجدول مع اشتراط ان يكون الجمع في السنه المحدده

لقد ارفقت اليك الملف المعدل بنتائج ان شاء الله دقيقة ولا تبطئ قاعدة البيانات

مع تعديل في جدول Moss

حيث لا بد من وضع عند خاصية رقم الموظف .... مطلوب = نعم

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

تحياتي للجميع

20142.rar

تم تعديل هذه المشاركة بواسطة الفيلسوف111 في 7 يوليو 2014 في 08:03

طارق العيد

#25

الحمدلله ، و حياكم الله :)

جعفر

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