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

مطلوب حساب عدد السجلات الظاهرة في النموذج الفرعي

بدأه sweety78 في 5 سبتمبر 2014 · 5 رد · 578 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

في قاعدة البيانات المرفقة، أود عند التنقل في بين السجلات في النوذج الرئيسي Table1، أن يقوم بحساب عدد السجلات الظاهرة في النموذج الفرعي Table1_History، على ان تظهر النتيجة في الحقل المسمى بـ Count في النموذج الرئيسي.

 

تحيااااتي

Count_Rec_SubForm.rar

#2

وعليكم السلام اختي :)

 

1. غيري اسم الحقل من count الى counter ، لأن count احد اوامر اكسس ،

2. استخدمي هذا الكود في الحال للنموذج الرئيسي:

Private Sub Form_Current()

    Me.Counter = Me.Table1_History.Form.RecordsetClone.RecordCount
    
End Sub

جعفر

#3

السلام عليكم

 

شكراً اخي جعفر على الإجابة..

 

في الحقيقة لقد وضعت مثال مصغر لما أريد ولكن مثالي كان خاطئ، والنتيجة الإجابة لم تكن صحيحة بالطبع.. وكنت أتوقع الجواب بإستخدام دالة DCount (أعتذر عن هذا الخطأ)..

 

في الملف المرفق بعد التعديل، أود حساب Dox في النموذج الفرعي، بحيث عندما يكون السجل الحالي في النموذج الرئيسي Passport تظهر النتيجة في الحقل Counter عدد 

الـ Passport في النموذج الفرعي، وهكذا..

أتمنى أن أجد الإجابة المنشودة.

 

مع جزيل الشكر.

Count_Rec_SubForm2.rar

تم تعديل هذه المشاركة بواسطة sweety78 في 5 سبتمبر 2014 في 23:58

#4

تفضلي اختي ، الكود المعدل ، بالشرح:

Private Sub Form_Current()

    'take a Recordset clone of the subform,
    'this way we don't have to visit the table
    Set rst = Me.Table1_History.Form.RecordsetClone
    'move the cursor to the 1st Record, by reading all the Records
    rst.MoveLast: rst.MoveFirst
    'set a temporary counter to Zero
    my_Counter = 0
    
    'loop through the subform Records
    For i = 1 To rst.RecordCount
    
        'Read the Dox value from the main Form, which is Me.Dox
        'compare it to the subform values of the Recordset, which is rst!Dox,
        'if they match, add one to the temporary counter, my_Counter
        If Me.Dox = rst!Dox Then
            my_Counter = my_Counter + 1
        End If
        
        'move to the next Record of the subform
        rst.MoveNext
    Next i
        
    'show this temporary counter value, in the main Form field, Counter
    Me.Counter = my_Counter
    
End Sub

جعفر

#5

السلام عليكم اخ جعفر

 

شكراً على تجاوبك

 

بالظبط هذا ما احتاجه والكود يعمل بشكل سليم.

 

شكراً جزيلاً

#6

حياك الله أختي :)

 

إجابة على استفسارك عن DCount ، فطبعا ممكن استخدامها ، ولكني في مثل هذه الحالات لا افضل استخدمها ، ورجاء زيارة مشاركتي على هذا الرابط لمعرفة السبب:

/index.php/topic/278832-زر-امر/?p=1344505

 

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 8 سبتمبر 2014 في 06:53

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

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

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

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

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