اذهب الي المحتوي
أوفيسنا

تعديل الحدث عند الفتح أو أين الخطأ


AboBahaa
إذهب إلى أفضل إجابة Solved by ابو جودي,

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته 

حبيت من الاخوة الاعزاء مراجعة الحدثين التالينن ( عند الفتح ) للنموذج بيعطيني خطأ 

المقصود منهما الحدث الاول يفتح النوذج في وضع كامل الشاشة وأيضا يكون النموذج خالي من اية بيانات 

الحدث الثاني وضعته لكي لا يقوم أحد بالتعديل على النموذج او حذف او اضافة بيانات 

المطلوب كيف أربط بين الحدثين أو مراجعة الخطأ به 

Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
DoCmd.GoToRecord , , acNewRec


Dim SF As Control
With myUser
   If .GetAbility(Me.Name, OpenForm) Then
      Me.AllowAdditions = .GetAbility(Me.Name, Add)
      Me.AllowEdits = .GetAbility(Me.Name, Edit)
      Me.AllowDeletions = .GetAbility(Me.Name, Del)
      For Each SF In Me.Controls
        If SF.ControlType = acSubform Then
          SF.Form.AllowEdits = Me.AllowEdits
        SF.Form.AllowDeletions = Me.AllowDeletions
        End If
      Next
   Else
      DoCmd.OpenForm "masgBox"
      Cancel = True
   End If
End With
 

End Sub

Untitled.png

رابط هذا التعليق
شارك

أخي الكريم أبو عبدالله الحلوانى

تفضل في هذا السطر الموضح بالصورة 

Untitled.jpg

أخي الكريم أبو عبدالله الحلوانى

تفضل في هذا السطر الموضح بالصورة 

رابط هذا التعليق
شارك

في ٢٠‏/١٠‏/٢٠١٩ at 22:11, AboBahaa said:

السلام عليكم ورحمة الله وبركاته 

حبيت من الاخوة الاعزاء مراجعة الحدثين التالينن ( عند الفتح ) للنموذج بيعطيني خطأ 

المقصود منهما الحدث الاول يفتح النوذج في وضع كامل الشاشة وأيضا يكون النموذج خالي من اية بيانات 

الحدث الثاني وضعته لكي لا يقوم أحد بالتعديل على النموذج او حذف او اضافة بيانات 

المطلوب كيف أربط بين الحدثين أو مراجعة الخطأ به 

Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
DoCmd.GoToRecord , , acNewRec


Dim SF As Control
With myUser
   If .GetAbility(Me.Name, OpenForm) Then
      Me.AllowAdditions = .GetAbility(Me.Name, Add)
      Me.AllowEdits = .GetAbility(Me.Name, Edit)
      Me.AllowDeletions = .GetAbility(Me.Name, Del)
      For Each SF In Me.Controls
        If SF.ControlType = acSubform Then
          SF.Form.AllowEdits = Me.AllowEdits
        SF.Form.AllowDeletions = Me.AllowDeletions
        End If
      Next
   Else
      DoCmd.OpenForm "masgBox"
      Cancel = True
   End If
End With
 

End Sub

Untitled.png

اين مرفقكم الكريم يا ابا بهاء

سهل علينا ليسهل الله لك ان شاء الله

  • Thanks 1
رابط هذا التعليق
شارك

هلا بالغالي ابا جودى والله حجم القاعدة عندي يتعدى 70 ميجابيت صعب جدا حتى ارفق نموذج إذا حبيت أعمل مثال هيكون صعب عليا هياخد وقت مني كثير لارتباط  النموذج إذا حبيت أعمله كمثال بجداول واستعلامات كثيرة جدا  ,اعرف جيدا وفق ما تعلمت من هذا المنتدى العظيم من الاخوة الكرام ومنك أن المثال هو الطريق الامثل لايجاد نتيجة سريعة

فدعني أشرح ما اريده من الكود

الكود أستخدمه عند فتح النموذج من جانب صلاحيات المستخدمين يفتح المستخدم الذي ليس له صلاحيات للتعديل على النموذج النموذذج فيفتح له النموذج على سجل جديد كما هو معتاد على النموذج ثم هناك زر استعلام يستعلم مثلا أو يبحث على اسم فيظهر له الاسم لكنه لا يستطيع التعديل عليه عندما وضعت الحدثان عند ا الفتح بالحدث تأتي هه الرسالة كرسالة خطأ للمستخدم الذي منع عنه التعديل على النموذج بينما لا يحدث ذلك للمستخدم الذي له صلاحية للتعديل  

