البحث في الموقع
Showing results for tags 'نموذج رئيسي'.
تم العثور علي 1 نتيجه
-
السلام عليكم رداً على السؤال التالي: سؤال عن كود البحث في جدولين قمت بعمل محاولة بناء على ما تبين لي من مقصد السائل، وبناء على ملاحظة الأستاذ @د.كاف يار عن كون الفكرة مبتكرة، أعيد رفع المرفقات مع شرح مختزل للفكرة عارٍ من الصور، مع إضافة طريقة أخرى. الفكرة قد تحتاج إلى تهذيب بحكم أنها كانت استجابة عفوية للسائل، أضعها بين أيديكم الغالية، عسى أن يُستفاد منها: أللهم صلِ على سيدنا محمد وعلى آله وصحبه وسلم. تنقسم الطريقة إلى جزئين رئيسيين، الأول منهما ثابت والثاني اقترحت طريقتين له: الجزء الأول: عمل استعلام توحيد بين الجدول الرئيسي والفرعي، يكون فيه من الجدول الفرعي Figlio : 1- الحقل الذي نرغب بالبحث ضمنه. 2- حقل المتسلسل. 3- حقل الربط. ومن الجدول الرئيسي Padre: 1- الحقل الذي نرغب بالبحث ضمنه 2- حقل المتسلسل 3- حقل محسوب قيمته صفر (نستحصل عليها بضرب حقل المتسلسل بالقيمة صفر). بالنسبة لي، قد اخترت أن يكون في نموذج البحث مربع قائمة -على مبدأ (البحث عن الكل) في الإكسل- يكون مصدره الاستعلام الذي سميته في الأنموذج المرفق (SearchQ)، وربطته بفلاتر تُستدعى بناء على معيار حقل البحث (طريقة العرض يمكن تغييرها والتفنن بها وهذه الجزئية ليست موضوع المنشور)، بعد ذلك يتم الانتقال من نموذج البحث إلى نموذج الإدخال (بقسمين الرئيسي والفرعي) بتمرير قيمة حقل الربط وحقل المتسلسل. إلى مربعين غير مرتبطين في نموذج البحث ومن ثم إلى نموذج هدف البحث. (ويمكن ذلك باستخدام المتغيرات). ملحوظة: يوجد في النموذج الفرعي حقل خفي مصدره المتسلسل في الجدول الفرعي. الجزئية الثانية: كيفية تحديد الحقل والسجل الذي يتضمن الهدف! هنا لدينا طريقتان: الأولى: بنقل التركيز إلى الحقل المطلوب : Dim Padre As Integer ' متغير باسم (الأب) لحفظ قيمة معرف السجل في الجدول الرئيسي Dim Figli As Integer ' متغير باسم (الابناء) لحفظ قيمة معر السجل في الجدول الفرعي Padre = Me.id ' حقل خفي في نموذج البحث Figli = Me.ID2 ' حقل خفي في نموذج البحث If Me.ID2 = 0 Then ' هذا الشرط لجعل الكود يتحقق بالانتقال ووقوف في النموذج الرئيسي أو الانتقال ومتابعة البحث في النموذج الفرعي DoCmd.OpenForm "form1" ' إعادة فتح النموذج الهدف لنقل التركيز إليه DoCmd.GoToRecord acDataForm, "Form1", acGoTo, Padre ' فتح النموذج على السجل المنشود DoCmd.GoToControl "[اسم رب العائلة]" ' التركيز على حقل فيه Else DoCmd.OpenForm "form1" DoCmd.GoToRecord acDataForm, "Form1", acGoTo, Padre 'Me.id DoCmd.GoToControl "SubForm" ' نقل التركيز إلى النموذج الفرعي DoCmd.GoToControl "[الاسم]" ' نقل التركيز إلى حقل في النموذج الفرعي ' هذا الجزء لنقل التركيز في النموذج الفرعي إلى السجل المطلوب Dim rstt As dao.recordset Dim rstrng As String rstrng = "[id0]=" & Figli 'Forms!search!Figli Set rstt = Forms!form1!Subform.Form.RecordsetClone rstt.FindFirst rstrng Forms!form1!Subform.Form.Bookmark = rstt.Bookmark Set rstt = Nothing End If الثانية: باستخدام التنسيق الشرطي وهي الطريقة الأفضل برأيي. ويزاد فيها وجود معادلة للتنسيق الشرطي لحقل الهدف في النموذج الرئيسي وأخرى لحقل الهدف في النموذج الفرعي ، ووجود حقلين خفيين في النموذج الرئيسي يأخذان قيمتها من المتغيرين (الأب) و(الأبناء)، ستكون قيمتهما هي محددات معادلتي التنسيق الشرطي. ' سيبدو الكود بهذه الطريقة Dim Padre As Integer Dim Figli As Integer Padre = Me.id Figli = Me.ID2 Forms!form1!CondScnd.Value = Figli ' هنا نجعل حقل المعيار للتنسيق الشرطي يأخذ قيمته من المتغيرات المبين معناها في الكود السابق Forms!form1!CondFrst.Value = Padre DoCmd.GoToRecord acDataForm, "Form1", acGoTo, Padre Forms!form1.Refresh ' مع اختصار المراحل ' وتوفير ضرورة إعادة التركيز إلى نموذج البحث مع كل انتقال إلى الهدف أرجو ممن يعرج على الموضوع التفضل بوضع ملاحظاته أو اقتراحاته أو إضافته. والحمد لله رب العالمين أخيراً المثال من وضع السائل في الرابط المذكور أعلاه (مشكوراً مأجوراً إن شاء الله تعالى) Search in Main form and Sub Form Simultaneously Search_MaiForm_SubFormConditionl.accdb Search_MainF=SubFormSetFocus.accdb