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

دالة CEILING

بدأه Abo_abdlh في 11 ديسمبر 2012 · 7 رد · 2,763 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني الكرام

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

على سبيل المثال الرقم 10.16 باستخدام الدالة CEILING وباستخدام المضاعف 0.05 سيصبح الرقم 10.20

مثال اخر الرقم 80.03 باستخدام الدالة CEILING وباستخدام المضاعف 0.05 سيصبح الرقم 8.05

فهل يمكن تنفيذ هذا بدالة معينة لاستخدامها في الاستعلام

ولكم جزيل الشكر مقدما

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

تم تعديل هذه المشاركة بواسطة Abo_abdlh في 11 ديسمبر 2012 في 02:15

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

#2
Abo_abdlh كتب:

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

اخواني الكرام

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

على سبيل المثال الرقم 10.16 باستخدام الدالة CEILING وباستخدام المضاعف 0.05 سيصبح الرقم 10.20

مثال اخر الرقم 80.03 باستخدام الدالة CEILING وباستخدام المضاعف 0.05 سيصبح الرقم 8.05

فهل يمكن تنفيذ هذا بدالة معينة لاستخدامها في الاستعلام

ولكم جزيل الشكر مقدما

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

تفضل اخي الكريم

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

Public Function Ceiling(ByVal xNum As Double, Optional ByVal xFactor As Double = 1) As Double
    Ceiling = (Int(xNum / xFactor) - (xNum / xFactor - Int(xNum / xFactor) > 0)) * xFactor
End Function

طريقة استخدامها في الإستعلام بهذه الطريقة

post-15367-098002500 1355196694_thumb.gi

post-15367-029626300 1355196717_thumb.gi

لا تنسانا من التقييم بارك الله بك

za-Ceiling.rar

بالتوفيق

المرفقات
C2.gifC1.gif
2▲ 1
#3

السلام عليكم

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

عند كتابة كسور عشرية مثل 2.25

واعداد صحيحة مثل 20 يظهر هناك خطأ في النتائج هل ماخوذة في نظر الاعتبار

سلامي

لاتنسى ترشيح الاجابات والتقييم

post-252239-079189500 1355200937_thumb.p

post-252239-001375500 1355200782_thumb.p

Decimal_ceiling.rar

المرفقات
decimal.PNGdecimal1.PNG

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 11 ديسمبر 2012 في 10:10

1
#4
سلامنا لكم كتب:

السلام عليكم

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

عند كتابة كسور عشرية مثل 2.25

واعداد صحيحة مثل 20 يظهر هناك خطأ في النتائج هل ماخوذة في نظر الاعتبار

سلامي

لاتنسى ترشيح الاجابات والتقييم

post-252239-079189500 1355200937_thumb.p

post-252239-001375500 1355200782_thumb.p

اخي الفاضل : سلامنا لكم

post-15367-046732000 1355203325_thumb.gi

الدالة صحيحة 100 % ولا يوجد بها ذرة خطأ

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

هذه الدالة بارك الله بك لا تتقيد بأعداد معينة ثابتة فهي حره تماما تستطيع وضع اي ارقام تريدها وستظهر لك النتائج صحيحة 100%

دعنا نلاحظ التالي :

1. اذهب الى الجدول بارك الله بك وادخل العدد المطلوب sNumber ثم ادخل الكسر او العدد المطلوب sFactor

2. قم بتشعيل الإستعلام وستجد ان النتائج صحيحة 100 % ولا يوجد بها اي خطأ

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

ما هو السبب الذي جعلنا نترك الحقل sFactor مفتوح بدون التقيد بأرقام او اعداد معينة !!!!

قد ترغب انت ان تستخدم هذا الرقم 2 او 4 او 7 او اي عدد عشري 0.04 او 0.5 او 0.9 وقد يستخدم غيرك اي ارقام مختلفه فالحقل غير متقيد بعدد معين ولهذا عند استخدام الدالة ستكون النتائج صحيحه 100%

وان رغبت في تثبيت الحقل sFactor على رقم معين فلا يوجد اي مشكله فكل ما عليك بارك الله بك انك في الإستعلام تستخدم هذه الطريقة مثلا للعدد 0.05 او اي رقم تريد تثبيته فهذا عائد لك

post-15367-062280800 1355204134_thumb.gi

الأن دعنا نأخذ الدالة او التعبير الخاص بك

=IIf(([f]-Int([f]))*100 Mod 5=0;Int([f])+(Int((([f]-Int([f]))*100)/5)*5)/100;Int([f])+(Int((([f]-Int([f]))*100)/5)*5+5)/100)

هنا انت قمت بالتضييق على نفسك وعلى المستخدم بإستخدامك عدد معين وهو 0.05 فقط لا غير

الآن كل النتائج ستكون مقربه الى 0.05

ماذا لو اراد اي شخص استخدام طريقتك تلك وكان يحتاج العدد مثلا 0.09

هل ستكون النتيجة صحيحة في نظرك !!!!

