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

طلب معادله لن تكون صعبه عليكم ان شاء الله

مغلق
بدأه sarab99 في 3 فبراير 2006 · 13 رد · 943 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد وضع كود في خلية الاستعلام يكون كالاتي

اذا كانت الخليه الحاليه (العمر) اكبر من الخليه السابقه (العمر) يعطي الناتج 1 واذا كان اقل يعطي صفر

يعني مثلا

الاسم العمر الناتج

محمد 20 0

علي 25 1

فهد 19 0

خليل 30

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

#2

أعتقد أن موضوعك يتعلق بالأكسل أليس كذلك

#3

بل بالاكسيس اخي الكريم

حاولت استخدام امر IFF مع Dlast ولم افلح

#4

طيب اما إذا كان على الأكسيس فإليك الطريقة :

بالنسبة للنموذج فالنفرض أن الخلية الحالية : Txt1 والخالية السابقة هي : Txt2 فسوف نكتب الكود التالي :

If me.Txt1> Txt2 Then
me.Txt3=1
Else
Me.Txt3=0
End If

ونكتب الكود السابق في حدث عند النقر لزر أمر أو في حدث ( في الحالي للنموذج ) أما بالنسبة للإستعلام في حقل فارغ ونكتب التعبير التالي

الفرق: IIf([العمر_الحالي]>[العمر_السابق];"1";"0")

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

Age.rar

تم تعديل هذه المشاركة بواسطة مصلح الحريصي في 4 فبراير 2006 في 00:07

#5

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

#7

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

الأخ الكريم مصلح الحريصي

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

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

الاخ الكريم أحمد مبارك الحيقي

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

واخير اخت sarab99

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

وبالتوفيق للجميع ان شاء الله,,,

ages.rar

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

bnr025.gif

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

#8

الاستاذ عماد حمدي احمد

بارك الله فيك هذا ماكنت اريده ولكن هل بالامكان جعل الناتج يحسب من الاسفل الى الاعلى مثال:

name --- age ---- Res

محمود ---- 18 ------ 0

ايهاب ---- 19 ------ 0

زهرة ---- 20 ----- 1

فهد ------ 19 ----- 0

محمد ----- 20 ----- 0

خالد ---- 40 ----- 1

عماد ----- 35 ----- 1

خليل ---- 30 ----- 1

علي ----- 25 ----- -

سعيد ---- 25 -----

واذا كان الحقل السابق يساوي الحقل الحالي يظهر رمز -

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

ودمتم بخير

تم تعديل هذه المشاركة بواسطة sarab99 في 4 فبراير 2006 في 11:52

#9

الأخ / حمدي

حياك الله ولا داعي للأسف فلم يحدث أي شيء يستوجب الأسف ودائماً أقول أن فهم السؤال نصف اٌجابة وكان سؤال الأخ غير واضح وما كان مني إلا إجتهاد بحسب معرفتي والحمد لله أنه وصل معك للحل المناسب وهدفنا جميعنا الغاية وأن إخطأت فصوبني أستفيد بارك الله فيك !!

#10

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

العمر----الناتج

10----------

11-------1

11-------0

بينما اذا كان العمر من الاكثر الى الاقل لايوجد مشكله مثال:

10----------

9------0

9------0

مرفق الملف لاحظ الخليه رقم 3 و 4 حيث لايوجد مشكله

والخطأ موجود في الخليه رقم 7 و 8

ارجو المساعده وجزاكم الله خيرا .. :)

db1.rar

تم تعديل هذه المشاركة بواسطة sarab99 في 5 فبراير 2006 في 00:05

#11

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

الاخ الكريم مصلح الحريصي بارك الله فيك على تواضعك وحسن الخلق.

الاخت sarab99

لا يوجد اى اخطاء بالبرنامج , كل ما فى الامر انه دائما عند التعامل مع المتباينات يكون هناك دائما وابدا ثلاث حالات (الاكبر من والاصغر من والتساوى).

حضرتك فى مشاركتك الاولى كان طلبك ,

اقتباس
اذا كانت الخليه الحاليه (العمر) اكبر من الخليه السابقه (العمر) يعطي الناتج 1 واذا كان اقل يعطي صفر

الاسم العمر الناتج

محمد 20 0

علي 25 1

فهد 19 0

خليل 30

ولم تقومى بطلب اى اجراء عندما يكون الحالى مثل السابق , وبالتالى وحسب المنطق لابد من دمج الحالة التى اهملتيها (التساوى) مع احد الحالتين السابقتين (الاكبر او الاصغر) وانا هنا قمت بدمجها مع حالة الاصغر من لانه ببساطه لايوجد اى قيود مفروضه عليها.

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

فى حالة العمر الحالى اكبر من العمر السابق سيعطى رقم 1 , وفى حالة ان العمر الحالى اقل من او يساوى العمر السابق سيعطى صفرا. وستجدى هذا الكلام محقق فعليا سواء فى حالة 3,4 او فى حالة 7,8 .

وعلى هذا الاساس فلا يوجد خطأ , ولكن يوجد حلقة ناقصة فى طلبك انت.

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

فى حالة اكبر من سيعطى رقم 1

وفى حالة اقل من سيعطى رقم 0

وفى حالة التساوى سيعطى -----

وبالتوفيق ان شاء الله,,,

db1.rar

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

bnr025.gif

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

#12

الاستاذ عماد حمدي المحترم

اشكرك على سعة صدرك وعسى الله ينفعك بعلمك وينفعنا

هل بالامكان استاذي ان تكون المعادله كالتالي

اذا كان الاقل متساوي يعطي الناتج 0

واذا كان الاعلى متساوي يعطي 1

واعتذر عن مشاركتي رقم 8 حيث طلبت ان يكون التساوي برمز ----

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

#13

عند اضافة بيانات جديده لايعطي نتيجه صحيحه واعتقد انه يعتمد على ID ارجو مراجعة الملف المرفق وتجربه الاستعلام على رمز رقم 1020

ارجو ان اجد حلا لهذه المشكله .. قرأت من موقع مكروسوفت انه يمكن استخدام Dmax بدلا من Dlast وهذا عنوان الموقع

http://support.microsoft.com/kb/208190/en-us

ارجو المساعده وشكرا

:)

#14

الملف مرفق ...

db1.rar

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

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

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

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

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

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