اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

التحكم فى عدد المستخدمين والوظيفة عند الادخال


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

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

السلام عليكم 

مرفق مثال

المطلوب عند ادخال مستخدم جديد وكان عدد المستخدمين اكثر من 3 (ثلاثة) ووظيفتم محاسب تظهر رسالة تقول "لا يمكن ادخال محاسب رابع ) الا بكلمة سر وتكون كلمة السر مثلا 123

اما وظيفة الكاشير فلا تحكم فى العدد

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

عدد المستخدمين.accdb

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

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

Private Sub txtjop_BeforeUpdate(Cancel As Integer)
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim UserCount As Integer
    Dim PasswordInput As String
    
    Set db = CurrentDb()
    
    Set rs = db.OpenRecordset("SELECT COUNT(*) AS CountOfAccountants FROM tblUsers WHERE jop = 'محاسب'")
    
    UserCount = rs!CountOfAccountants
    
    If UserCount >= 3 And Me.txtjop.Value = "محاسب" Then
        PasswordInput = InputBox("لا يمكن إدخال محاسب رابع. يرجى إدخال كلمة السر:")
        
        If PasswordInput <> "123" Then
            MsgBox "كلمة السر غير صحيحة. لا يمكن إضافة محاسب رابع.", vbExclamation
            Cancel = True
        End If
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

 

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

34 دقائق مضت, ابو جودي said:

بسيطة جدا 

لقد اخطأت فى التعير عند السؤال سامحنى استاذى الفاضل وعلى فكرة ان اخذت الكود فى مكتبتى لاستعمال اخر

المطلوب هو : لا يمكن ادخال اى وظيفة فى حقل (jop) غير وظيفتين هما (محاسب ـ ومستخدم ) ولا يمكن اضافة اكثر من 3 مستخدمين

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

انا اسف جدا جدا وارجو قبول اعتذارى

جزاك الله خير

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

طيب ما الافضل تعمل مربع سرد للوظائف

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

بالنسبة لعدد المستخدمين

استخدم نفس الكود السابق ولكن بدون شروط

بذلك لما يجد العدد ٣ تظهر الرسالة

كل اللى تعمله شيل الجزء بتاع الشرط من الكود

اللى هو ده 

WHERE jop = 'محاسب'"

 

وبكده استخدم الكود مع اى مربع نص لان الشرط بقى عدد سجلات

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

15 دقائق مضت, ابو جودي said:

وبكده استخدم الكود مع اى مربع نص لان الشرط بقى عدد سجلات

لا معلش بدون استخدام مربع تحرير كيف لايسمح باضافة وظيقة غير المستخدم والمحاسب

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

Private Sub txtJob_BeforeUpdate(Cancel As Integer)
    If Me.txtJob.Value <> "محاسب" And Me.txtJob.Value <> "مستخدم" Then
         MsgBox "برجاء إدخال كلمة محاسب أو مستخدم فقط.", vbExclamation, "قيمة غير صحيحة"
        Cancel = True
        Me.txtJob.SetFocus
    End If
End Sub

 

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

والكود ده كده لعدد السجلات بقه لو انا قاهم صح 

استخدمه فى اى مكان بمزاجك
 

Private Sub txtjop_BeforeUpdate(Cancel As Integer)
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim UserCount As Integer
    Dim PasswordInput As String
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT COUNT(*) AS CountOfAccountants FROM tblUsers")
    UserCount = rs!CountOfAccountants
    
    If RecordCount >= 3 Then
        PasswordInput = InputBox("لا يمكن إدخال سجل رابع. يرجى إدخال كلمة السر:")
        
        If PasswordInput = "" Or PasswordInput <> "123" Then
            MsgBox "كلمة السر غير صحيحة. لا يمكن إضافة سجل رابع.", vbExclamation
            Cancel = True
        End If
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

 

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

استاذى الفاضل / @ابو جودي

يمكن اكون وصلت السؤال غير واضح لحضرتك

شوف استاذى هذا نموذج ادخال المستخدمين اريد فيه عند الادخال الاتى :

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