بالطبع لا

إلا في حالة انه يجب عليه الدخول الى الدالة الخاصة بك ويقوم بالتغيير الى العدد الذي يريده

وايضا ماذا لو كان يريد النتائج باعداد مختلفه مثل 0.5 و 0.07 و 2.0 و 0.9

كيف تستطيع حل مثل هذه المسأله !!!

هل ستقوم بإضافة كل هذه الأعداد الى دالتك ؟؟؟؟

لا اعتقد انها طريقه مجديه البته

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

وكمثال على ذلك ...

اذهب الى الجدول وادخل العدد المطلوب sNumber وايضا ادخل sFactor كما تريد في السجل الأول

انتقل الى السجل الثاني وادخل اعداد مختلفه كليا عن اعداد السجل الأول

كرر الخطوات على كل السجلات بأعداد مختلفه تماما عن بعضها البعض ثم اعرض الإستعلام

ستجد ان النتائج كلها صحيحة 100 %

الآن طبق ما قمت به في الجدول على الدالة الخاصة بك هل ستكون نتائجك صحيحة !!!!

اترك الإجابة لك بارك الله بك

بالتوفيق

المرفقات
C1.gifC2.gif
1
#5

السلام عليكم

الاخت زهرة

كلامك صحيح ودالتك صحيحة و تمت الطريقة بشكل صحيح

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

شكرا لك

#6

السلام عليكم

الاخت زهرة

كيف يتم التناغم او الانسجام بين الدالة العامة

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

الدالة العامة وحقول الجدول والاستعلام سوى اسم الدالة ceiling في الاستعلام

post-252239-013001600 1355209962_thumb.p

ومشكورة

المرفقات
ceiling.PNG
#7
سلامنا لكم كتب:

السلام عليكم

الاخت زهرة

كيف يتم التناغم او الانسجام بين الدالة العامة

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

الدالة العامة وحقول الجدول والاستعلام سوى اسم الدالة ceiling في الاستعلام

post-252239-013001600 1355209962_thumb.p

ومشكورة

اخي الفاضل : سلامنا لكم

لا اعلم ماذا اقول لك !!!!

بعد سؤالك هذا .....

الم ترى يوما من الأيام اي دالة او وظيفة وطريقة كتابتها برمجيا ؟؟؟؟

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

فعلى سبيل المثال في الوظيفة التي وضعتها لك كان يوجد بها متغيرين وهما xNum و xFactor كأسماء متغيرات فقط ليتم التعويض عن اسماء هذه المتغيرات بعد ذلك بأسماء الحقول الموجوده سواء في الإستعلام او الجدول ولا علاقة بين الأسماء في الدالة وفي حقول الجدول الأساسي اللهم فقط عند استخدام الدالة نعوض عن اسم المتغير بإسم الحقل المطلوب .

بإمكانك صنع اي دالة او وظيفة تريد استخدامها للحصول على نتائج معينه وتضع فيها اسماء اي متغيرات مثلا تضع اسم المتغير الأول ( سلامنا لكم ) والمتغير الثاني ( زهره ) فقط في الدالة ثم عند استخدامك لهذه الدالة وتطبيقها مثلا على حقول الجدول ( MyName , MyNumber ) بحيث تكتب اسم الدالة اولا مثل ceiling او اي اسم تختاره بدلا عن اسم هذه الوظيفة كأن يكون مثلا اسم هذه الوظيفة ( الفريق العربي للبرمجة ) لا يوجد اي مشكله او يكون اسم هذه الوظيفة مثلا ( كوكب الزهره ) ثم تضع المتغيرات الخاصة بها وتستبدل اسم المتغيرات في حقول الجدول او الإستعلام .

كمثال حتى تتضح الطريقة

Public Function Arabteam2000(ByVal zahrah As Double, Optional ByVal SalamonaLakum As Double = 1) As Double
    Arabteam2000 = (Int(zahrah / SalamonaLakum) - (zahrah / SalamonaLakum - Int(zahrah / SalamonaLakum) > 0)) * SalamonaLakum
End Function

انظر الى اسم الدالة Arabteam2000

انظر الى اسم المتغير الأول zahrah

انظر اسم المتغير الثاني SalamonaLakum

لو استخدمت هذه الدالة Arabteam2000 في الإستعلام

وعوضت عن اول متغير بإسم الحقل الأول لديك في الجدول

وعوضت ايضا عن ثاني متغير بإسم الحقل الثاني لديك في الجدول

فستظهر لك النتيجة صحيحه

فلا يوجد بارك الله بك اي علاقة في الأسماء بين ماهو موجود في الدالة وما هو الموجود في الجدول

اتمنى ان تكون الصوره اتضحت الآن لك .

بالتوفيق

2
#8

كم انت رائعة ومميز اختي الفاضلة زهرة

زادك الله رفعة وعلما ووفقك لما فيه الخير ويسر خطاك الى الجنة

تحياتي

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

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