عمار العبيدي قام بنشر الأربعاء at 18:12 قام بنشر الأربعاء at 18:12 السلام عليكم اذا امكن عملية ربط القوائم المسندلة لسنة وشهر لجلب عدد الاشهر المتجاوزة في حقل ثالث ولكم الشكر والاحترام Database2.accdb
أفضل إجابة Foksh قام بنشر الأربعاء at 18:46 أفضل إجابة قام بنشر الأربعاء at 18:46 (معدل) وعليكم السلام اخي @عمار العبيدي ,, سأقدم لك طريقتين ، ولكن أولاً علينا تصحيح الأخطاء التي في النموذج "استعلام6" وهي انك جعلت مصدر البيانات للكومبوبوكس "السنة و الشهر" من نفس الاستعلام . على العموم ، الطريقتين تعتمدان على تغيير مصدر بيانات الكومبوبوكسين . مع تغيير مصدر السجلات لهما بحيث يجلبان فقط رقم السنة ورقم الشهر حسب الكومبوبوكس الآن من خلال الـ VBA وهي الطريقة الأولى قمت بادخال الاستعلام في الدالة التالية :- Private Sub MonthCounter() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String Dim MonthNum As Long If IsNull(Me.السنة) Or IsNull(Me.الشهر) Then Me.عدد_الأشهر_المتجاوزة = Null Exit Sub End If strSQL = "SELECT Count(*) AS عدد_الأشهر_المتجاوزة " & _ "FROM جدول2 " & _ "WHERE Year([بداية الاجازة]) = " & Me.السنة & " " & _ "AND Month([بداية الاجازة]) = " & Me.الشهر & " " & _ "AND ((DateDiff('d',[بداية الاجازة],[نهاية الاجازة])+1)>3 " & _ "OR (DateDiff('m',[بداية الاجازة],[نهاية الاجازة])+1)>0)" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL, dbOpenSnapshot) If Not rst.EOF Then MonthNum = rst!عدد_الأشهر_المتجاوزة Else MonthNum = 0 End If Me.عدد_الأشهر_المتجاوزة = MonthNum rst.Close Set rst = Nothing Set db = Nothing End Sub ويتم استدعائها في حدث بعد التحديث للكومبوبوكس ( السنة و الشهر ) Private Sub السنة_AfterUpdate() Call MonthCounter End Sub Private Sub الشهر_AfterUpdate() Call MonthCounter End Sub والنتيجة في النموذج "استعلام6" أما الطريقة الثانية ، فتعتمد على الدالة DCount باستعلام داخلي داخل مصدر بيانات مربع النص "عدد_الأشهر_المتجاوزة" . بحيث يكون مصدر بياناته هذه الجملة الاستعلامية :- =IIf(IsNull([السنة]) Or IsNull([الشهر]),0,Nz(DCount("*","جدول2","Year([بداية الاجازة]) = " & [السنة] & " AND Month([بداية الاجازة]) = " & [الشهر] & " AND ((DateDiff('d',[بداية الاجازة],[نهاية الاجازة])+1)>3 OR (DateDiff('m',[بداية الاجازة],[نهاية الاجازة]) وهي تقوم بحساب عدد السجلات التي تتطابق مع الشرط . ولسلامة القيمة الظاهرة في مربع النص "عدد_الأشهر_المتجاوزة" قمت باستعمال الدالة الشرطية IIF مع IsNull حتى لا تعود لك النتيجة في المربع بالقيمة Error بل بالقيمة 0 . الملف بعد التعديل ( Database2.accdb ) تم تعديل الأربعاء at 19:14 بواسطه Foksh تصحيح خطأ مطبعي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.