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

استعمال العبارة if?

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

السلام عليكم

لدي أربعة مربعات نص

الأول now فيه عدد ثابت

الثاني getten يطرح من الأول

النتيجة في الثالث minus

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

إذا كان الناتج من صفر إلى ثلاثة وثلاثين تكون النتيجة في المربع get تساوي واحد

إذا كان الناتج من 34 حتى 66 تكون النتيجة في مربع get تساوي اثنان

إذا كان الناتج من 67 حتى 100 تكون النتيجة في مربع get تساوي ثلاثة

كيف أستطيع عمل هذا عن طريق if

المثال المرفق للتوضيح فقط

std.rar

تم تعديل هذه المشاركة بواسطة ساري الليل في 30 أبريل 2004 في 13:02

#3

أستاذي الفاضل مهند عبادي

شكرا لكريم ردكم

جربت الكود الذي كتبته ولكن النتيجة لم تظهر معي دقيقة فالناتج عندما يكون 90 يعطي مربع get رقم 2 والمطلوب أن يعطي 3 هذا أولا

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

عندما يكون minus من 1إلى 4 يكون الناتج 1

من 5-8 يكون الناتج 2

من 9-12 يكون 3

من 13-16 = 4

17-20 = 5

21-24= 6

25-28= 7

29-32= 8

33-36= 9

37 فأكثر = 10

هذا الذي أريده بالضبط ولا نستغني عن مساعدتكم

تم تعديل هذه المشاركة بواسطة ساري الليل في 30 أبريل 2004 في 17:37

#5

أضفت الكود بعد التحديث في مربع getten

ولكن لم يظهر لي نتيجة!!

std.rar

#7

أضفته في الأول والثاني

للأسف نفس الشيء!!

ملحوظة: في الكود كتبت يا أستاذي

[getten]=v

أليس المفترض أن تكون

[get]=v

لأن مربع getten يدخل بواسطة المستخدم

على كل حال جربت تغيير getten إلى get في الكود ولكن النتيجة صفر!

تم تعديل هذه المشاركة بواسطة ساري الليل في 4 مايو 2004 في 18:00

#8

آسف أخي على هذا الخطأ .. وذلك بسبب الاستعجال في الكتابة والردود

أولاً : معك حق المفروض أن نكتب :

[get]=v

ثانياً : لقد كتبت في المثال السابق الأسلوب ولم أحصي لك كل الحالات بسبب الاستعجال أيضاً ظناً مني أنك سوف تفهم الاسلوب وتكمله ..

ثالثاً : لقد عدلت لك النموذج وأرفقته لك هنا .. وغيرت لك أسلوب الحل واستخدمت هذه المعادلة :

[get] = Abs(Int(-[minus] / 4))

std.rar

#9

زادك الله علما أستاذ مهند

الكود تمام التمام

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

أضفت عبارة if لمنع get أن تكون أكثر من 10

If [get] > 10 Then [get] = 10

وأضفت الكود لمربع نص now بعد التحديث

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

#10

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

أعود مرة أخرى للموضوع

إذا قام المستخدم بتغيير قيمة now

فإن الطرح سيتم للسجل المفتوح حاليا فقط

الطلب : كود يقوم بطرح القيم السابقة أيضا من القيمة الحالية لـnow وإعطائها الدرجة المناسبة في get

هل هذا ممكن؟

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

Dim sqlUPdate as String
sqlUPdate =" UpDate dees SET now ="'&Me.now &"'"

DoCmd.SetWarnings False
DoCmd.RunSQL sqlUPdate

تم تعديل هذه المشاركة بواسطة ساري الليل في 10 مايو 2004 في 13:18

#12

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

وكذلك الحال بالنسبة لحقل Minus فهو حقل حسابي على ما أعتقد لا فائدة منه سوى في العملية الحسابية الثانية ويمكن الاستغناء عنه نهائياً

#13

يعطيك ألف عافية

صدقت أستاذ مهند في المثال المرفق لا داعي لـnow و minus ولكنهما يمثلان معلومات مهمة للمستعلم من المستخدمين

ولذلك وضعتهما

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

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