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

مطلوب جمع مبالغ من جدول في نموذج بمعايير

بدأه sweety78 في 12 أكتوبر 2011 · 8 رد · 1,067 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

في قاعدة البيانات المرفقة... مطلوب جمع المبالغ Amount من الجدول ACC في النموذج Form1، والمعايير كالتالي:

أن يكون مجموع Amount من الجدول ACC مطابق للـ CPR الموجود في النموذج Form1

أريد أن تظهر النتيجة في الحقل الغير منظم Total

لقد قمت بمحاولة ولكن لم أوفق حيث مثالي يأخذ مجموع Amount بالكامل.

يوجد صورة مرفقة

أتمنى أن اجد الحل لديكم

Sum.rar

post-145478-042477600 1318440625_thumb.j

المرفقات
SumX.jpg
#2

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

تفضل التعديل

Sum1.rar

#3

اخي الفاضل

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

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

=DSum("[Amount]";"ACC";"[CPR] = """ & [CPR] & """")

وهذا ملف بعد التعديل

Sum-UP.rar

بالتوفيق

1
#4

استاذي الفاضل غرام العقول...

شكراً جزيلاً على الاجابة فإنها تفي بالغرض

---------------------

أستاذتي الفاضلة زهرة ....

إجابة بإسلوب مختلف وتفي بالغرض فشكراً جزيلاً

اذا سمحتي لي سؤال بسيط

لقد ذكرتي ضمن اجابتك بإنني استخدمت في CPR حقل نصي وقد اختلف عليّ الوضع، هل بالامكان ان تشرحي لي مشكلة ذلك؟

مع خالص تحيااااتي

#5
sweety78 كتب:

أستاذتي الفاضلة زهرة ....

إجابة بإسلوب مختلف وتفي بالغرض فشكراً جزيلاً

اذا سمحتي لي سؤال بسيط

لقد ذكرتي ضمن اجابتك بإنني استخدمت في CPR حقل نصي وقد اختلف عليّ الوضع، هل بالامكان ان تشرحي لي مشكلة ذلك؟

مع خالص تحيااااتي

اخي الفاضل

كما تعلم انه عند استخدام المعايير في هذه الجمل حساسة جدا لقبول اي صيغة وعند استخدام الدوال التجميعية مثل ( DLookup - DSum - DMax - DCount - DFirst - DLast ) في تعبير يجب التقيد بشروط معينه وهي :

1. شروط الحقل الرقمي ( يكون نوع الحقل في الجدول اساسا نوعه رقم ) .

2. شروط الحقل النصي ( يكون نوع الحقل في الجدول اساسا نوعه نص ) .

3. شروط الحقل تاريخ ( يكون نوع الحقل في الجدول اساسا نوعه - تاريخ / وقت )

نستعرض الآن الشرح لكل نوع من انواع الحقول والفروقات بينهم .

1. اذا كان الحقل رقمي Numerical ( اي انه في الجدول نوعه رقم ) فيجب ان يوضع في ( الإستعلام او التعبير ) بين علامتي تنصيص بهذه الطريقة "[iD]"

مثل

"[ID]=" & [ID]

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

مثال لأي دالة من دوال المجال التجميعي

DSum("[FieldName]"; "TableName"; "[FieldName] =" & [FieldName])

لاحظ علامتي التنصيص المزدوجه " " للحقل الرقمي حيث تم وضع اول علامة تنصيص للحقل الرقمي الأول الموجود في الجدول ثم علامة = ثم علامة تنصيص مزدوجه " ثم & ثم الحقل الرقمي الثاني الموجود سواء في الجدول او النموذج او التقرير

2. اذا كان الحقل نصي Strings ( اي ان الحقل في الجدول نوعه نص ) فيجب ان يوضع في الإستعلام بين ثلاث علامات تنصيص بهذه الطريقة "'[NAME]"'

مثل

"[NAME]=' & [NAME] & ' "

لاحظ كيف اختلف التعبير عن الحقل الرقمي في الكود العلوي حيث تم اضافة عدد اثنين & بعد الفاصلة العلوية الثالثة لحقل الإسم الأول حيث يجب وضع حقل الإسم الثاني بين علامتي تنصيص مفرده ' ' اما علامتي التنصيص المزدوجة " " فهي خاصة لحقل الإسم الأول

مثال لأي دالة من دوال المجال التجميعي

DSum("[FieldName]"; "TableName"; "[FieldName] =' " & [FieldName] & " ' ")

لاحظ في الكود ترتيب علامات التنصيص سواء المزدوجة او المفرده فأول علامة تنصيص مزدوجه لحقل الإسم الأول يجب ان يغلق بعلامة تنصيص مفرده ' بعد علامة = فهذه اول ثلاث علامات تنصيص ' " للحقل الأول ثم نضع علامة تنصيص مزدوجه " للحقل الثاني لأنه نصي ثم

نضع & ثم نضع حقل الإسم الثاني ثم نضع & ثم نغلق علامة التنصيص المزدوجه " للحقل الثاني ثم نغلق علامة التنصيص المفرده ' لحقل الإسم الأول ثم نغلق كامل الجملة بعلامة تنصيص مزدوجة " وهي خاصة بحقل الإسم الأول

3. اذا كان الحقل من نوع تاريخ DATE ( يعني في الجدول نوعه تاريخ / وقت ) فيجب ان يوضع بين بين علامتي شبكة #[DATE]#

مثل

"[DATE]=#" & [DATE] & #"

مثال لأي دالة من دوال المجال التجميعي

DSum("[FieldName]", "TableName", "[Date]=#" & [Date] & "#")

لاحظ كيف تم استخدام علامات التنصيص المزدوجه " وعلامتي الشبكه #

حسنا ماذا لواردنا تجميع كل هذه المعايير حقل رقمي Numerical و حقل نصي Strings و حقل تاريخ Date في دالة واحده فيجب ان نكون حريصين جدا في وضع علامات التنصيص لكل حقل حتى لا نحصل على اخطاء

مثال لأي دالة من دوال المجال التجميعي

DSum("[FieldName]", "TableName", "[FieldNumerical] = " & [FieldNumerical] & " AND [FieldString]  = '" & [FieldString] & "'" & " AND [FieldDate]  = #" & [FieldDate]& "#" )

تطبيقات عملية للفائدة : لمعرفة طريقة استخدامها لكل نوع

1. الحقول الرقمية وطرق استخدام التعبيرات فيها :

DLookup("[UnitPrice]", "Order Details", "OrderID = 10248")

في هذا المثال لم نستخدم الحقل الرقم الثاني ولمن استخدمنا مباشرة رقم

DLookup("CustomerID", "Orders", "OrderID = " & Forms![Orders]!OrderID)

في هذا المثال اسندنا الحقل الرقمي الى الحقل الرقمي في النموذج Orders

DLookUp("[LastName]", "Employees", "[EmployeeID] = Form![EmployeeID]")

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

DLookUp("[LastName]", "Employees", "[EmployeeID] = " & [EmployeeID])

في هذا المثال اسندنا الحقل الرقمي الى الحقل الرقمي في النموذج مباشرة بدون ان نشير الى النموذج بإعتبار ان الحقل الرقمي موجود اساسا في النموذج الذي نعمل عليه .

DLookUp("[LastName]", "Employees", "[EmployeeID] = " & Forms![Orders]![EmployeeID])

في هذا المثال اسندنا الحقل الرقمي الى الحقل الرقمي في النموذج المحدد Orders

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

2. الحقول النصية وطرق استخدام التعبيرات فيها :

DLookUp("[Title]", "Employees", "[LastName] = 'zahrah'")

في هذا المثال اسندنا الحقل النصي مباشرة الى اسم موجود في الجدول

ويأتي ايضا بهذه الطريقه

DLookUp("[Title]", "Employees", "[LastName] = ""Callahan""")

لاحظ كيف تم استخدام علامات التنصيص مع الحقل النصي

DLookup("[ContactName]", "[Customers]", "[CustomerID]='" & [CustomerID] & "'")

او

DLookup("[ContactName]", "[Customers]", "[CustomerID]='" & Forms![Orders]![CustomerID] & "'")

المثال السابق والأخير متشابهه تماما والإختلاف في الأول اسندنا الى الحقل مباشره اما في الثاني فأسندناه الى الحقل الموجود في النموذج Orders

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

3. حقول التاريخ والوقت وطرق استخدام التعبيرات فيها :

DLookUp("[LastName]", "Employees", "[BirthDate] = #01-27-66#")

في هذا المثال اسندنا حقل التاريخ الى احد التواريخ مباشرة

او

DSum("[LastName]", "Employees", "[BirthDate]=#" & [BirthDate] & "#")

في هذا المثال اسندنا حقل التاريخ الى حقل تاريخ موجود في النموذج

جميع هذه التعبيرات صالحة وتعطي نفس النتيجه وهذا ينطبق على حقول التواريخ فقط

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

بالتوفيق

3
#6

بارك الله بك اختنا ام عهود وزادك علماً

استفدت كثيرا من هذا الشرح الجميل ، ونحن مازلنا نتعلم

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

كل الاحترام والتقدير++++++++++++++++++++++++++++++++++++++++++

سيد الاستغفار

{ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك وأنا على عهدك ووعدك ما استطعت أعوذ بك من شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت}

من قالها من النهار موقنا بها فمات من يومه قبل أن يمسي فهو من أهل الجنة ومن قالها من الليل وهو موقن بها فمات قبل أن يصبح فهو من أهل الجنة .رواه البخاري

#7

السلام عليكم

الاستاذة أم عهود أشكرك جزيلاً وبارك الله فيك

أضم صوتي للأخ malik2010 لفتح موضوع تطرح فيه هذه المعلومات بشرح موسع وأن يكون من A - Z مدعوم بالامثلة مع الاخذ بعين الاعتبار على ان كثيرً منا مبتدئين وينطبق هذا الكلام عليّ انا شخصياً

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

واذا يتواجد لديك أو الاعضاء بعض الكتب التعليمية حبذا تزويدنا بها.

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

تحيااااتي

#8

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

اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

#9

شرح رائع جدا جدا

لو الادارة تقدر تفصل مساهمة الاخت زاهرة وتثبتها لوحدها يبقى شاكرين مهللين

احب اقول للناس الى بتتعلم شغل على الداله دية

ان هذة الداله لا تفهم المسافات سواء فى اسم الحق او فى اسم الجدول

معلومة منقولة من الاخت زهرة :)

من يعرف ان يعمل حسنا و لا يعمل فذلك خطية له.(يعقوب 4: 17)

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