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

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

مغلق
بدأه ahmedbadr في 16 فبراير 2007 · 21 رد · 2,856 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم يا أخواني في المنتدي

كيف حالكم جميعا

لدي مشكلة بسيطة

لدي نموذج يعرض مجموعة للبيانات كالتالي

الموضوع الرئيسي

الموضوع الفرعي

إسم الموضوع

من

الي

المشروع

الاهمية

الحالة

تاريخ الاصدار

تاريخ الانتهاء

موعد أقصي

الشهر

الفترة ( و فيها اختيار الشهر و تقسيمه الي جزأئن النصف الاول A و النصف الثاني B و كل جزء يمثل نصف شهر )

و يمكن فهم ذلك بوضوح أكثر من قاعد البيانات المرفقة

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

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

ملحوظة :-

لقد قمت بعمل جدول للشهور لإختيار الشهر

أخوكم

أحمد بدر

Work_Task.rar

#2

أرجو الاهتمام بالموضوع يا إخواني

#3

اخي ahmedbadr

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

احاول تنزيل الملف ولكن لم استطع ذلك يبدو ان هذه الخاصية لا تزال غير مفعلة بعد نقل الموقع

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

وبالتوفيق

#4

مشكور أخي علي الاهتمام

رابط خارجي للملف

#5

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

أخى الكريم احمد

مرفق ملفك وبه اضافة بسيطه , فلقد قمت بعمل زر امر يفتح التقرير ( IR Detailed ) ولكن تحت شرط ان يتم عرض التقارير الخاصة بالشخص والتاريخ المحددين بالنموذج. وتحديدا اخى الكريم

هذا هو الكود الخاص بالزر

Dim stDocName As String
	Dim stLinkCriteria As String

	stDocName = "IR Detailed"
	stLinkCriteria = "[Assigned To]=" & [Assigned To] & "And [Finish Month]=" & [Finish Month]

	DoCmd.OpenReport stDocName, acPreview, "", stLinkCriteria

بحيث يتم فتح التقرير تحت شرطين كما هو مبين سابقا.

واتمنى يكون هو ده المطلوب , مع تمنياتى بالتوفيق ان شاء الله ,,,

IR_3_Jan___Ver_8.rar

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6

مشكور أي عماد

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

جزاك الله كل الخير عني و عن المجهودد الذي تبذولونه أنت و الاخوان في هذا الصرح الكبيير

أحمد بدر

#7

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

وتقبل الله منا ومنك صالح الدعوات

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

وبالله التوفيق,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#8

أخي عماد

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

هناك مشكلة و هيا أنني عندما أضفت شروط أخري غير الموجودة ف زر الامر توقف عن العمل و أعطي رسالة ( Missing Operator ) و حاولت أن أجد لها فلم أعرف و لقد قمت بالتعديل الذي أريده و أريد منك يا أخي أن تساعدني فيها ..

الفورم التي ستفتح أمامك عند تشغيلها هيا ما أريد التعديل عليها و فيها أريد أن للمستخدم عدة خيارات أو شروط للطباعة التي يريديها بأن يختار الفترة و الشخص المسئول و حالة المهمات التي يريد طباعتها

في انتظار ردك يا أخي

قاعد البيانات في المرفق بالأسفل

أحمد بدر

قاعدة البيانات

#9

عزيزي

المشكلة ظهرت بسبب البيانات التي وضعت في شروط التقرير والتي توجد في جدول باسم Task Month فجاء حرف A الذي يتبع اسم الشهر قبل الرابط AND في الشرط المكتوب مما تسبب في عدم فهم محرك قاعدة البيانت لهذه الجملة ويتسبب هذا في ظهور خطا هو Missing Operator اي انه يتوقع وجود رابط مثل AND أو OR أو NOT من هذه الروابط

اقترح تعديل كافة بيانات الجدول بدلا من ترك فراغ بين April A مثلا ان تكون April_A

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#10

عزيزي

المشكلة ظهرت بسبب البيانات التي وضعت في شروط التقرير والتي توجد في جدول باسم Task Month فجاء حرف A الذي يتبع اسم الشهر قبل الرابط AND في الشرط المكتوب مما تسبب في عدم فهم محرك قاعدة البيانت لهذه الجملة ويتسبب هذا في ظهور خطا هو Missing Operator اي انه يتوقع وجود رابط مثل AND أو OR أو NOT من هذه الروابط

اقترح تعديل كافة بيانات الجدول بدلا من ترك فراغ بين April A مثلا ان تكون April_A

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#11

أخي همام

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

#12

