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

كيف نفعل خانة الاختيار فى الفرعى بناءا على خانة اختيار فى الرئيسى


الحلبي
إذهب إلى أفضل إجابة Solved by jjafferr,

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

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

مرفق مثال صغير

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

وطبعا عند الغاء هذه الخانة تلغى جميع خانات النموذج الفرعى

تفعيل خانة الاختيار.accdb

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

في 28‏/6‏/2023 at 16:39, الحلبي said:

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

خلينا نفتح الباب ربما يكون فاتحة خير وتجد الاجابة من الاساتذة والخبراء

في خانة اللختيار الاولى Check25 ضع الامر التالية

Dim rs  As DAO.Recordset
        Set rs = Me.Subformusers.Form.RecordsetClone
        rs.MoveFirst
        While Not rs.EOF
        rs.Edit
        If Me.Check25 = True Then
        rs!canopen.Value = True
        Else
        rs!canopen.Value = False
        End If
        rs.Update
        rs.MoveNext
        Wend
        rs.Close

 

هذا الامر سيعمل مع خانة الاختيار الاولى مما يتطلب تكرار الامر لبقية خانات الاختيار مع تغيير اسماء خانات الاختيار وهو عمل غير صحيح

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

ولكن كما اشرت في بداية مشاركتي هو فتح باب او بمعنى ادق تحريك للمياه


أَعْمِلْ لِرِزْقِكَ كُلَّ آلـهْ *** لاَ تَقْعُدَنَّ بِكُلِّ حَـالَـهْ

وَانْهَضْ بِكُلِّ عَظِـيَمةٍ *** فَالمَرْءُ يَعْجِزُ لاَ مَحَالَهْ

شايب 🌹

 

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

منذ ساعه, شايب said:

ولكن كما اشرت في بداية مشاركتي هو فتح باب او بمعنى ادق تحريك للمياه

الله يفتح عليك استاذنا ومعملنا الغالى (بدون ذكر اسماء ) والحبيب الغالى 

لعله تكون فتحة خير على الاخوان وانا منتظر الباقى لكى يتم الكود وتنتنهى هذه المشكلة

جزاك الله كل خير على ما تقدمه لنا وبارك الله فيك

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

ايش رايك بهذا الكود على الطاير:

Dim rs  As DAO.Recordset
        Set rs = Me.Subformusers.Form.RecordsetClone
if rs.recordcount=0 then
    rs.addnew
  	
  		'هنا نضيف السجلات
  
    rs.update

else
        rs.MoveFirst
        While Not rs.EOF
        rs.Edit
        If Me.Check25 = True Then
        rs!canopen.Value = True
        Else
        rs!canopen.Value = False
        End If
        rs.Update
        rs.MoveNext
        Wend
end if
        rs.Close

 

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

19 دقائق مضت, jjafferr said:

ايش رايك بهذا الكود على الطاير:

لا اعلم الحديث موجه لي او لاخي حلبي

تمام

ولكني افضل ان يكون الاضافة منفصلة

وبالنسبة لتنشيط خانات الاختيار جميعا يكون عادة لمدير النظام

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

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

 

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

1 ساعه مضت, شايب said:

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

كلامك استاذى سليم جدا 

طيب كيف نجعل لمسئول النظام فقط التحكم فى الصلاحيات وحده فى اربع خانات اختيار وليكن مسئول النظام هو "المدير"

2 ساعات مضت, jjafferr said:

لمسألة يجب ان تبدأ بالحاق في اول مرة ، ثم تحديث في المرات التالية

استاذنا الكبير اعتقد اننا نحتاج الى 4 (اربعة) استعلام تحديث فقط دون الالحاق 

بارك الله فيكم جميعا ونصل للحل معا

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

11 ساعات مضت, الحلبي said:

4 (اربعة) استعلام تحديث فقط دون الالحاق

همممم

اذا جاءك مستخدم جديد ، وليس له سجلات اصلا ، فهنا ستحتاج الى استعلام الحاق (لأول مرة فقط) 🙂

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

46 دقائق مضت, jjafferr said:

وليس له سجلات اصلا ، فهنا ستحتاج الى استعلام الحاق (لأول مرة فقط)

لذا ولذا فقط

اكسس قاعدة بيانات صغيرة بعدد مستخدمين محدود وحتى لو اعلنت مايكروسوفت ان عدد المستخدمين 255 مستخدم متزامن 

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

وبناء عليه ممكن عمل الصلاحيات عن طريق اختيار الشاشة والصلاحية بشكل يدوي والسبب ان عدد المستخدمين قليل

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

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

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

شايب

 

مزااارع.PNG

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

3 ساعات مضت, شايب said:

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

عمل واضح ، ومرتب ، وجميل 👍

 

بتوسيع الكود الاعلاه ، نحصل على :

Function chk_De_Select(ctl As Control)

    If Len(Me.X & "") = 0 Then
        MsgBox "رجاء اختيار اسم المستخدم"
        Me.X.SetFocus
        Me.X.Dropdown
        
        GoTo Exit_chk_De_Select
    End If
    
    
    Dim rs  As DAO.Recordset
    Dim ctl_N As String
    
