رحال العمر قام بنشر أغسطس 3, 2003 قام بنشر أغسطس 3, 2003 السلام عليكم عملت برنامج وخلصته تقريبا بس واجهت مشكلة البرنامج من النماذج شغال ممتاز النموذج الاصلي عملته كبير ماكسيمام والباقي عملتها مربعات حوار المشكلة عملت شريط ادوات خاص بالبرنامج ولكن عند اختيار اضافة زبون مثلا لايقفل النموذج المفتوح ويذهب الى نموذج اضافة زبون وهكذا مع خيارات شريط الادوات المشكلة عند الخروج من نموذج اضافة زبون او اي نموذج من النماذج الاخرى لازم تفتح صفحة البداية او الواجهة ماكسيمام يعني كبيرة في هذه الحالة تفتح عندي مربع حوار وعند اختيار نموذج منها واقفاله مرة اخرى ترجع طبيعية مكبرة اذا كان هناك كود يتأكد من اقفال النماذج ماعدا نموذج واحد .......... راح يحل المشكة او طريقة اخرى اتمنى من لدية خبرة مساعدتي تحياتي لكم رحال العمر 1
امير عاطف قام بنشر أغسطس 4, 2003 قام بنشر أغسطس 4, 2003 ولكن عند اختيار اضافة زبون مثلا لايقفل النموذج المفتوح ويذهب الى نموذج اضافة زبون ضع في حدث عند النقر لزر اضافة زبون الكود التالي docmd.openform "اسم النموذج الخاص بإضافة الزبون" docmd.close me.name
امير عاطف قام بنشر أغسطس 4, 2003 قام بنشر أغسطس 4, 2003 اضافة بسيطة هذا كود ايضاً يقوم بالتأكد هل النموذج مغلق ام لا ... يمكنك الاستفادة من الفكرة If (Application.CurrentProject.AllForms("ÇÓã ÇáäãæÐÌ").IsLoaded) = True Then MsgBox "the form is loading" Else MsgBox "the form is not loading" End If
رحال العمر قام بنشر أغسطس 4, 2003 الكاتب قام بنشر أغسطس 4, 2003 يبدو اني لم اوضح المشكلة اولا شكرا لك اخي امير عاطف على الرد اخي المشكلة ليست بالازار الازرار شغالة تمام لكن المشكلة بشريط القوائم بالنسبة للكود الثاني ماهو عمله ( هل هو ) يقوم بالتأكد ان جميع النماذج مقفلة ثم يفتح النموذج المطلوب ؟؟ واذا كان كذلك اين اضع هذا النموذج ليصبح عام في البرنامج رحال العمر
امير عاطف قام بنشر أغسطس 5, 2003 قام بنشر أغسطس 5, 2003 نعم يمكنك استخدام الكود السابق بحيث اذا وجد فورم محدد مفتوح يقوم بإغلاقة أو العكس هذا السطر يقوم بالتأكد هل النموذج مفتوع If (Application.CurrentProject.AllForms("formname").IsLoaded) = True Then واذا كان النموذج مفتوح نقوم بإغلاقة حل آخر: وهو عند فتح النموذج الذي تريد فتحة ضع عند حدث الفتح للنموذج كود يقوم بإغلاق النموذج الذي تريده ولعمل كود يقوم بإغلاق اي نموذج تريد DoCmd.Close acForm, "formname"
رحال العمر قام بنشر أغسطس 5, 2003 الكاتب قام بنشر أغسطس 5, 2003 السلام عليكم طيب اخي امير عاطف بارك الله فيك الآن تقريبا قطعنا نصف المشوار لكن المشكلة انا عندي حوالي ثمانية نماذج وعند اختيار نموذج من شريط الادوات ممكن يكون اي نموذج مفتوح يعني لااستطيع تحديد اي نموذج مفتوح فيها هل ممكن اضع الكود السابق بشكل عام يعني يشوف البرنامج اي نموصذج مفتوح ويغلقه ثم يفتح النموذج المطلوب ؟؟ اذا كان لايوجد كود بهذه الطريقة سأكتفي بالكود السابق DoCmd.Close acForm, "formname" تحياتي لك اخي وشكرا لتعاونك اخوك رحال العمر
امير عاطف قام بنشر أغسطس 5, 2003 قام بنشر أغسطس 5, 2003 الأخ رحال العمر : سلام الله علكم ورحمته تعالى وبركاتة يمكنك عمل ما تريد عن طريق لصق الاجراء التالي بوحدة نمطية عامية Public Sub AllForms() Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentProject For Each obj In dbs.AllForms If obj.IsLoaded = True Then obj.Properties.Application.DoCmd.Close MsgBox "all forms is closing",vbokonly,"officena" End If Next obj End Sub بعد ذلك في حالة انك تريد في اي وقت وفي اي مكان في برنامجك ان تغلق اي نموذج مفتوح وتقوم بفتح نموذج معين .. فمثلاً تضع الحدث التالي Call AllForms ثم تقوم بوضع السطر الذي يقوم بفتح النموذج الذي تريد DoCmd.OpenForm "form1"
رحال العمر قام بنشر أغسطس 6, 2003 الكاتب قام بنشر أغسطس 6, 2003 وعليكم السلام هلا اخي امير عاطف ماقصرت بارك الله فيك جبت الحل :lol: تسلم ياغالي ومعليش تعبتك معي اخوك رحال العمر
أبو وليد قام بنشر أغسطس 31, 2003 قام بنشر أغسطس 31, 2003 اريد عند فتح نموذج معين ان يتم اغلاق جميع النماذج وعدم امكانية فتح اي نموذج الا عندما يغلق
alali100 قام بنشر سبتمبر 1, 2003 قام بنشر سبتمبر 1, 2003 اخي امير ماذا لو كان حدث عند النقر لزر معاينة تقرير مشغول بكود معين ومثاله التالي Private Sub Preview_Click() If IsNull([من تاريخ]) Or IsNull([الي تاريخ]) Then MsgBox "يجب ادخال تاريخ البداية وتاريخ النهاية." DoCmd.GoToControl "من تاريخ" Else If [من تاريخ] > [الي تاريخ] Then MsgBox "تاريخ النهاية يجب ان يكون اكبر من تاريخ البداية." DoCmd.GoToControl "من تاريخ" Else Me.Visible = False End If End If End Sub واريد من الكود اخفاء جميع النماذج وفتح تقرير معين وعند اغلاق التقرير تعود النماذج التي كانت مفتوحه سابقاً الى الفتح اتمنى ان اكون اوضحت السؤال شاكراً لك عزيزي
امير عاطف قام بنشر سبتمبر 1, 2003 قام بنشر سبتمبر 1, 2003 اذا اردت فتح تقرير مع اغلاق كل النماذج المفتوحة بقاعدة البيانات واعادة فتح هذه النماذج بعد اغلاق التقرير قم بوضع هاتين الدالتين بوحدة نمطية عامة : الدالة الأولى : Public Function CloseForms() Dim objname As String Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentProject For Each obj In dbs.AllForms If obj.IsLoaded = True Then Dim db As DAO.Database Dim rst As DAO.Recordset Dim tbltest As DAO.TableDef Dim fldtest As DAO.Field Set db = CurrentDb Set tbltest = db.CreateTableDef("tblname") Set fldtest = tbltest.CreateField("formname", dbText) fldtest.Size = 50 tbltest.Fields.Append fldtest db.TableDefs.Append tbltest Set rst = db.OpenRecordset("tblname") While Forms.Count > 0 rst.AddNew objname = obj.Properties.Application.CurrentObjectName rst!formname = objname rst.Update obj.Properties.Application.DoCmd.Close Wend rst.Close db.Close End If Next obj End Function الدالة الثانية : Public Function OpenForms() Dim db As DAO.Database Dim rst As DAO.Recordset Set db = CurrentDb Set rst = db.OpenRecordset("tblname") rst.MoveFirst Do Until rst.EOF DoCmd.OpenForm rst!formname rst.MoveNext Loop rst.Close db.Close DoCmd.DeleteObject acTable, "tblname" End Function وقم باستداعاء الدالة الأولى عند حدث الفتح للتقرير الذي تريد لكي تقوم باغلاق جميع النماذج المفتوحه وحفظ اسماء هذه النماذج بجدول مؤقت . وقم باستدعاء الدالة الثانية عند حدث اغلاق نفس التقرير لكي تقوم بفتح النماذج التي كانت مفتوحة قبل فتح التقرير. مع خالص التحية :d 1
محمد طاهر عرفه قام بنشر سبتمبر 1, 2003 قام بنشر سبتمبر 1, 2003 فكرة الكود جميلة :d :yess: و تساؤل عن الطلب نفسه للأخ alali100 ، لماذا تريد اغلاق جميع النماذج المفتوحة ؟؟ أي لماذا لا تفتح التقرير و النموذج مفتوح ؟؟
alali100 قام بنشر سبتمبر 27, 2003 قام بنشر سبتمبر 27, 2003 و تساؤل عن الطلب نفسه للأخ alali100 ، لماذا تريد اغلاق جميع النماذج المفتوحة ؟؟ أي لماذا لا تفتح التقرير و النموذج مفتوح ؟؟ اخي العزيز محمد استكمالاً لموضوع كود لإاغلاق جميع النماذج وفتح نموذج محدد حيث انني لم استطع اضافة الرد في نفس الموضوع لنظام الصلاحيات اخي بالنسبه لسؤالك انه عندما تكون لدي عدة نماذج احدها النموذج الرئيسي وكلها طبعاً تفتح بملى الشاشه ولكن عند رغبتي بمعاينة تقرير معين من نموذج اخر فانه يفتح لي خلف النموذج الرئيسي بذلك فانني لم استطع معاينته لذلك طرحت هذا السؤال .
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.