عزيزي لم أشا التعديل على مصدر السجل الخاص بالتقرير Open Issues وهو الاستعلام OpenIssues حيث من وجهة نظري ان التعبير المكتوب في VBA قد لا يمكن كتابته بالشكل الصحيح في النموذج Print Criteria لذا اقترح نقل هذه المعايير الى الاستعلام نفسه اي Open Issues ولكن قبلا عزيزي يجب تحديد ما هي الأولوية للمعايير: اي ما هي الروابط التي تستخدم في علم التعبير الذي يحتوي AND و OR والتي سببت المشكلة أصلا عند كتابتها في VBA

باختصار اقترح وضع اقواس على هذه التعبير تحدد ايها اكثر اهمية في تحديد المعيار النهائي لفتح التقرير

مثال

(Assigned to =Name OR Opened By = Name) And (Period = [Period]) And (Category = [Category] OR staus = [status])

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

لاني جربت ذلك وفتح التقرير الخاص ب سهير وكان تمام

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#13

مشكور استاذ / عماد حمدى

#14

تفضل اخي هذا ما توصلت اليه

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

حيث ان وجود معيار Assigned to Or Opened By

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

اي مثلا اختاير سهير سيظهر سجلات كل من عملو Opened By لمشاريع كانت اصلا Assigned To سهير

ارجو ان اكون افدتك

IR_1_mar___Ver_8.rar

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#15

أخي همام

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

هل من الممكن أن أختار عنصر واحد ليخرج عليه التقرير لأن عند إختياري أي عنصر غير حقل الاسم يظهر التقرير فارغ علي الرغم من أني متأكد من وجود مثل تلك البيانات في الجداول لدي

أتمني أن أجد لديكم الحل يا إخوان

أحمد بدر

#16

عزيزي هذا البرنامج بعد التعديل

لقد نقلت كل عمليات الفلترة من الفيجوال بيسك الى الاستعلام Open Issues ونجحت العملية في الفلترة

لماذا لم تظهر لك بيانات في حال اختيار حقل واحد

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

لذا اقترح مثلا تغيير قيمة احد هذه الحقول ال قيمة فارغة ثم السؤال عنها وستجد الناتج

هنا لابد من اختيار حقلين أو اكثر

هذا ما يتطلبه عدم وجود سجلات فارغة

ومع هذا ستظهر لديك مشكلة ان السجلات جميعها تظهر لانك لم تحدد طبيعة رابط المعايير اي "أو" ولا "و" والتي تعني AND ولا OR

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

انا عملتها هنا أو في الاستعلام بهذا ستظر جميع سجلات الحقل Assigend To أو حتى Opened By لذا رجاء حدد

تفضل

IR_1_mar___Ver_8.rar

تم تعديل هذه المشاركة بواسطة همام ابوعرقوب في 1 مارس 2007 في 20:18

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#17

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

أخى الكريم maherbadawey

بارك الله فيك , ولا شكر على واجب اخى الكريم.

أخى الكريم همام ابوعرقوب

بارك الله فيك على تفاعلك المثمر مع الأخوة بالمنتدى , تابعت ردود حضرتك فى هذا الموضوع , وكلها ردود جميله وتعلمت منها بكل تاكيد, اتمنى لحضرتك مزيد من العلم لتنفعنا نحن وباقى الاخوة بالمنتدى

أخى الكريم ahmedbadr

ارجو ان تعذرنى لتاخرى عليك فى الرد , فانا فى قمة الانشغال والله.

مرفق ملفك وبه التعديل , وارجو ان يكون هو المطلوب ,

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

	Dim stDocName As String
	Dim stLinkCriteria As String

	stDocName = "Open Issues"

If IsNull([Assigned]) = True Then
stLinkCriteria = "[Assigned To] = [Assigned To]"
Else
stLinkCriteria = "([Assigned To] = Forms![Print Criteria]![Assigned] Or [Opened By] = Forms![Print Criteria]![Assigned])"
End If

If IsNull([Status]) = False Then
stLinkCriteria = stLinkCriteria & " And [Status] = Forms![Print Criteria]![Status]"
End If

If IsNull([Period]) = False Then
stLinkCriteria = stLinkCriteria & " And [Period] = Forms![Print Criteria]![Period]"
End If

If IsNull([Category]) = False Then
stLinkCriteria = stLinkCriteria & " And [Category] = Forms![Print Criteria]![Category] "
End If

If IsNull([Priority]) = False Then
stLinkCriteria = stLinkCriteria & " And [Priority] = Forms![Print Criteria]![Priority]"
End If

	DoCmd.OpenReport stDocName, acPreview, " ", stLinkCriteria

