السلام عليكم ورحمة الله تعالى وبركاته
وانا فايت لاقيت استاذنا الجليل اخوانا @شايب قلت فى نفسى لا لابد من المرور والقاء السلام
ومشاركة مع احبائى فى الله اليكم فكرة بدون دوال وهى الاحب الى قلبى
الشرح
1- انشاء وحدة نمطية عامة
وظيفتها الاعلان عن متغيرات عامة وهى كالاتى
Public strPasswordPrompt As String
Public boolPasswordPrompt As Boolean
2- ننشئ نموذج لكلمة السر على ان يكون اسمه frmPasswordPrompt
وبه مربع النص لكتابة كلمة السر على ان يكون اسمه txtPassword
زر امر التأكيد على ان يكون اسمه btnConfirmation
ونضع الكود الاتى لزر الامر
boolPasswordPrompt = True
strPasswordPrompt = Nz(Me.txtPassword.Value)
DoCmd.Close acForm, Me.Name
وهنا نطلب منه انه يلحق القيمة True الى المتغير العام boolPasswordPrompt
وان يلحق القيمة التى سوف يتم كتابتها فى مربع النص txtPassword الى المتغير العام strPasswordPrompt
ثم يغلق النموذج
زر امر الالغاء على ان يكون اسمه btnCancel
ونضع الكود الاتى لزر الامر
boolPasswordPrompt = False
DoCmd.Close acForm, Me.Name
وهنا نطلب منه انه يلحق القيمة False الى المتغير العام boolPasswordPrompt
ثم يغلق النموذج
الان يمكن استخدام كلمة سر فى اى مكان فى النموذج اما للحذف او للطباعة او لفتح نموذج حسب رغبة المصمم
والان الية استدعاء هذا النموذج للعمل
على زر الامر المراد قتح النموذج السرى من خلاله نضع الاكواد الاتية
Const CORRECT_PASSWORD As String = "123"
Const MSG_ENTER_PASSWORD As String = "Please enter a password to proceed."
Const MSG_INCORRECT_PASSWORD As String = "Incorrect password. Operation canceled."
Const MSG_PROCEED_SUCCESSFULLY As String = "proceed successfully!"
Const MSG_OPERATION_CANCELED As String = "Operation canceled"
Do
DoCmd.OpenForm "frmPasswordPrompt", , , , , acDialog
Select Case True
Case boolPasswordPrompt
Select Case True
Case Nz(strPasswordPrompt, "") = ""
MsgBox MSG_ENTER_PASSWORD, vbExclamation
Case strPasswordPrompt <> CORRECT_PASSWORD
MsgBox MSG_INCORRECT_PASSWORD, vbExclamation
Case Else
MsgBox MSG_PROCEED_SUCCESSFULLY
DoCmd.OpenForm ChrW("1587") & ChrW("1585") & ChrW("1610")
Exit Do
End Select
Case Else
MsgBox MSG_OPERATION_CANCELED, vbExclamation
Exit Do
End Select
Loop
هذا شرح مبسط للفكرة العامة
ولكن ان اردنا العمل اكثر احترافية ومرونة من خلال الاكواد فى وحدة نمطية انظر المرفق الاتى
رقم سري.accdb