با سلام .
در این یادداشت روش غیرفعال کردن دکمه Shift به هنگام باز شدن فایلهای اکسس را توضیح خواهم داد . در ابتدا باید مقدمه ای را عنوان کنم.
مقدمه مطلب زیر در زمینه افزایش امنیت سیستم ها است. نکته ای که در زمینه امنیت هر نوع سیستمی باید به آن توجه داشت اینست که بطور کلی امنیت یک امر نسبی است . بعبارت دیگر یک راه حل امنیتی ، قطعا جلوی بسیاری از حملات علیه سیستم را خواهد گرفت ولی هیچگاه بطور کامل حملات را خنثی نخواهد کرد و همیشه حفره های امنیتی وجود خواهند داشت . در یادداشت قبل گفتیم که به هنگام باز شدن فایلهای اکسس، Startup اجراء می شود . به کمک گزینه های Startup می توانیم از دسترسی کاربران به محیط طراحی برنامه جلوگیری کنیم . ولی همانطور که قبلا گفته شد میکرو سافت با انگیزه ایجاد سیستم امنیتی چند مرحله ای یک روش ضد امنیتی برای آن ایجاد کرده است و کاربران برنامه ما می توانند با پایین نگه داشتن دکمه Shift از اجراء Startup جلوگیری کنند و وارد محیط طراحی شوند . حال اگر بخواهیم دکمه شیفت را غیر فعال کنیم تا کسی نتواند وارد محیط طراحی شود باید به این طریق عمل کرد :
استفاده از خاصیت AllowByPassKey خاصیت AllowByPassKey یکی از خواص شیء Database است که: اگر مقدار آن True باشد دکمه شیفت فعال است . و اگر مقدار آن False باشد دکمه شیفت غیر فعال است .
این خاصیت عملا در لیست خواص یک Database نیست و باید آنرا فقط برای اولین بار ایجاد (Create) کرد . بعد از ایجاد آن می توان مقدار آنرا False یا True کرد .
تذکر : حتما یک کپی از فایل خودتان قبل از اجراء این برنامه بردارید چون ممکن است دیگر نتوانید وارد محیط برنامه خودتان شوید . من هم با عرض معذرت وقت پاسخگویی به ایمیل های دوستان را ندارم و دچار مشکل خواهید شد.
سه دکمه روی یک فرم مطابق شکل بالا ایجاد کنید و کدهای زیر را در آن بنویسد. (نمایش کدهای نوشته شده مناسب نیست ولی اگر آنرا در حافظه کپی کنید و در ماجول فرمتان کپی کند بدرستی تمایش داده می شود .)
'برای اولین دفعه : Private Sub Create_Click() On Error GoTo Er
Dim db As Database Dim prp As Property Set db = CurrentDb Set prp = db.CreateProperty("allowbypasskey", dbBoolean, False) db.Properties.Append prp db.Close
Ex: Exit Sub Er: If Err.Number = 3367 Then MsgBox "این خاصیت ایجاد شده و لازم نیست مجددا ایجاد شود" End If Resume Ex
End Sub
'جهت غیر فعال کردن شیفت Private Sub ShiftNo_Click() Dim db As Database Set db = CurrentDb db.Properties("allowbypasskey") = False db.Close End Sub
'جهت فعال کردن شیفت Private Sub ShiftOk_Click() Dim db As Database Set db = CurrentDb db.Properties("allowbypasskey") = True db.Close End Sub
تا بعد ... در پناه حق |