Try_Again:

    Set rs = Me.Subformusers.Form.RecordsetClone

    ctl_N = Replace(ctl.Name, "chk_", "")
    
    If rs.RecordCount = 0 Then
        
        DoCmd.SetWarnings False
            DoCmd.OpenQuery "qry_Append_Forms"
        DoCmd.SetWarnings True
        Me.Requery
        GoTo Try_Again
        
    Else
    
        rs.MoveFirst
        While Not rs.EOF
            rs.Edit
                
                If ctl.Value = True Then
                    rs(ctl_N).Value = True
                Else
                    rs(ctl_N).Value = False
                End If
                    
                rs.Update
            rs.MoveNext
        Wend
        
    End If
        
        
Exit_chk_De_Select:

    
End Function

 

ونناديه من اي من المربعات هكذا (لاحظ اسماء المربعات لتتماشى مع اسماء الحقول) :

Private Sub chk_canAdd_AfterUpdate()

    Call chk_De_Select(Screen.ActiveControl)
End Sub

Private Sub chk_candelete_AfterUpdate()

    Call chk_De_Select(Screen.ActiveControl)
End Sub

Private Sub chk_canedit_AfterUpdate()

    Call chk_De_Select(Screen.ActiveControl)
End Sub

Private Sub chk_canopen_AfterUpdate()

    Call chk_De_Select(Screen.ActiveControl)
End Sub

 

وهذا استعلام الالحاق :

image.png.e5b7643c8f46ebdf67be897b1d4ec9d5.png

 

وللمستخدم الجديد ، انقر على اي من المربعات الاربعة ، واستمر من هناك 🙂

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

 

ولكن نموذج الشايب لا يُعلى عليه 🙂

 

جعفر

1565.تفعيل خانة الاختيار.accdb.zip

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

36 دقائق مضت, jjafferr said:

بتوسيع الكود الاعلاه

هههههه

18 ساعات مضت, شايب said:

ولكن كما اشرت في بداية مشاركتي هو فتح باب او بمعنى ادق تحريك للمياه

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

ورزقك الله فتح بوابات وجريان انهر

عمل رائع استاذنا وكما اشرت في اول مشاركة بدون الحاجة الى تكرار الامر

18 ساعات مضت, شايب said:

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

والحقيقة اتراجع عن قولي السابق "ولكني افضل ان يكون الاضافة منفصلة"

نعم فكرتكم افضل واسهل

شايب🌹

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

6 ساعات مضت, jjafferr said:

اذا جاءك مستخدم جديد ، وليس له سجلات اصلا ، فهنا ستحتاج الى استعلام الحاق (لأول مرة فقط)

كلام صح استاذنا ولكن انا عامل استعلام الالحاق هذا فى زر لوحدة 

 

1 ساعه مضت, شايب said:

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

ورزقك الله فتح بوابات وجريان انهر

طيب استاذى العزيز كيف التطبيق على مثالى الاول

ارجو من حضرتك او الاستاذ / جعفر التطبيق على المثال

جزاكم الله كل خير

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

1 ساعه مضت, الحلبي said:

طيب استاذى العزيز كيف التطبيق على مثالى الاول

هذا مثالك ، مع بعض التعديل ، فيمكنك استعماله بدل مرفقك 🙂

 

1 ساعه مضت, الحلبي said:

كلام صح استاذنا ولكن انا عامل استعلام الالحاق هذا فى زر لوحدة

يا سلام ، وتاركني والشايب نتناوش 😁

 

 

2 ساعات مضت, شايب said:

طلبنا لك فتح باب وتحريك للمياه

في الواقع وقفت على هذا الموضوع اكثر من مرة ، ولكن مشاركتك فتحت باب الاجابة بطولها وعرضها ، شكرا لك 🙂

 

جعفر

 

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

3 ساعات مضت, jjafferr said:

ولكن مشاركتك فتحت باب الاجابة بطولها وعرضها ، شكرا لك

الاخ شايب يقول : الشكر لله استاذي ثم لكم فانتم اساتذتنا ومنكم تعلمنا الكثير 🌹

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

 

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

17 ساعات مضت, jjafferr said:

هذا مثالك ، مع بعض التعديل ، فيمكنك استعماله بدل مرفقك 🙂

استاذ جعفر لا تؤخذنى 

اين هذا المثال الذى به الحل معلش انا لم اعثر عليه

جزاكم الله كل خير

14 ساعات مضت, شايب said:

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

اشكرك استاذى ومعلمى حضرتك تستاهل كل خير

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

  • أفضل إجابة

دكتور حلبي ، الظاهر اننا مو فاهمين بعض !!

 

هذا هو المرفق مرة اخرى.

العمل تم على الكائنات التي عليها الاسهم ، فانقلها الى برنامجك ، اما بقية الكائنات ، فلم اعمل عليها اي تغيير

image.png.e0a65b97b154935bc302f22ad3dcea71.png

 

1565.تفعيل خانة الاختيار.accdb.zip

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

4 ساعات مضت, jjafferr said:

العمل تم على الكائنات التي عليها الاسهم ، فانقلها الى برنامجك ، اما بقية الكائنات ، فلم اعمل عليها اي تغيير

 

اشكرك استاذى الكبير نقلتها الى برنامجى وكل شئ تمام

بس انا مصمم على ان حضرتك لم ترسل هذا المرفق من قبل  ولا اعرف سبب عدم ظهوره عندى هل هو من اللاب توب تبعى ام من المنتدى

عموما انا شاكر لحضرتك ويارب يارب لا يحرمنا من افكارك وحل المشاكل

رحم الله والديك وبارك الله فيك ورزقك كثيرا

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

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