أبو آدم قام بنشر يناير 15, 2008 قام بنشر يناير 15, 2008 السلام عليكم ورحمة الله وبركاته قد لا يكون المجال للمدح ولكن ... من لايشكر الناس لا يشكر الله فضائل علمك عمت والنبع فياض بامر الله ... ما شاء الله ، تبارك الله ، لا قوة الا بالله اكاديمي جميل ، ومحاضر ممتاز ومتمكن فعلا خبير نفع الله بك وبعلمك ، ننتفع مما علمَك الله تابع بعون الله ، وعليك بالعزم و العزيمة
rudwan قام بنشر يناير 15, 2008 قام بنشر يناير 15, 2008 السلام عليكم ماشاء الله , عمل ممتاز و رائع عسى الله أن ينفع بك الأمة
أبو آدم قام بنشر يناير 17, 2008 قام بنشر يناير 17, 2008 السلام عليكم أخي محب العلم جزاك الله خيرا اخجلتني ، فمثلي لا يشهد فانما انا طويلب علم والله من وراء القصد
منذر عساج قام بنشر يناير 20, 2008 قام بنشر يناير 20, 2008 السلام عليكم بارك الله فيك أخي الكريم ونفع بعلمك والى الأمام إن شاء الله
محب العلم قام بنشر يناير 22, 2008 الكاتب قام بنشر يناير 22, 2008 (معدل) المثال الخامس عشر كيفية برمجة زر ذو حالة متبدلة للتبديل بين وضعي العرض (منع التعديلات) والتعديل (سماح التعديلات) في النموذج بيئة العمل : أكسيس 2003 و 2007 المقدمة كلما زاد التحكم في النموذج ووفرت بيئة استخدام آمنة ومريحة للمستخدم كلما أصبح البرنامج صديقا للمستخدم بشكل أكبر وأصبح من الممكن الاعتماد على البرنامج واستخدامه مشجعا أكثر وطبعا أقل مشاكل. يعمد مبرمجو الأنظمة إلي عمل عدة أوضاع للنموذج عوضا عن بناء نماذج للإدخال ونماذج للعرض وأخرى للإضافة وهكذا ... ، في هذا المثال سأشرح طريقة من تصميمي تعتمد على زر ذو حالة متبدلة للعرض والتعديل. التفاصيل من المعروف أن الصور الرمزية التي تستخدم مع أزرار أكسيس لا يمكن تغييرها خلال فترة تشغيل النموذج لذلك سنقوم بوضع زرين فوق بعضهم في النموذج وهما : الزر الأول لوضع التعديل (يعني الزر الذي سيسمح للمستخدم تعديل البيانات ) الزر الثاني لوضع العرض (بمعنى الزر الذي سيمنع المستخدم تعديل البيانات) ثم نضع هذه الأزرار فوق بعضها فتظهر كأنها زر واحد في النموذج جاعلين زر سماح التعديل في الأمام ومنع التعديل في الخلف لأننا نريد عندما ندحل للنموذج أن نكون في وضع منع التعديل هكذا الآن يجب أن نضع كود يسمح التعديل أو يمنع التعديل حسب الزر الذي نضغط عليه وبالطبع فإن هذا الكود سيوضع في حدث النقر لكل زر هكذا Private Sub c1_Click() Me.ambId.SetFocus Me.c1.Visible = False Me.c2.Visible = True Me.Form.Caption = "تعديل" Call Lock_Edit(Me.Form, False) End Sub Private Sub c2_Click() Me.ambId.SetFocus Me.c1.Visible = True Me.c2.Visible = False Me.Form.Caption = "عرض" Call Lock_Edit(Me.Form, True) End Sub لاحظ ما نفعله هنا أولا تحويل التركيز إلى حقل غير الزرين لأننا سنخي الزر الذي ضغطناه ونظهر الأخر ومن المعروف أنه لا يمكن اخفاء زر يمتلك التركيز. ثم نخفي الزر المضغوط ونظهر الأخر النتيجة التي سيراها المستخدم هي وكأن الزر تم تبديل صورتة وهذه نتيجة تحايلية عن عدم القدرة على تغيير الصور الرمزية لأزرار أكسيس. ثم تغير عنوان النموذج الرئيس ليظهر الوضعية الحالية للنموذج (عرض أو تعديل) ومن الممكن أن تتساءل لماذا جعلت الإجراء الخاص بالوضع إجراءا عاما في وحدة نمطية وهو الذي أطلبه lock_edit والجواب أنني أريد أن أستخدم هذا الإجراء في جميع نماذجي وليس في نموذج واحد فحسب. الآن أنظر معي لطريقة العمل على تبديل الأوضاع : Sub Lock_Edit(F As Variant, S As Boolean) Dim Ctl As Control For Each Ctl In F.Controls If Ctl.Tag <> 0 Then If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox _ Or Ctl.ControlType = acCheckBox _ Or Ctl.ControlType = acSubform Then Ctl.Locked = S If S = True Then Ctl.SpecialEffect = 1 Else Ctl.SpecialEffect = 0 End If End If Next Ctl End Sub ما أعمله هنا هو أنني افحص كل حقل فإذا كان مربع نص أو مربع اختيار أو نموذج فرعي أو مربع تحرير وسرد فإنه يتم تأمينه من خلال خاصية التأمين locked وليحس المستخدم بالفرق بين الوضعين اغير في شكله من خلال الخاصية speciialeffect . السؤال والفكرة الجميلة هي ماذا لو أردت لبعض عناصر التحكم أن لا تخضع لوضعي التبديل على سبيل المثال مربع تحرير وسرد يستخدم للبحث عن سجل والجواب هو أنني استخدمت فكرة بسيطة باستغلال خاصية tag لذلك العنصر فإذا وضعت فيها 0 في وضع التصميم للنموذج فإنني أعني بذلك أن هذا العنصر لن يخضع لعملية التبديل . الشيء الأخير والمهم لإكمال العمل هو تحديد وضع العرض عندما نفتح النموذج وذلك يتم هكذا Private Sub Form_Open(Cancel As Integer) Me.c1.Visible = True Me.c2.Visible = False Me.Form.Caption = "عرض" Call Lock_Edit(Me.Form, True) End Sub أملا أن تكونوا استمتعتم واستفدتم من هذه الفكرة 2003_2007.zip مع وافر الاحترام والتقدير تم تعديل يناير 22, 2008 بواسطه محب العلم
محب العلم قام بنشر يناير 22, 2008 الكاتب قام بنشر يناير 22, 2008 السلام عليكم أهلا وسهلا ومرحبا بمحبي العلم وداعميه ومشجعيه ، عسى الله أن ينفعكم بما علمني وينفعني بما علمكم. شكرا لإخواني الأحباب ومشرفينا الكرام رضوان ويوسف ومنذر عساج على التشجيع والدعم، وإنه لفخر لي مروركم . وشكرا لأخي nart lebzo واخي حامل المسك على التشجيع الكبير والتواصي الدائم وشكرا لأخي mr toto . مع فائق احترامي وتقديري لكم ولجميع الاعضاء ولكم مني جميعا محبكم محب العلم
محب العلم قام بنشر يناير 31, 2008 الكاتب قام بنشر يناير 31, 2008 (معدل) السلام عليكم ورحمة الله وبركاته على هامش المثال الرابع في المشاركة رقم 22 وطلب جديد من الأخ sweety المثال السادس عشر احضار مجموع فرعي إلى النموذج الرئيس مع تخزينه في مصدر البيانات للنموذج الرئيس، المقدمة يوجد سيناريوهات عديدة للتعامل مع المجاميع الجزئية من النموذج الفرعي واحضارها إلى النموذج الرئيس ومن هذه السيناريوهات النموذجية والمشهورة أن نحضر المجموع الفرعي لحقل ما ونضعه في النموذج الرئيس في عنصر تحكم غير منضم بمعنى أننا لا نريد تخزين قيمة هذا المجموع في حقل ما من حقول مصدر البيانات (الجدول أو الاستعلام) الذي للنموذج الرئيس. السيناريو السابق تم شرحه بالتفصيل وعرض الطريقة المثلى بدون الوقوع في المشاكل عند استخدامه في المثال الرابع في هذه السلسلة هــــــــنـــــــــا التفاصيل أما السيناريو الذي يستخدمه sweety في مثاله فهو يتضمن عمل إضافي على السابق حيث يقوم بإحضار مجموع من نموذج فرعي إلى رئيس ثم تستخدم هذا المجموع في عملية حسابية لحساب قيمة حقل أخر وكذلك أنت تود تخزين هذا المجموع الفرعي الذي تم احضاره وكذلك الذي تم احتسابه في مصدر البيانات للنموذج الرئيس . الحل يكون أولا بتطبيق الشرح السابق في السيناريو الأول والذي سيعمل على احضار المجموع والحساب في النموذج ولكن لن يخزن في مصدر السجلات للنموذج الرئيس لذا وجب التفكير متى يجب تخزين التغيرات في مصدر السجلات للنموذج الرئيس والجوب هو عندما يتغير المجموع في النموذج الفرعي أي في حدث بعد التعديل (بعد التحديث) لحقل المجموع الذي في النموذج الفرعي ولاحظ الكود الخاص بذلك Private Sub Paid_Amount_AfterUpdate() Me.Requery Me.Parent.[paid amount] = Me.Parent.pa Me.Parent.[Balance] = Me.Parent.b Me.Refresh End Sub السطر الأول يعيد الاستعلام في النموذج الفرعي مما يؤدي إلى ظهور نتيجة التغيرات في كلا من الفرعي والرئيس السطر الثاني يعدل (يخزن) قيمة الحقل Paid amount والذي سيكون القيمة المحضرة في عنصر التحكم غير المنضم لمصدر السجلات والذي اطلقت عليه اسم pa السطر الثالث يخزن(يخزن) قيمة الحق balance والذي سيكون القيمة المحتسبة في عنصر التحكم غير المنضم لمصدر السجلات والذي اطلقت عليه اسم b السطر الأخير ينعش النموذج بكل التغيرات التي حدثت لاحظوا كلمة parent المستخدمة وهي الطريقة التي نصل من خلالها لعناصر نموذج رئيس (من حقول وغيرها) عندما يكون التركيز داخل نموذج فرعي (وتعني الأب وهي آتية من مبدأ التوارث في البرمجة الكينونية ) مع ملاحظة أننا وضعنا في النموذج الرئيس الحقول المنضمة وهي حقل paid amount وحقل balance وجعلناها مخفية لأن العمل سيتم في العناصر غير المنضمة والنتيجة تنقل للحقول المنضمة بواسطة الكود اعلاه. SubTotal.rar مع وافر الاحترام والتقدير تم تعديل يناير 31, 2008 بواسطه محب العلم
ahmedfakhr_y قام بنشر فبراير 8, 2008 قام بنشر فبراير 8, 2008 أخي الكريم لكل شئ زكاة وزكازة علمك لقد اخرجتها لنا في شكل أكثر من ممتاز ولك مني و كل من قرأ حرف مما كتبت دعوات صادقة نرجو بأن يتقبلها منا رب العالمين وتكون دعواتنا لك عن ظهر الغيب من نصيبك ولك الشكر الجزيل وزادك الله نوراً وعلماً ورزقك أحسن ما في الدنيا الرزق الحلال والولد الصالح والزوجة الصالحة واعطاك كل ما في الجنة ولك سلامي أخوك احمد فخر الدين
محب العلم قام بنشر فبراير 18, 2008 الكاتب قام بنشر فبراير 18, 2008 (معدل) السلام عليكم ورحمة الله وبركاته تم بحمد الله انتهاء هذه السلسة التي تألفت من ستة عشر مثالا مشروحا وأتمنى أن تكونو قد استفدتم منها وإلى لقاء أخر مع سلسلة جديدة أستودعكم الله الذي لا تضيع ودائعه ملاحظة مهمة : للمرة الخامسة والأخيرة أطلب من المشرفين فضلا تعديل اسم الموضوع إلى سلسلة الأمثلة المشروحة بدل من سلسة الأمثلة المشروحة.كما وأطلب فضلا تحويل هذا الموضوع إلى قسم الأرشيف :ث: الأمثلة والتطبيقات محبكم محب العلم والحمد لله رب العالمين تم تعديل فبراير 18, 2008 بواسطه محب العلم
مواري قام بنشر فبراير 19, 2008 قام بنشر فبراير 19, 2008 جزاك الله خير يا اخي وبارك فيك وبعلمك واجزل لك الأجر والمثوبة شرح مفصل مبسط جميل دمت بود
faife قام بنشر فبراير 24, 2008 قام بنشر فبراير 24, 2008 بارك الله فيك على هذه الأمثلة عمل رائع اخي محب العلموالى الأملم دائما
يوسف أحمد قام بنشر مارس 12, 2008 قام بنشر مارس 12, 2008 (معدل) بارك الله فيك اخي محب العلم وجزاك خير الجزاء تم تعديل عنوان المشاركة وبإذن الله سيتم العمل على تحويل هذه السلسلة الرائعة الى ملف وورد وايضاً ملف آخر بصيغة Pdf وسيتم وضعها في آخر السلسلة . كل الشكر والتقدير لك على مجهوداتك الرائعة ونسأل الله ان يجعل ذلك في موازين حسناتك تم تعديل مارس 12, 2008 بواسطه yousef
abdelmajid قام بنشر أبريل 10, 2008 قام بنشر أبريل 10, 2008 شكرا لكم انا مبتدئ و لا ادري اي شيئ في هذا الميدان ارجو مساعدتي
west70 قام بنشر أبريل 20, 2008 قام بنشر أبريل 20, 2008 شرح رائــــــــــــــــــــــــــــــــــــــــع ياأخي العزيز
إبراهيم محمد قام بنشر مايو 24, 2008 قام بنشر مايو 24, 2008 جزاك الله خيرا على هذا العلم الوفير وجعله الله فى ميزان حسناتك يوم القيامه ولكن اخى عندى سؤال ارجو منك شرح طريقه عمله كيف استطيع عمل فلترة بالكومبو بوكس على مستويين بمعنى لو افترضنا ان هناك مدن ثم داخل المدن الاحياء ثم داخل الاحياء الشوارع ففى اول كومبو يتم الفلترة بالمدن فتحدث فلترة جزئيه داخل الكومبو بوكس الثانى وايضا باقى البيانات ثم من الكومبو بوكس الثانى نختار الاحياء فتحدث فلترة ثانيه فى البيانات لقد وجدت مثالا فى المنتدى يوضح ذلك بطريقه اخرى ولكن لم يتم شرحه فارجو منك ان توضح لنا كيفيه القيام بهذا الامر خطوة خطوة ولك جزيل الاجر والثواب ان شاء الله واتمنى ان يكون سؤالى هذا مفيد للاخرين ان شاء الله
ahmed7573 قام بنشر يوليو 12, 2008 قام بنشر يوليو 12, 2008 السلام عليكم ورحمة الله وبركاته أخي العزيز بارك الله فيك يا أخي وجعل كل هذ الجهد العظيم في ميزان حسانتك أخوك أبو حسين
adb1423 قام بنشر فبراير 14, 2009 قام بنشر فبراير 14, 2009 اخي في الله محب العلم السلام عليكم ورحمة الله وبركاته وبعد زادك الله تقا وعلما وجعل ذلك في ميزان حسناتك وصدقة جارية الى يوم القيامة
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.