إذا ما فيه حل فأن منتظر الفرج من الله وشكرا لكم 

أخي الكريم  أبو عبدالله الحلوانى  صعب جدا اتنازل على حذف العلاقة الخطأ  لك جزيل الشكر لاهتمامك بالرد 

تم تعديل بواسطه AboBahaa
رابط هذا التعليق
شارك

السلام عليكم

بعد اذن اساتذتى

الاخ الفاضل ابو بهاء طالما ان النموذج خاص بالتعديل والحذف بناء على صلاحيات المستخدم اذن ممكن تضع داله تجلب صلاحيه المستخدم من جدول الصلاحيات بناء على اسم المستخدم او كوده اللذى قام بالدخول من نموذج الدخول فى حدث فتح النموذج اذا كان مسموح له يفتح له النموذج وان كان لا تخرج رساله له ليس مسموح لك بفتح هذا النموذج

والله اعلى واعلم

تقبل تحياتى وبالتوفيق

  • Thanks 1
رابط هذا التعليق
شارك

أخي الكريم أحمد الفلاحجى شكرا لك بالفعل يتم هذا لكن اذا حذفت الاول فتح على سجل جيد بيظهر للمستخدم الغير مخول بالتعديل آخر سجل تم تسجيله فإذا حذفت حدث عند الفتح هيصبح خاصية فتح على سجل جديد غير مفعله  وانا اريدها تفعيل فتح على سجل جديد مع الحدث الثاني فيصبح  من له صلاحية التعديل ومن له عدم صلاحية تعديل تفتح له على نموذج جديد وليس على اول او آخر سجل 

فهل هناك من طريقة لربط حدثين معا كما اريد 

تم تعديل بواسطه AboBahaa
رابط هذا التعليق
شارك

استاذ ابوبهاء

كيف سيظهر اخر سجل مسجل للمستخدم الغير مخول والمفروض اساسا ميفتحش النموذج لانه لا يملك صلاحيات للنموذج ده ؟

لقد احترت من كلامك

تقبل تحياتى واسال الله ان يوفقك وتجد ما تريده

  • Thanks 1
رابط هذا التعليق
شارك

هلا بأخي الكريم أحمد الفلاحجى ليست حيرة انا اعطيت للمستخدم صلاحية فتح النموذج وليس للتعديل عليه انما فتحه للبحث والاطلاع على البيانات بواسطة خاصية البحث بالنموذج  حيث يستطيع الاستعلام على البيانات لكن لا يستطيع التعديل عليها 

اذا راجعت كلامي سابقا بالشرح هتدرك اخي وضوح كلامي ليس حيرة ولا اقصد تعب الاخوة المحترمين بالعكس انا اذا بيدي اضع مثال لسرعة الحل لكن كما ذكرت سابقا الوقت وصعوبة عمل المثال لارتباط المثال بجداول واستعلامات لا حصر لها حتى اوصل ما هو المطلوب 

رابط هذا التعليق
شارك

اخى العزيز

 

وجدت مثال عندى به نظام الصلاحيات وقمت باضافه حدث فتح على سجل جديد

DoCmd.GoToRecord , , acNewRec

بعد End With

وتم الفتح جرب لديك

ومرفق المثال واليوزر والباسورد  1

وان لم يتم فاشرح ع هذا المثال لكى يستطيع اساتذتنا مساعدتك

وان شاء الله ربنا يوفقك وتجد ما تريد

تمنياتى لك وللجميع بالتوفيق

test.mdb

  • Like 1
رابط هذا التعليق
شارك

أشكرك أخي أحمد الفلاحجى بالفعل هذا النموذج ممكن يوضح المطلوب 

أستاذي ابا جودى

أستاذي أبو عبدالله الحلوانى

أستاذي essam rabea

أخواني الكرام بالمنتدى 

هذا هو المثال للتعديل عليه الخطأ يظهر مع المستخدم رقم 2 وليس المستخدم رقم 1 

المستخدم الاول 1  والباسورد 1      لا يوجد أي مشكلة مع فتح النموذج على سجل جديد لهذا المستخدم الذي له جميع الصلاحيات