وهناك تعديل تم عمله فى النموذج الأصلى , وهو تغيير اسم الكمبوبكس المسمى Name الى Assigned , وذلك لان الأسم Name من الاسماء المحجوزة لقاعدة البيانات , واستخدامه فى النماذج او الجداول يأتى دائما بمشاكل كثيرة , فلذلك لا تقوم باستخدامه فى التسمية.

وباقى التعديل فى الكود نفسه , ستجده امامك وفهمه من ابسط ما يكون.

هذا وبالله التوفيق ,,,

IR_1_mar.rar

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#18

عزيزي عماد الله عليك ومشكور على الذوق

والله هذا تواضع كبير منك

نحن تعلمنا منك الكثير

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

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

جرب عرض بيانات للموظف "سهير" مثلا وغير بقية الحقول الاخرى

انظر الاستعلام Open Issues ستجد انه مليئ بالمعلومات

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

المهم الحل يقتصي بتحديد معيار واحد فقط لعرض البيانات من ناحية Assigend To و Opened By

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

بمعنى انشاء حقل كومبوبكس لهذا الغرض

سأجرب وجرب انت ايضا عسى الله ان يوفقنا لحلها

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

اخوك همام

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#19

عزيزي عماد الله عليك ومشكور على الذوق

والله هذا تواضع كبير منك

نحن تعلمنا منك الكثير

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

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

جرب عرض بيانات للموظف "سهير" مثلا وغير بقية الحقول الاخرى

انظر الاستعلام Open Issues ستجد انه مليئ بالمعلومات

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

المهم الحل يقتصي بتحديد معيار واحد فقط لعرض البيانات من ناحية Assigend To و Opened By

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

بمعنى انشاء حقل كومبوبكس لهذا الغرض

سأجرب وجرب انت ايضا عسى الله ان يوفقنا لحلها

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

اخوك همام

هذا غريب!!!!!

ارسل الرد فيأتيني رسالة خطأ بالمنتدى والشبكة

ثم اجد المشاركة مكتوبه مرتين...وبعدين!!!!

تم تعديل هذه المشاركة بواسطة همام ابوعرقوب في 2 مارس 2007 في 22:42

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#20

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

الأخ الكريم همام ابوعرقوب

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

ولكن هنا يجب التحذير من شئ مهم , وهو انه يوجد قيد على الاسم المختار بحيث يتم جلب جميع السجلات التى توافق اسم الشخص سواء فى Assigned To او فى Ordered By . وهنا يجب قبل التعامل مع الاستعلام ان تلاحظ ان علاقة "Or" تكون بين Assigned To او Ordered By , والناتج منهما علاقته بباقى القيود هى "And" اى لابد من تحقيق الشرطين معا.

وهذا يحتاج تعامل خاص , فلا يمكن ترك خانة "Or" بجوار باقى خانات " And " لانه فى هذه الحالة سيأتى بنتائج خطأ . ولذلك ستجدنى وضعت الشرط " Or " بين قوسين

stLinkCriteria = "([Assigned To] = Forms![Print Criteria]![Assigned] Or [Opened By] = Forms![Print Criteria]![Assigned])"

ليتم التصفية داخليا على اساس " Or " , والناتج منهم يتم تصفيته مع باقى السجلات باستخدام " And ".

اتمنى اكون وضحت ما اقصد , فانا اعانى من نزلة برد شديدة , ولذلك فانا فاقد التركيز تماما.

هذا والله الموفق ,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#21

أخي عماد

أخي همام

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

أشركم يا إخواني فبهذا أتعلم منكم و كان الله في عونك يا عماد علي انشغالاتك و أتمني أن تكون خيرا ان شاء الله

مشكورين كثيرا جدا ي إخواني علي تلك المساعدات القيمة جدا جدا جدا

جزاكم الله كل خير علي هذا المجهود الرائع

أحمد بدر

#22

أخي عماد / همام

مشكورين إخواني علي هذا المجهود الذي بذلتموه و أود أن أهنئكم أنتم و الاعضاء إخواني في الفريق العربي بشهر رضمان المبارك أعاده الله علينا بالخير و المغفرة ..

إخواني لو أرد أن يكون Assigned To او Ordered By مستقلين بمعني أنني أريد أن يكون البحث علي كل منهما بشكل مستقل حاولت أن أعدل الكود و لكن كل مرة تفشل و لا أعرف الكيفية التي يمكنني بها أن أفرقهما عن بعضهما ..

مشكورين إخواني مقدما و كل التحية لكم و للإخوة الاعضاء

أحمد بدر

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…