• 0
sweety78

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

سؤال

السلام عليكم

 

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

 

تحيااااتي

Count_Rec_SubForm.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

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

 

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

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

Private Sub Form_Current()    Me.Counter = Me.Table1_History.Form.RecordsetClone.RecordCount    End Sub

جعفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

 

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

 

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

 

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

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

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

 

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

Count_Rec_SubForm2.rar

تم تعديل بواسطه sweety78
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

جعفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

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

 

شكراً جزيلاً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

http://arabteam2000-forum.com/index.php/topic/278832-زر-امر/?p=1344505

 

 

جعفر

تم تعديل بواسطه jjafferr
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .