اذهب الي المحتوي
أوفيسنا

dcount و عد السجلات بين جدولين


الردود الموصى بها

السلام عليكم

لدينا جدولان

مرتبطان بعلاقة واحد لواحد

عن طريق رقم الطالب

كيف يمكن عد السجلات فى مربع نص بنموذج

باستخدام دالة dcount

بحيث يكون

الحقل المعدود فى أحد الجدولين

و حقل الشرط فى الجدول الآخر

بمعنى آخر

هل دالة dcount

تستخدم لعد السجلات فى جدول واحد؟

و لا يمكن استخدامها بين جداول مرتبطة

أرجو الإفادة

جزاكم الله خيرا

تم تعديل بواسطه أبو لميس
رابط هذا التعليق
شارك

السلام عليكم

في مثل هذه العمليات الافضل عندي استخدام الاستعلام نجمع الجداول المرتبطة ونجري عليها الاحصائيات

ولكن قبل ذلك عندي ملاحظة على الجدولين وأخص جدول النشاط فهناك حقول اخرى لـــ نشاط2 ، نشاط3 ...... وهكذا

فانت جعلت العلاقة رأس لرأس ومعنى هذا نشاط واحد لشخص واحد فالحقول الزائدة لا معنى لها .

ان قصدت ان الشخص قد يشترك بأكثر من نشاط وبالمقابل كل نشاط يشتمل على العديد من الاشخاص فأنت بحاجة الى ايجاد علاقة كثير الى كثير بينها

  • Like 1
رابط هذا التعليق
شارك

شكرا لصبرك

نعم

كل طالب يختار نشاطين إجباريا

فالحقلان المعدودان فى جدول nashat

و الشرط فى جدول main فى حقلى الصف و الفصل

بالضبط

أريد أن أعد

أحد الأنشطة

فى الصف الأول مثلا

فى الفصل الثالث مثلا

يعنى 3 شروط

إذا كانت هناك حالة مماثلة أو مثال للربط بعلاقة كثير لكثير أكون شاكرا لك عرضها

لم أستخدم هذا النوع من العلاقة من قبل

ملاحظة : كنت أقوم بالعد ب 3 شروط باستخدام دالة dcount

لكن كان ذلك حينما كانت كل الحقول ( بما فيها النشاط ) فى جدول واحد مسطح

أما الآن ظهرت الصعوبة حينما فصلت جدول النشاط

بدأت أقتنع بوضع حقلى النشاط فى الجدول الرئيسى لحل كل هذه المشكلات

خاصة أن اختيار نشاطين هو إجبارى لكل الطلاب

بالتالى النشاط ليس حالة طارئة لنفصلها فى جدول

ما رأيك ؟

بالنسبة للاستعلام الذى يضم كل الحقول

فقد فشلت فى استخدام الدالة مع الاستعلام

مع أننى أقوم بالتصفية حسب الشروط فى الاستعلام نفسه

لكن عند تطبيق ذلك على مربع نص بنموذج باستخدام dcount

يفشل الأمر

جزاك الله خيرا

تم تعديل بواسطه أبو لميس
رابط هذا التعليق
شارك

بالتالى النشاط ليس حالة طارئة لنفصلها فى جدول

اليست قابلة للزيادة والتغيير ؟

هذه واحدة من الطرق أو الحلول للوصول الى النتيجة

اكثر من شرط في دالة Dlookup.rar

  • Like 1
رابط هذا التعليق
شارك

أبا خليل

لقد فاجأتنا بباب من العلم جديد

فجزاك الله خيرا

بعض النقاط أرجو أن تصححها لى أو تبين لى الخطأ فيها :

أظن أن سبب تعطل دالة dcount عن الحساب

هو أن الربط بين الجدولين كان رأس برأس

بينما كل طالب له أكثر من نشاط

و كل نشاط واحد مشترك فيه أكثر من طالب

2- هذه حالة نادرة ( عى الأقل بالنسبة لى)

أول مرة أستخدم علاقة كثير لكثير

أنشأنا جدولا فيه

1- الحقل الأساسى لجدول الأسماء

2- الحقل الأساسى لجدول النشاط

ثم ربطنا كل جدول من الجدولين بهذا الثالث بعلاقة رأس لأطراف

وما أتحير فيه الآن

كيف نقلت البيانات إلى الجدول الجديد؟

400 سجل مضروبة فى نشاطين = 800 سجل

سؤال آخر

ما الطريقة المثلى (بعد الوضع الجديد) لإدخال بيانات النشاط فى العام الجديد؟

طبعا ستأتى أسماء جديدة بأنشطة يختارونها أيضا جديدة

هل ستستمر العلاقة بين الجدولين بالحذف أو الزيادة لأسماء جديدة من جدول الأسماء الأصلى؟

و أشكرك على هذه القفزة العلمية الرائعة التى نقلتنا بها إلى رحاب واسعة فى عالم أكسيس

و أنا موقن - إن شاء الله - أن كثيرين جدا من الأعضاء يستفيدون بهذا الرد

وفقك الله لكل خير

وفى انتظار تعليقك

تم تعديل بواسطه أبو لميس
رابط هذا التعليق
شارك

أظن أن سبب تعطل دالة dcount عن الحساب

هو أن الربط بين الجدولين كان رأس برأس

انت لم تضع هذه الدالة في مثالك لنرى السبب

وللعلم يمكن ان تعمل الدالة بين جدولين (غير مرتبطين) ، فتضع شرطا يجب تحققه في جدول آخر

سنحتاج في هذه العملية الى الاعلان عن متغيرات تمثل الجدول البعيد وسجلاته ، وعلى هذا الاساس نبني شروطنا

ولا شك استخدام الاستعلامات بين الجداول خاصة المرتبطة منها سيجعل من السولة واليسر الوصول الى البيانات والتعامل معها بيسر وسهولة

انظر الى المثال المرفق وهو حسب طريقتك في الربط بين الجداول ( لم اغير في مثالك سوى نوع البيانات في النشاط جعلته رقما )

تم استخراج النتيجة ولكن بجمع الاعمدة لان البيانات في الجدول افقية .

معلومة : يمكننا رؤية اعداد الطلاب حسب النشاط في الصفوف والفصول على هيئة جدول باستخدام الاستعلام الجدولي

أول مرة أستخدم علاقة كثير لكثير

أنشأنا جدولا فيه

1- الحقل الأساسى لجدول الأسماء

2- الحقل الأساسى لجدول النشاط

ثم ربطنا كل جدول من الجدولين بهذا الثالث بعلاقة رأس لأطراف

هذا لا يعني ان طريقتك خاطئة

يمكننا استخدام علاقة رأس لرأس اذا كانت الحقول في الجدول الفرعي ثابتة وهذا يستخدم كثيرا مثل ( الطلاب وجدول المواد)

اما ان كانت قابلة للزيادة والتغير فعلاقة راس لاطراف اولى

وما أتحير فيه الآن

كيف نقلت البيانات إلى الجدول الجديد؟

400 سجل مضروبة فى نشاطين = 800 سجل

نسخ ولصق

سؤال آخر

ما الطريقة المثلى (بعد الوضع الجديد) لإدخال بيانات النشاط فى العام الجديد؟

باستخدام نموذج رئيسي وآخر فرعي اما حسب طريقتك فيمكن بواسطة الاستعلام الاكتفاء بنموذج واحد

طبعا ستأتى أسماء جديدة بأنشطة يختارونها أيضا جديدة

هل ستستمر العلاقة بين الجدولين بالحذف أو الزيادة لأسماء جديدة من جدول الأسماء الأصلى؟

من خصائص العلاقة يمكنك تحديد صلاحية ونوع الحذف ، فاذا تم تفعيل خانة الحذف امكنك حذف السجل الرئيس وما يتبعه من سجلات فرعية

test5.rar

  • Like 1
رابط هذا التعليق
شارك

قلت : جزاك الله خيرا

استخدام dcount بطلاقة فى الكود


s = DCount("[SID]", "Q1", "[safID] = form!safID And [ACT1] = Form!s14")

ss = DCount("[SID]", "Q1", "[safID] = form!safID And [ACT2] = Form!s14")

txt1 = s + ss

r = DCount("[SID]", "Q1", "[Classid] = form!Classid And [ACT1] = Form!s14 and [safID] = form!safID")

rr = DCount("[SID]", "Q1", "[Classid] = form!Classid And [ACT2] = Form!s14 and [safID] = form!safID")

txt2 = r + rr

وقد رأيت بعد كل هذا

أن وضع حقلى النشاط مع الجدول الرئيسى أسهل بكثير

لأنهما حقلان ثابتان و اختيارهما إجبارى من كل الطلاب

و لأن هناك تقارير لها شكل معين

مثل قائمة فصل بها حقلان للنشاط متجاوران

و هذا سيحتاج أيضا إلى حلول أخرى

لكن و لا شك

أن إثارة المشاكل

تثير معها علما ينفع فى مواطن أخرى

كما انك نبهتنى إلى استخدام الاستعلام الجدولى لعمل إحصائية النشاط

و هذا تذكير رائع

جزاك الله خيرا أبا خليل و زادك علما و نفع بك

رابط هذا التعليق
شارك

لأنهما حقلان ثابتان و اختيارهما إجبارى من كل الطلاب

و لأن هناك تقارير لها شكل معين

ليسا ثابتين ويندرج معهما ايضا الصف والفصل

الثوابت مثل الاسم والهوية وتاريخ الميلاد ............

قد تقول العناوين وارقام الهواتف عرضة للتغيير نعم ولكن يتم التغيير لحالة فردية خاصة

ولكن حديثنا عن الحقول التي يتم عليها التغيير والتحديث الجماعي الشامل

فكر ! كيف تظهر محصلة شخص معين خلال فترة معينة سابقة ؟

  • Like 1
رابط هذا التعليق
شارك

الحديث معك ذو شجون " يعنى فروع"

كلامك دقيق جدا

و يبدو أنه سيغير نظرتى لقاعدة بيانات الطلاب

نعم

الصف و الفصل و النشاط ايضا

صدقت

تتغير كل عام

و الثوابت

ما ذكرت حضرتك

يخيل إلى أننا ذهبنا مذهبا عميقا فى الفهم

ما المقترح إذن لهذا المتغير؟

هل نفصله؟

بحيث لا يبقى فى الجدول الأساسى

الفصل و الصف و النشاط؟

هذه هى الحقول الموجودة لدى فى الجدول الأساسى

الصف

الفصل

حالة القيد "مستجد - معيد -منقطع - مجمد - مهنى"

اسم الطالب

الرقم القومى

ت الميلاد

الجنسية

رقم القيد

محل الميلاد

محل الإقامة

اسم ولى الأمر

صناعته

عنوانه

اسم الأم

مهنتها

جنسيتها

مدرسة الطالب الابتدائية"المرحلة السابقة"

مجموعه فى الابتدائي

نوعه"ذكر- أنثى"

يتيم"نعم/لا"

اسم الطالب باللغة الإنجليزية

حالة الطالب نهاية العام"ناجح و منقول - باق للإعادة - نقل لمدرسة أخرى..."

نشاط1

نشاط2

أنت تقول أن حقول

الصف- الفصل - النشاط -حالة القيد

هى حقول متغيرة

ماذا نفعل فيها

هل نفصلها فى جدول؟

يوجد جدول منفصل اسمه : الصف

وهو مرتبط بالجدول الرئيس بعلاقة رأس لأطراف

بمعنى أن ما يوجد فى الجدول الرئيس هو رقم حقل المفتاح بجدول الصف safID

و مثله جدول الفصل

هل هذا هو الفصل المطلوب

رجاء توضيح الصورة

لعظيم أهمية الأمر

تم تعديل بواسطه أبو لميس
رابط هذا التعليق
شارك

حالة الطالب نهاية العام"ناجح و منقول - باق للإعادة - نقل لمدرسة

ناجح ، راسب ، مكمل ؛ هذه مكانها الاستعلام او الحقول غير المنظمة في النموذج او التقرير اما النقل الى مدارس اخرى فهو في محله الصحيح وتحتاج الى حقل اضافي يبين فيه جهة النقل ، وقلت انه في محله الصحيح لان اسم الطالب سيختفي بمجرد التأشير على النقل ، ويمكن وضع هذا الحقل في الجدول الفرعي اذا كنا نعتمد الاستعلام في اظهار الاسماء

اذا كان برنامجك لا يشتمل الا على هذين النشاطين فقط فيمكنك وضع ما ذكرت في جدول واحد شريطة ان يتم اخذ نسخة احتياطية في نهاية كل سنة دراسية للرجوع اليها وقت الحاجة ثم يتم مسح وتصفير بيانات القاعدة الاساس لبدء عام جديد

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

  • Like 1
رابط هذا التعليق
شارك

حالة الطالب نهاية العام"ناجح و منقول - باق للإعادة - نقل لمدرسة

ناجح ، راسب ، مكمل ؛ هذه مكانها الاستعلام او الحقول غير المنظمة في النموذج او التقرير

كلامك مبنى على أنه يوجد بالقاعدة درجات للطلاب

للأسف لا يوجد

ليس لعدم اهميتها

بل لعدم وجود متطوع لإدخال هذه البيانات

فالقاعدة مقتصرة على الحقول التى ذكرتها لك

و هناك جدول للحالات المرضية

وجدول المحولين لمدارس أخرى - و به تفاصيل التحويل"

مسح وتصفير بيانات القاعدة الاساس لبدء عام جديد

طبعا تقصد مسح بيانات جدول النشاط

أما القاعدة فيمسح فيها طلاب الصف الثالث

لأنهم ينقلون للمرحلة الثانوية

أما طلاب الصفين الثانى و الأول

فيتم ترحيلهم للصف الثالث

الآن صار عندنا ثلاثة أشياء

مسح(لطلاب الصف الثالث)

أخذ نسخة احتياطية(لجدول النشاط)

و ترحيل للصف التالى ( لطلاب الصفين الأول و الثانى فقط)

رابط هذا التعليق
شارك

الآن كأن الرؤية اتضحت قليلا

1- جدول الاسماء ويشتمل ايضا على : حقل الحالة منتظم / منقول ،،،، ( وحقل لجهة النقل وحقل لتاريخ النقل " وان شئت فافرد الاخيرتين في جددول مستقل تربطه مع جدول الاسماء رأس لرأس )

2- جدول النشاط ويشتمل على الصف ، الفصل ، نشاط1 ، نشاط2 ’ الرقم المعرف للطالب

اربط الجدولين بعلاقة رأس لرأس ويكون الاساسي جدول الاسماء

3- جدول للحالات المرضية ، ضع فيه الحقول المطلوبة ولا تنسى الرقم المعرف للطالب

ثم اربطه مع جدول الاسماء بعلاقة رأس لاطراف ، فالطالب قد يسجل له اكثر من حالة

لادخال البيانات :

نموذج ومصدر بياناته استعلام يجمع الجدولين الاسماء والنشاط

ونموذجين للحالات المرضية رئيسي وفرعي ومصدر بياناتهما الجدولين

في نهاية السنة :

طريقة اخرى

لن تحتاج الى التصفير او النسخة الاحتياطية السنوية

سيتم ترحيل الصف الثالث الى جدول جديد وبعده يتم تحديث بيانات جدول النشاط

وانما تحديد ذلك تحكمه الحاجة

  • Like 1
رابط هذا التعليق
شارك

أبا خليل

يا صاحب النفس الطويل

بارك الله فيك

لعلنا نختم بهذا السؤال العام

عندما نربط جدولين

بعلاقة رأس برأس

مثلا جدول الحالات المرضية

مع جدول أسماء الطلاب

طبعا فى الجدول الفرعى

تظهر معرفات الطلاب ذوى الحالات المرضية فقط

مثلا 40 معرفا من بين 400

هناك مشكلة عند إدخال البيانات

و هى

أنه يمكن إدخال سجل جديد

وكتابة رقم التعريف للطالب

ولا تكتب بقية البيانات

بمرور الوقت

تتراكم بجدول الحالات المرضية

أرقام معرفات

بدون وصف للحالة المرضية

مثلا الطالب صاحب المعرف 107

ليس من ذوى الحالات المرضية

لكن كتب رقمه خطأ عند إدخال البيانات

و لم يكتب أمامه وصف للحالة

تعرفت على بعض الحلول بالكود لبعض الإخوة

كيف تتغلب أنت على هذه المشكلة

و لعلنا نختم بهذا

لأننى أشعر أننى أرهقتك

وفقك الله لكل خير

تم تعديل بواسطه أبو لميس
رابط هذا التعليق
شارك

نعم

هذا الأخير هو المعمول به

عن طريق أمر

runsql

فى حدث عن الغلق للنموذج

جزاك الله خيرا

على ما أمددتنا به من معلومات قيمة

وشكرا لك

رابط هذا التعليق
شارك

  • 1 month later...

أبا خليل

يا صاحب النفس الطويل

بارك الله فيك

لعلنا نختم بهذا السؤال العام

عندما نربط جدولين

بعلاقة رأس برأس

مثلا جدول الحالات المرضية

مع جدول أسماء الطلاب

طبعا فى الجدول الفرعى

تظهر معرفات الطلاب ذوى الحالات المرضية فقط

مثلا 40 معرفا من بين 400

هناك مشكلة عند إدخال البيانات

و هى

أنه يمكن إدخال سجل جديد

وكتابة رقم التعريف للطالب

ولا تكتب بقية البيانات

بمرور الوقت

تتراكم بجدول الحالات المرضية

أرقام معرفات

بدون وصف للحالة المرضية

مثلا الطالب صاحب المعرف 107

ليس من ذوى الحالات المرضية

لكن كتب رقمه خطأ عند إدخال البيانات

و لم يكتب أمامه وصف للحالة

تعرفت على بعض الحلول بالكود لبعض الإخوة

كيف تتغلب أنت على هذه المشكلة

و لعلنا نختم بهذا

لأننى أشعر أننى أرهقتك

وفقك الله لكل خير

يمكنك وضع خاصية مطلوب وخاصية عدم السماح بطول صفري لبقية الحقول في جدول بيانات حالة الطالب المرضية هذا يجعل البرنامج لايقبل سجل غير كامل البيانات ولايتم حفظه الا اذا ادخلت قيمة لجميع الحقول التي تحمل هذه الخاصية

رابط هذا التعليق
شارك

يمكنك وضع خاصية مطلوب وخاصية عدم السماح بطول صفري لبقية الحقول في جدول بيانات حالة الطالب المرضية هذا يجعل البرنامج لايقبل سجل غير كامل البيانات ولايتم حفظه الا اذا ادخلت قيمة لجميع الحقول التي تحمل هذه الخاصية

كلام سليم 100% فخصائص الاكسس تشتمل على اشياء كثيرة تغنينا عن اللجوء الى الاكواد الخارجية

رابط هذا التعليق
شارك

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information