المستخدم الثاني 2 والباسورد 2       عندما قمت بإعطائه صلاحية لفتح نموذج frmEmp   فقط  عند الخول  يعطي  الخطأ كما بالصورة المرفقة التي ارفقتها بالمثال 

المطلوب

عند فتح المستخدم رقم 2  للنموذج frmEmp يفتح النموذج على سجل جديد 

 

 

1.jpg

2.jpg

test2.mdb

رابط هذا التعليق
شارك

الان, AboBahaa said:

هذا هو المثال للتعديل عليه الخطأ يظهر مع المستخدم رقم 2 وليس المستخدم رقم 1 

المستخدم الاول 1  والباسورد 1      لا يوجد أي مشكلة مع فتح النموذج على سجل جديد لهذا المستخدم الذي له جميع الصلاحيات

المستخدم الثاني 2 والباسورد 2       عندما قمت بإعطائه صلاحية لفتح نموذج frmEmp   فقط  عند الخول  يعطي  الخطأ كما بالصورة المرفقة التي ارفقتها بالمثال 

المطلوب

عند فتح المستخدم رقم 2  للنموذج frmEmp يفتح النموذج على سجل جديد 

 

 

1.jpg

2.jpg

test2.mdb 652 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 0 downloads

المستخدم 1 وكلمة مرور 1 له كل الصلاحيات
المستخدم 2 وكلمة مرور 2 له الفتح فقط لا يستطيع اضافة او تعديل 
المستخدم 3 وكلمة مرور 3 له الفتح والاضافة فقط لا يستطيع التعديل

---------------------------------------------------------------------------------------------------------

قطعا لا يمكن وضع الكود 

DoCmd.GoToRecord , , acNewRec

لانك تستخدم نظام صلاحيات 

فالمستخدم الذى لم يعطى صلاحية بالاضافة ومع وجود السطر السابق لابد من حدوث المشكلة التى تعرضت لها

قممت بعض التعديلات على المرفق لسهولة استخدام كود الصلاحيات داخل زويا البرنامج ليتم استدعاءه بسطرين من الاكواد فقط

FrmAbilities (Me.Name)
If ContinueCode = False Then Exit Sub

 

 

وذلك بدلا من 


Dim SF As Control
With MyUser
   If .GetAbility(Me.Name, OpenForm) Then
      Me.AllowAdditions = .GetAbility(Me.Name, Add)
      Me.AllowEdits = .GetAbility(Me.Name, Edit)
      Me.AllowDeletions = .GetAbility(Me.Name, Del)
      For Each SF In Me.Controls
        If SF.ControlType = acSubform Then
            SF.Form.AllowAdditions = Me.AllowAdditions
            SF.Form.AllowEdits = Me.AllowEdits
            SF.Form.AllowDeletions = Me.AllowDeletions
        End If
      Next
   Else
MsgBox "عفواً " & .UserName & "      " & vbCr & vbCr & "ليس لديك الصلاحية لفتح هذا النموذج", 0 + 16 + 1572864, "نظام الصلاحيات"
      Cancel = True
   End If
End With

test2.mdb

تم تعديل بواسطه ابا جودى
رابط هذا التعليق
شارك

للاسف أستاذي ابا جودى انا اريد الحدث كما السابق  عند الفتح يفتح النموذج على سجل جديد وحضرتك بالتعديل الذي أجريته جعلت النموذج يفتح على أول سجل صحيح المستخدم  2 ما بيعرف يعدل على البيانات لكن انا اريده  يظهر له سجل جديد بالنموذج لا يوجد به أي بيانات يضطلع فقط بخاصية البحث بالنموذج على جلب البيانات الذي يريدها كذلك هذا يكون ما أصبو اليه عند فتح النموذج على سجل جديد لان المستخدم الذي له كل الصلاحيات عندما يقوم بفتح النموذج لادخال بيانات جديدة  هيظهر له اول سجل تم إدخاله و لازم يتخذ اجراء اضافة سجل جديد وأنا ما أريد ذلك ولا أطمح في ذلك فعذرا وشكرا لك 

 

  • Haha 1
رابط هذا التعليق
شارك

الان, AboBahaa said:

للاسف ابا جودى انا اريد الحدث كما السابق  عند الفتح يفتح النموذج على سجل جديد
المستخدم  2 ما بيعرف يعدل على البيانات لكن انا اريده  يظهر له سجل جديد بالنموذج لا يوجد به أي بيانات
يضطلع فقط بخاصية البحث بالنموذج على جلب البيانات الذي يريدها

