ابن الفقير قام بنشر أغسطس 26, 2003 مشاركة قام بنشر أغسطس 26, 2003 السلام عليكم ارجوا مساعدتى فى عمل استعلام معين . فانا عندى جدولين الاول يحوى على حقل يتم فيه تعبته بعدد المجموعات المطلوبة مثل عدد المجموعات المطلوبة = 5 او 6 او 10 وهكذا وهذا الجدول الاول هو كما يلى ------------------------ عدد المجموعات = ----------------------------------- اما الجدول الثانى فيحوى على اسماء مجموعة من الاعضاء ولكل عضو رقم عضوية . اذا هذا الجدول يحوى على حقل لعضوية العضو واحقل اخر لاسمه كما يلى ----------------------------------------- رقم العضوية الاسم 1 محمد 2 سعيد 3 سالم 4 احمد 5 سليمان 6 طاهر 7 عقيل 8 عمر ------------------------------------------ والان اريد ان اعمل استعلام يحوى على حقل جديد اسمه الدور و هذا الاستعلام يأخذ فى الاعتبار عدد المجموعات المعطاة قى الجدول الاول. فاذا كان عدد المجموعات المطلوبة هو 2 فان نتيجة الاستعلام لابد ان تكون كاتي ------------------------------------------------ رقم العضوية الاسم المجموعات الدور 1 محمد 1 1 2 سعيد 2 1 3 سالم 1 2 4 احمد 2 2 5 سليمان 1 3 6 طاهر 2 3 7 عقيل 1 4 8 عمر 2 4 اما اذا كا ن عدد المجمةعات =3 فيكون نتيجة الاستعلام كتالي: -------------------------------------------------------------- رقم العضوية الاسم المجموعات الدور 1 محمد 1 1 2 سعيد 2 1 3 سالم 3 1 4 احمد 1 2 5 سليمان 2 2 6 طاهر 3 2 7 عقيل 1 3 8 عمر 2 3 اما اذا كا ن عدد المجمةعات =4 فيكون نتيجة الاستعلام كتالي: -------------------------------------------------------------- رقم العضوية الاسم المجموعات الدور 1 محمد 1 1 2 سعيد 2 1 3 سالم 3 1 4 احمد 4 1 5 سليمان 1 2 6 طاهر 2 2 7 عقيل 3 2 8 عمر 4 2 وهكذا................... فالرجاء مساعدتي فى كيفية عمل هذا ا الاستعلام و السلام عليكم 1 رابط هذا التعليق شارك More sharing options...
osama457 قام بنشر أغسطس 27, 2003 مشاركة قام بنشر أغسطس 27, 2003 المثال http://www.pcpages.com/osama457/SerialInGroub2.zip فيه استعلامين Simple_Q هذا بدون كود لكن لازم تكون الارقام المسجلة متسلسلة يعني بدون ارقام مفقودة ، ولازم تكون السجلات مفروزة حسب الرقم Code_Q بالكود ، ويمشي حتى لو كانت الارقم المسجلة ملخبطة وناقصة . SerialInGroub2.zip 1 رابط هذا التعليق شارك More sharing options...
osama457 قام بنشر أغسطس 27, 2003 مشاركة قام بنشر أغسطس 27, 2003 الكود لعموم الفايدة Option Compare Database Option Explicit Dim GroubsCount As Integer Function GroubNumber(ByVal InNumber As Integer) As Integer GroubsCount = DFirst("[b_Groubs]", "[b_tbl]") If GroubsCount = 0 Then Exit Function InNumber = TrueSerial(InNumber) If InNumber Mod GroubsCount = 0 Then GroubNumber = GroubsCount Else GroubNumber = InNumber Mod GroubsCount End If End Function Function SerialNumber(ByVal InNumber As Integer) As Integer GroubsCount = DFirst("[b_Groubs]", "[b_tbl]") If GroubsCount = 0 Then Exit Function InNumber = TrueSerial(InNumber) If InNumber Mod GroubsCount = 0 Then SerialNumber = (InNumber - (InNumber Mod GroubsCount)) / GroubsCount Else SerialNumber = (InNumber - (InNumber Mod GroubsCount)) / GroubsCount + 1 End If End Function Private Function TrueSerial(ByVal InNumber As Integer) As Integer Dim dbs As Database Dim rst As Recordset Dim I As Integer Set dbs = Application.CurrentDb Set rst = dbs.OpenRecordset("Code_Q", dbOpenSnapshot) If rst.RecordCount <> 0 Then rst.MoveFirst Do Until rst.EOF I = I + 1 If InNumber = rst!a_Number Then InNumber = I Exit Do End If rst.MoveNext Loop End If rst.Close Set rst = Nothing Set dbs = Nothing TrueSerial = InNumber End Function رابط هذا التعليق شارك More sharing options...
ابن الفقير قام بنشر أغسطس 30, 2003 الكاتب مشاركة قام بنشر أغسطس 30, 2003 الاخ خبير الاكسس Osama456 السلام عليكم ورحمة الله وبركاته جزاك الله خير الجزاء على جهدك الرائع جدا . نعم هو المطلوب بهذه الخبرات تعلوا الامم رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان