PDA

View Full Version : سطح دسترسی



قله بلند
جمعه 09 فروردین 1387, 18:16 عصر
با سلام
سوالی در مورد گذاردن سطح دسترسی برای ورود به فرم ها دارم.
روی فرمی از دو textbox یکی با نام "نام کاربری" و دیگری با نام "رمز عبور" استفاده کرده ام. جدولی نیز با نام User_Pass دارم که نام های کاربری و رمزهای عبور در این جدول قرار دارند. وقتی کاربر ، نام کاربری و رمز عبور خود را در این دو مکان وارد می کند ، با فشردن دکمه "ورود" در صورت درست بودن به صفحه مورد نظر و در صورت اشتباه بودن پیغام صادرمی کند.


من این برنامه را در حال استفاده از select case textx نوشته ام و پاسخ نیز گرفته ام ولی اگر بخواهم مکانی برای ویرایش رمز به کاربر اختصاص دهم ، دیگر از رمز مورد نظر کاربر اطلاعی ندارم تا بر اساس آن، کد این کلید را بنویسم. در واقع کد باید حالت عمومی پیدا کند تا کاربر هر چه وارد کرد ، جستجو انجام شود و نتیجه نیز تولید شود.
کدی را که از select case textx استفاده می کند به قرار زیر است:


Private Sub Enter _Click()
Me.Text13.SetFocus
Select Case Text13
Case "c
Me.Text15.SetFocus
Select Case Text15
Case "3"
DoCmd.OpenForm "Admin_Transaction"
DoCmd.Close acForm, "Access_Form"
Case Else
MsgBox "Invalid Password"
Text15.Text = ""
End Select
Case Else
MsgBox "Invalid UserName"
Text13.Text = ""
End Select
End Sub



با وجود این کد ، برنامه نویس باید رمزها را بداند تا تکلیف case ها مشخص شود ولی این امر مطلوب نیست و برنامه را از حالت عمومی خارج می کند. درباره این موضوع زیاد فکر کردم و کدهای مختلفی نوشتم ولی به نتیجه نرسیدم.
به نظر دوستان باید چه تغییری اعمال کرد؟
با تشکر

مهدی قربانی
یک شنبه 11 فروردین 1387, 03:10 صبح
سلام
دوست عزیز این نمونه رو ببینید خواسته شما فکر میکنم در این مثال اجرا شده البته نه با Select Case بلکه با استفاده از تابع Dlookup و مشکل تغییر کلمه عبور توسط شما در این روش مرتفع شده .

مهدی قربانی
شنبه 17 فروردین 1387, 00:07 صبح
سلام
دوست عزیز نفرمودید نمونه فوق بدرد خورد یا نه !

قله بلند
شنبه 17 فروردین 1387, 18:01 عصر
با سلام و تشکر فراوان
بسیار مفید بود و همزمان به سه سوال من پاسخ داد ولی در کدها ،مشکلی منطقی وجود دارد که در صدد رفع ان هستم.بعد از رفع آن ، نمونه واقعا خوب شما را همراه با تصحیح در همین مکان قرار می دهم تا باتایید نهایی ، این تاپیک به عنوان راه حل انتخاب شود.
باز هم سپاسگزاری می کنم.

قله بلند
شنبه 17 فروردین 1387, 21:22 عصر
با سلام و تشکر دوباره
در فایلی که به این پاسخ ضمیمه کردم ، یک مشکل ظریف منطقی را حل نمودم به این صورت که:
قبل از تصحیح : در فرم Start up وقتی نام کاربری را ali و پسورد را 123456 انتخاب می کردید ، فرم بعدی باز می شد در صورتی که این دو (با وجود اینکه در پایگاه داده موجود هستند) دو مقوله جدا از هم هستند. این مشکل تصحیح شده است.
بعد از تصحیح فرم start up وقبل از تصحیح فرم ویرایش رمز: هنگام ویرایش رمز نیز به همین مشکل بر خورد می کنیم یعنی درست است که با نام و پسورد واقعی و درست ali وارد این فرم می شویم ولی می توانیم پسورد مهدی را به عنوان پسورد فعلی در نظر بگیریم و عمل ویرایش را انجام دهیم و همه چیز نیز درست انجام می شود(با وجود اینکه پسورد ali ویرایش می شود) ولی عملا ما دچار اشتباه شده ایم. این مشکل نیز رفع شده است.
.ضمن تشکر دوباره ، از شما درخواست می کنم که فایل ضمیمه را نگاه کنید و نظرتان را اعلام کنید تا این تاپیک به عنوان مساله حل شده به پایان برسد