الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]تعديل على صلاحيات المستخدمين

بدأه أبو ياسر في 3 يوليو 2010 · 6 رد · 913 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

والمشكلة أن لدي أكثر من ثلاثين حقل . وهذا امر مرهق فيما لو كان التبديل شبه يومي أو اسبوعي .

المطلوب : أريد طريقة مختصرة أو أمر واحد لاعطاء المدير كافة الصلاحيات

المثال المرفق مختصر

الشكر مقدما ،،،

db3.rar

#2

من جودة واجهة المستخدم أن تتوفر فيه وسائل لتسهيل واختصار الإدخال، ومن أمثلة ذلك أن تتوفر ميزة (اختيار الكل)، عند وجود قوائم طويلة للاختيار، لأن المستخدم يستطيع بضغطة واحدة أن يختار عدداً كبيراً من البنود، حتى لو لم يكن يريد اختيار الكل بالفعل، بل أكثر البنود، لأنه يستطيع بعد اختيار جميع البنود أن يستبعد القليل، ويبقي الأكثر، فيوفر وقتاً وجهداً...

في حالة عدة حقول، يمكن برمجياً توفير هذه الميزة بالدوران على جميع عناصر تحكم النموذج (هذه تمثل عادة حقول سجل واحد في الجدول)، ومعالجة هذه الحقول بالشكل المناسب. مثلاً، في حالة وجود عدد كبير من مربعات الاختيار، يمكن عمل التالي:

1. الدوران على جميع عناصر التحكم في النموذج واحداً واحداً.

2. اختبار كل عنصر: هل هو مربع اختيار؟

3. في حالة تحقق الشرط، تعيين قيمته إلى : true.

من أجل الخطوة الأولى، نستطيع الرجوع إلى خاصية من خصائص النموذج تدعى Controls، وهي مجموعة كل عناصر النموذج، مع استخدام عبارة التكرار الخاصة بالكائنات For each.

من أجل الخطوة الثانية، نستطيع اختبار الخاصية ControlType لكل عنصر على حدة؛ هذه الخاصية تعيد نوع العنصر (مثلاً، مربع نص أو مربع اختيار). من فضلك، راجع هذه الخاصية في ملفات المساعدة، لمعرفة القيم المختلفة الممكنة.

من أجل الخطوة الثالثة، يمكن تعيين الخاصية value للعنصر المطلوب إلى القيمة True.

فيما يلي خلاصة ذلك:

Private Sub cmdAll_Click()
    Dim ctl As Control

    For Each ctl In Me.Controls
        If ctl.ControlType = acCheckBox Then
            ctl.Value = True
        End If
    Next ctl
End Sub

الكود في حدث نقر زر، والملف المرفق يوضح الفكرة، والله أعلم.

db3.rar

#3

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

طبعا هذا في ما يخص الحقول في السجل الواحد .

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

اكرر شكري ،،، دمت ذخرا ونبراسا .

#4

شكرا على المثال ارائع

الله يوفقك

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

Function fdo(i As Integer)

Dim db As Database

Dim myset As Recordset

Select Case i

Case 100

X = MsgBox("هل تريد الخروج من البرنامج", 4 + 32 + 256)

If X = vbYes Then

DoCmd.Quit

End If

Exit Function

End Select

Set db = CurrentDb

Set myset = db.OpenRecordset("tblControl", dbOpenDynaset)

myset.FindFirst "userId = " & guserId & " and MenuNo =" & i

If myset.NoMatch Then

MsgBox "ليس لديك صلاحية الدخول"

Exit Function

Else

gQUR = myset!QUR

gADD = myset!ADD

gDEL = myset!DEL

gUPD = myset!UPD

End If

Select Case i

Case 1

DoCmd.OpenForm "frm1"

Case 2

DoCmd.OpenForm "frm2"

Case 3

DoCmd.OpenForm "frm3"

Case 4

DoCmd.OpenForm "frm4"

Case 5

DoCmd.OpenForm "frm5"

Case 100

DoCmd.Quit

حاولت ابحث عن حقل بهذا الاسم بس ما حصلت ... هل هو حقل فعلا ام ماذا ؟

End Select

#5

حاولت ابحث عن حقل بهذا الاسم في الجداول في الملف المرفق بس ما حصلت ... هل هو حقل فعلا ام ماذا ؟

#6

للرفع ....

#7

هذا ليس حقلا في نموذج

انما هو متغبر تم الاعلان عنه

انظر الى الوحدة النمطية

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…