فيمكن ادخال اى عدد من المحاسبين فقط (وظيفة المحاسب غير مقيدة بعدد السجلات) ولكن وظيفة المستخدم لا يكون اكثر من 3 فقط

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

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

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

جزاك الله خير

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

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

السماح فقط باستخدام "محاسب" أو "مستخدم".

لا يمكن إدخال أكثر من 3 سجلات بوظيفة "مستخدم".

يُسمح بعدد غير محدود من سجلات "محاسب".

إذا تجاوز إجمالي عدد السجلات 3، يتم طلب كلمة المرور.

لو انا كده فهمت صح يكون الكود

Private Sub jop_BeforeUpdate(Cancel As Integer)
    If Me.jop.Value <> "محاسب" And Me.jop.Value <> "مستخدم" Then
        MsgBox "برجاء إدخال كلمة محاسب أو مستخدم فقط.", vbExclamation, "قيمة غير صحيحة"
        Cancel = True
        Exit Sub
    End If
    
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim UserCount As Integer
    Dim AccountantCount As Integer
    Dim PasswordInput As String
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT COUNT(*) AS CountOfUsers FROM tblUsers WHERE jop = 'مستخدم'")
    UserCount = rs!CountOfUsers
    rs.Close
    If Me.jop.Value = "مستخدم" And UserCount >= 3 Then
        MsgBox "لا يمكن إضافة أكثر من 3 مستخدمين بوظيفة مستخدم.", vbExclamation
        Cancel = True
        Exit Sub
    End If
    Set rs = db.OpenRecordset("SELECT COUNT(*) AS CountOfAll FROM tblUsers")
    UserCount = rs!CountOfAll
    rs.Close
    If UserCount >= 3 Then
        PasswordInput = InputBox("تجاوزت عدد السجلات 3. يرجى إدخال كلمة السر:")
        
        If PasswordInput = "" Or PasswordInput <> "123" Then
            MsgBox "كلمة السر غير صحيحة. لا يمكن إضافة سجل جديد.", vbExclamation
            Cancel = True
            Exit Sub
        End If
    End If
    Set rs = Nothing
    Set db = Nothing
End Sub

 

 

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

7 دقائق مضت, ابو جودي said:

إذا تجاوز إجمالي عدد السجلات 3، يتم طلب كلمة المرور.

اذا تجاوز عدد السجلات لما تكون الوظيفة مستخدم لا يمكن الذيادة (يعنى اكثر من 3 بوظيفة مستخدم لازم ندخل كلمة المرور)

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

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

  • أفضل إجابة

:fff:

 

Private Sub jop_BeforeUpdate(Cancel As Integer)
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim UserCount As Integer
    Dim PasswordInput As String
    
    Set db = CurrentDb()
    If Me.jop.Value <> "محاسب" And Me.jop.Value <> "مستخدم" Then
        MsgBox "برجاء إدخال كلمة محاسب أو مستخدم فقط.", vbExclamation, "قيمة غير صحيحة"
        Cancel = True
        Exit Sub
    End If
    If Me.jop.Value = "مستخدم" Then
        Set rs = db.OpenRecordset("SELECT COUNT(*) AS CountOfUsers FROM tblUsers WHERE jop = 'مستخدم'")
        UserCount = rs!CountOfUsers
        If UserCount >= 3 Then
            PasswordInput = InputBox("لقد تم إدخال 3 سجلات لمستخدمين. يرجى إدخال كلمة السر لإضافة مستخدم جديد:")
            
            If PasswordInput = "" Or PasswordInput <> "123" Then
                MsgBox "كلمة السر غير صحيحة. لا يمكن إضافة مستخدم جديد.", vbExclamation
                Cancel = True
            End If
        End If
        rs.Close
        Set rs = Nothing
    End If
    Set db = Nothing
End Sub

 

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

الله الله عليك ايوه كده انت مكنتش مركز شوية معايا 

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

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

لك كل احترام وتقدير 

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information