Hamtoooo قام بنشر يناير 7 قام بنشر يناير 7 السلام عليكم اسعد الله اوقاتكم بكل خير شرح المشكلة | اقوم بعض الاحيان بكتابة كود ثابت واستخدمه في اكثر من مكان مثلا لدي امر زر الحذف بكافة النماذج ثابت قمت بكتابتة الكود مسبقا وتم تنسيق الرسالة واضافة كل الاكواد الازمة لامر الحذف واقوم بتكراره بكل زر كذلك لدي رساله منبثقه تبين ان هناك خطأ غير متوقع واقوم بتحزيم الاكواد بهذه الرساله كذلك لدي نص ثابت اسم البرنامج + اصداره بهذه الصيغة مثلا ( اوفيسنا | الاصدار 3.8 ) واقوم بوضعه في عناوين الرسائل المنبثقه وكذلك في مواقع عدة من البرنامج م الذي افكر فيه ؟ هو ان اعمل وحدة نمطيه بداخلها كل الاكواد اللي ذكرتها سابقا وهي الاكواد الثابته والمستخدمه في اكثر من مكان واناديها في كل مره احتاج الكود مع العلم ان الاكواد متنوعه منها كود امر ومنها فقط عرض نص وهكذا اعتقد انني قللت من كتابة الاكواد وتكراره ووفرت لنفسي جهد التعديل اخيرا م الذي اريده من الساده الكرام هو كيف اضع الكود في الوحده النمطيه وكيف استدعيه والاهم من ذلك هل ما افكر فيه جيد او ان هناك طرق افضل لكم المرفق للتعديل عليه استدعاء الاكواد.accdb
ابوخليل قام بنشر يناير 7 قام بنشر يناير 7 عليكم السلام سأجيب واتوقع اني لم افهم عنك جيدا في محرر الوحدة النمطية العامة نكتب : Public Function my_function() ' اكتب اكوادك هنا End Function ويتم استدعاء الوظيفة هكذا Call my_function أو my_function او my_function() الاخيرة نستخدمها في الاستعلامات اذا كانت الوظيفة معيار بمعنى انها تأخذ قيمة محددة اما الأولى فنحن نشغل الوظيفة اذا كانت قيمتها متعدية اي انه يوجد متغيرات خارجية تتأثر قيمتها عند تشغيل الوظيفة 1
أفضل إجابة 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
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 =اسم المريض المراد طباعة التقرير لة
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
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
jo_2010 قام بنشر يناير 10 قام بنشر يناير 10 7 ساعات مضت, jo_2010 said: معلمى الفاضل لم اتمكن من استدعاء الكود من الموديول ممكن لو تكرمت تساعدنى شكرا لحضرتك Code.accdb 832 kB · 0 downloads ممكن تساعدني مستر moosak
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
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
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.