اتفضل :fff:

المستخدم  2 ما بيعرف يعدل على البيانات لكن انا اريده  يظهر له سجل جديد بالنموذج لا يوجد به أي بيانات 
هذا مستحيل 

 

يضطلع فقط بخاصية البحث بالنموذج على جلب البيانات الذي يريدها
هذا ممكن وتم تنفيذه بالمرفق الاتى :wink2:

 

test2 (2).mdb

تم تعديل بواسطه ابا جودى
  • Thanks 1
رابط هذا التعليق
شارك

للاسف ابا جودى ليس هو ما اريده ال حضرتك عملته بيفتح على نموذج بحث انا ارفقت لك صورة من النموذج الموجود عندي وأريده يفتح فاضي هكذا للمستخدم 2 دون ان يعدل  وليس على نموذج بحث ما ما فعلت حضرتك

11.jpg

تم تعديل بواسطه AboBahaa
رابط هذا التعليق
شارك

الان, AboBahaa said:

للاسف ابا جودى ليس هو ما اريده ال حضرتك عملته بيفتح على نموذج بحث انا ارفقت لك صورة من النموذج الموجود عندي وأريده يفتح فاضي هكذا للمستخدم 2 دون ان يعدل 

11.jpg

هذا مستحيل لان المستخدم لم يعطى صلاحيات اضافة فكيف يفتح له سجل جديد ولكن

هناك حيلة

اضافة كائنات غير منضمة فوق الكائنات وتظهر وتختفى

رابط هذا التعليق
شارك

1 ساعه مضت, AboBahaa said:

على الرغم أخي ابا جودى انها حيلة هتاخد وقت لكثرة الضبط فيها على النموذج الخاص بي لكن بجربها 

انت تطلب شئ غير منطقي

تطلب تنفيذ شئ وضده بنفس الوقت

تطلب ان يكون احد المستخدمين غير قادر على إنشاء سجل جديد ومع ذلك تريد انشاء سجل جديد :blink:

  • Like 1
رابط هذا التعليق
شارك

أنا اسف والله أخي الكريم  ابا جودى تعبتكم أنا أحسست ذلك من خلال المتابعة انه غير منطقي  لكن أعذروني  قلت يمكن هناك من يجد لي حلا بنفس ما اطلبه وأشكركم على سعة صدركم  بجميع ردودكم وسوف أبحث عن حل آخر شكرا 

رابط هذا التعليق
شارك

في ٢٠‏/١٠‏/٢٠١٩ at 23:11, AboBahaa said:

السلام عليكم ورحمة الله وبركاته 

وعليكم السلام ورحمة الله وبركاتة

طب ممكن نعرف الهدف من الذهاب الى سجل جديد لمستخدم لايملك صلاحية الاضافة

لأن اللي المفروض يكون المستخدم الذي له صلاحية اضافة يفتح ع سجل جديد والذي لايملك صلاحية الاضافة

يفتح ع اول سجل أو أخر سجل

 

  • Like 2
رابط هذا التعليق
شارك

مرحبا بأخي kaser906 أبو محمد الهدف كما هو واضح  بالصورة في الردود السابقة للنموذج لدي مربع البحث نفسه موجود بالنموذج بالرقم المدني او بالبحث المتعدد  لكل المستخدمين ولانها قاعدة متشابكة عندي اريد من له صلاحية ومن ليس له صلاحية من المستخدمين يفتح نفس النموذج فمن له صلاحية له جميع الصلاحيات للعمل بالنموذج فتح تعديل حذف اضافة بينما من ليس له صلاحيات فيكون له صلاحية فتح النموذج فقط دون الصلاحيات الاخرى وذلك لاستخدام خاصية البحث فقط عن الحالة او الاسم داخل النموذج  وبعد جلبها بالنموذج لا يمكنه التعديل عليها باي حال من الاحوال لانه غير مخول الصلاحية 

المطلوب هو أن يفتح المستخدم رقم 2 النموذج  على سجل جديد  ويبحث داخل النموذج الا ان الاخوة جزاهم الله خير حاولو معي --- لكن يبدو انا ما قادر اوصل الهدف لكن  أأمل أن اجد أحد الاخوة عنده الحل ا

لأخ ابا جودي أعطاني مثال لكن لم يكن هو المطلوب بعد التجربة  

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information