اخيرا للانتهاء من هذا الموضوع
اود ان اشير الى دالة Choose وهي تقوم بارجاع قيمة من عدة قيم بناء الفهرس
ويمكن توضيفها في هذه المثال عن طريق نمطية بسيطة يتم استخدامها في الاستعلام
k = Choose(x, 2, 3, 4, 6, 7, 9, 10, 11, 12, 14, 15, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 43, 44, 45, 46, 47, 49, 50, 51, 52)
ويمكن كتابتها على النحو التالي
Public Function std(id As Integer)
Dim rst As DAO.Recordset
Dim x As Integer
Dim k As Integer
Set rst = CurrentDb.OpenRecordset("Select * From [q_1] Where [id]= " & id)
x = rst.Fields("عدد الفصول الفعلي")
k = Choose(x, 2, 3, 4, 6, 7, 9, 10, 11, 12, 14, 15, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 43, 44, 45, 46, 47, 49, 50, 51, 52)
std = k
rst.Close
End Function
ولكن لابد من التأكد من امرين
صحة ترتيب البيانات في الفهرس للحصول على القيمة الصحيحة
اذا كان الفهرس اقل من 1 او اكبر من عدد الاحتمالات المدرجة سوف تعود الدالة بنتيجة فارغ وفي هذا المثال لدينا 40 احتمال وفقا لصورة الجدول في اول مشاركة وبالتالي لايمكن ان يكون الفهرس اكبر من 40
نصيحتي في هذه الحالة استخدام جدول وعمل علاقة بدون الحاجة الي دوال كما اشرت في اول مشاركة لي في الموضوع
الملف مرفق و اكتفي بهذا القدر
تحياتي
برنامج الاحتياج1.accdb