Hamtoooo قام بنشر يناير 7 مشاركة قام بنشر يناير 7 السلام عليكم اسعد الله اوقاتكم بكل خير شرح المشكلة | اقوم بعض الاحيان بكتابة كود ثابت واستخدمه في اكثر من مكان مثلا لدي امر زر الحذف بكافة النماذج ثابت قمت بكتابتة الكود مسبقا وتم تنسيق الرسالة واضافة كل الاكواد الازمة لامر الحذف واقوم بتكراره بكل زر كذلك لدي رساله منبثقه تبين ان هناك خطأ غير متوقع واقوم بتحزيم الاكواد بهذه الرساله كذلك لدي نص ثابت اسم البرنامج + اصداره بهذه الصيغة مثلا ( اوفيسنا | الاصدار 3.8 ) واقوم بوضعه في عناوين الرسائل المنبثقه وكذلك في مواقع عدة من البرنامج م الذي افكر فيه ؟ هو ان اعمل وحدة نمطيه بداخلها كل الاكواد اللي ذكرتها سابقا وهي الاكواد الثابته والمستخدمه في اكثر من مكان واناديها في كل مره احتاج الكود مع العلم ان الاكواد متنوعه منها كود امر ومنها فقط عرض نص وهكذا اعتقد انني قللت من كتابة الاكواد وتكراره ووفرت لنفسي جهد التعديل اخيرا م الذي اريده من الساده الكرام هو كيف اضع الكود في الوحده النمطيه وكيف استدعيه والاهم من ذلك هل ما افكر فيه جيد او ان هناك طرق افضل لكم المرفق للتعديل عليه استدعاء الاكواد.accdb رابط هذا التعليق شارك More sharing options...
ابوخليل قام بنشر يناير 7 مشاركة قام بنشر يناير 7 عليكم السلام سأجيب واتوقع اني لم افهم عنك جيدا في محرر الوحدة النمطية العامة نكتب : Public Function my_function() ' اكتب اكوادك هنا End Function ويتم استدعاء الوظيفة هكذا Call my_function أو my_function او my_function() الاخيرة نستخدمها في الاستعلامات اذا كانت الوظيفة معيار بمعنى انها تأخذ قيمة محددة اما الأولى فنحن نشغل الوظيفة اذا كانت قيمتها متعدية اي انه يوجد متغيرات خارجية تتأثر قيمتها عند تشغيل الوظيفة 1 رابط هذا التعليق شارك More sharing options...
أفضل إجابة Moosak قام بنشر يناير 7 أفضل إجابة مشاركة قام بنشر يناير 7 تفضل مرفقك أخي @Hamtoooo بعد تطبيق تعليمات معلمنا العود @ابوخليل 🙂 نفس الرسائل والأزرار .. وألق نظرة على محتويات الوحدة النمطية وكذلك جرب تغيير النصوص فيها ولاحظ الفرق في النموذج .. وهذا محتوى الوحدة النمطية : Option Compare Database Option Explicit Public Function Default_MSGBOX() 'الرسالة الموحدة MsgBox "هذه الرسالة موحدة", , Default_Title End Function Public Function Default_Title() As String ' العنوان الموحد Default_Title = "( اوفيسنا | الاصدار 3.8 )" End Function Public Function Default_Text() As String ' نص ثابت يكتب في الوحدة النمطية Default_Text = "هذا النص تم استدعائه من الوحدة نمطية" End Function Public Function DeleteBtn_Click() 'أمر عام يوضع على أزرار الحذف لحذف السجلات On Error GoTo Err_DeleteBtn_Click DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdDeleteRecord Exit_DeleteBtn_Click: Exit Function Err_DeleteBtn_Click: MsgBox Err.Description Resume Exit_DeleteBtn_Click End Function استدعاء الاكواد.accdb 2 رابط هذا التعليق شارك More sharing options...
jo_2010 قام بنشر يناير 9 مشاركة قام بنشر يناير 9 في 7/1/2024 at 21:33, Moosak said: تفضل مرفقك أخي @Hamtoooo بعد تطبيق تعليمات معلمنا العود @ابوخليل 🙂 نفس الرسائل والأزرار .. وألق نظرة على محتويات الوحدة النمطية وكذلك جرب تغيير النصوص فيها ولاحظ الفرق في النموذج .. وهذا محتوى الوحدة النمطية : Option Compare Database Option Explicit Public Function Default_MSGBOX() 'الرسالة الموحدة MsgBox "هذه الرسالة موحدة", , Default_Title End Function Public Function Default_Title() As String ' العنوان الموحد Default_Title = "( اوفيسنا | الاصدار 3.8 )" End Function Public Function Default_Text() As String ' نص ثابت يكتب في الوحدة النمطية Default_Text = "هذا النص تم استدعائه من الوحدة نمطية" End Function Public Function DeleteBtn_Click() 'أمر عام يوضع على أزرار الحذف لحذف السجلات On Error GoTo Err_DeleteBtn_Click DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdDeleteRecord Exit_DeleteBtn_Click: Exit Function Err_DeleteBtn_Click: MsgBox Err.Description Resume Exit_DeleteBtn_Click End Function استدعاء الاكواد.accdb 928 kB · 12 downloads الخبير الفاضل هل من الممكن عمل مثل هذة الرسالة فى مديول عام مع العلم بان pname =اسم المريض المراد طباعة التقرير لة رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 9 مشاركة قام بنشر يناير 9 4 ساعات مضت, jo_2010 said: هل من الممكن عمل مثل هذة الرسالة فى مديول عام مع العلم بان =اسم المريض المراد طباعة التقرير لة نعم ممكن طبعا 🙂 ولكنك هذه المرة ستدخل pname كمعامل للدالة لأنه يتغير كل مرة لكل مريض .. فستكون الصياغة بهذا الشكل ( عدل انت عليه لاحقا كما تشاء ) : Public Sub PrintOut(pname as string) If MsgBox (" التقرير الخاص بــ تريد طباعة مل" & pname & " ", vbQuestion + vbMsgBoxRight + vbYesNo, "") vbYes Then DoCmd.PrintOut Else Me.Undo End If End Sub رابط هذا التعليق شارك More sharing options...
jo_2010 قام بنشر يناير 10 مشاركة قام بنشر يناير 10 (معدل) 17 ساعات مضت, Moosak said: نعم ممكن طبعا 🙂 ولكنك هذه المرة ستدخل pname كمعامل للدالة لأنه يتغير كل مرة لكل مريض .. فستكون الصياغة بهذا الشكل ( عدل انت عليه لاحقا كما تشاء ) : Public Sub PrintOut(pname as string) If MsgBox (" التقرير الخاص بــ تريد طباعة مل" & pname & " ", vbQuestion + vbMsgBoxRight + vbYesNo, "") vbYes Then DoCmd.PrintOut Else Me.Undo End If End Sub معلمى الفاضل لم اتمكن من استدعاء الكود من الموديول ممكن لو تكرمت تساعدنى شكرا لحضرتك Code.accdb تم تعديل يناير 10 بواسطه jo_2010 رابط هذا التعليق شارك More sharing options...
jo_2010 قام بنشر يناير 10 مشاركة قام بنشر يناير 10 7 ساعات مضت, jo_2010 said: معلمى الفاضل لم اتمكن من استدعاء الكود من الموديول ممكن لو تكرمت تساعدنى شكرا لحضرتك Code.accdb 832 kB · 0 downloads ممكن تساعدني مستر moosak رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 10 مشاركة قام بنشر يناير 10 تفضل أخي @jo_2010 🙂 هذا شكل الكود في الموديول : Public Sub PrintOut(pname As String, ID As Long) Screen.ActiveForm.Refresh If MsgBox("هل ... تريد طباعة التقرير الخاص بــ " & pname & " ؟ ", vbQuestion + vbMsgBoxRight + vbYesNo, Default_Title) = vbYes Then DoCmd.OpenReport "ss", acViewPreview, , "[id]=" & ID DoCmd.PrintOut DoCmd.Close acReport Else DoCmd.OpenReport "ss", acViewPreview, , "[id]=" & ID End If End Sub وتستدعيه بهذه الطريقة لأنه صار يستقبل معاملين هذه المرة ( الــ ID ، واسم الموظف ) Call PrintOut(pname.Value, Me.ID) Code.accdb 1 1 رابط هذا التعليق شارك More sharing options...
jo_2010 قام بنشر يناير 10 مشاركة قام بنشر يناير 10 منذ ساعه, Moosak said: تفضل أخي @jo_2010 🙂 هذا شكل الكود في الموديول : Public Sub PrintOut(pname As String, ID As Long) Screen.ActiveForm.Refresh If MsgBox("هل ... تريد طباعة التقرير الخاص بــ " & pname & " ؟ ", vbQuestion + vbMsgBoxRight + vbYesNo, Default_Title) = vbYes Then DoCmd.OpenReport "ss", acViewPreview, , "[id]=" & ID DoCmd.PrintOut DoCmd.Close acReport Else DoCmd.OpenReport "ss", acViewPreview, , "[id]=" & ID End If End Sub وتستدعيه بهذه الطريقة لأنه صار يستقبل معاملين هذه المرة ( الــ ID ، واسم الموظف ) Call PrintOut(pname.Value, Me.ID) Code.accdb 500 kB · 1 download خالص الشكر الخبير الافاضل Moosak 1 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان