PDA

View Full Version : ایجاد فرم لاگین با سطح دسترسی مختلف



taherimohsen
پنج شنبه 22 خرداد 1399, 23:35 عصر
سلام و خسته نباشید
من میخوام یه شرط رو دو سه بار چک کنم و هر سری نسبت به اتفاقاتی که افتاده یه پیام خاصی نمایش بدمواسه فروم ورود و لاگین. مدیریت کاربران وقتی کاربری که سطح یا همون لول کاربریش 1 قرار میدیم توی کد و میره کد 1 رو چک میکنه همونم میتونه توی مدیریت کاربران مدیریت کنه در صورتی که نباید اونو نشون بده چون من این کار رو کردم و سطح مدیریتش رو گذاشتم روی کاربر و سیو شد و نتونستم دیگه وارد بشم تا به صورت دستی رفتم و سطح رو توی جدول مربوطه مدیریت کردمبخاطر همین یه جدول دیگه ساختم برای فقط ادمین که از اون بگیره اطلاعات مدیریتی رو و فرم مدیریت کاربران رو با کاربرایی که توی جدول کاربران هست باز کنهکد که نوشتم فرم رو در صورتی که admin با پسورد مشخص خودش مدیریت کاربران رو بزنه باز میشه فرمدر صورتی که پسورد اشتباه بزنه تیکه دومش کار نمیکنه و هیچ چیزی بهش مبنی بر اینکه پسورد اشتباه هست نمیدهدر صورتی که کاربر نام کاربری و رمز عبور خودش رو وارد کنه و صحیح باشه چون توی جدول مربوط به ادمین نیست میگه اجازه دسترسی نداری و باز هم اگه اشتباه وارد کنه چیزی رو کد مربوط به اون قسمت اجرا نمیشه.در صورتی هم که اطلاعات هر دو تا اشتباه وارد بشه بازم اتفاقی نمی افته و نمیگه نام کاربری یا رمز عبور اشتباه هست.چیکار باید بکنم کجاش رو اشتباه میزنم؟فایل اصلی رو واستون فرستادم کاملش رو ممنون میشم اگه چک کنید بهم بگین باید چیکار کنم دقیقا

Private Sub btManageUsers_Click()Dim adminPassword As String
Dim userPassword As String
Dim userNameUser As String
On Error Resume Next
userNameUser = DLookup(\”username\”, \”tblusers\”, \”[username]=[txtuser]\”)
userPassword = DLookup(\”userpassword\”, \”tblusers\”, \”[username]=[txtuser]\”)
adminPassword = DLookup(\”adminPassword\”, \”tblAdminUser\”, \”[adminUserName]=[txtuser]\”)
If txtPass = adminPassword Then
If DLookup(\”adminLevel\”, \”tblAdminUser\”, \”[adminUserName]=[txtuser]\”) = 1 And adminUsername = Me.txtuser Then
DoCmd.OpenForm \”frmManageUsers\”
Me.lblErrors.Visible = FalseElse
Me.lblErrors.Visible = True
Me.lblErrors.Caption = \”نام کاربری یا رمز عبور اشتباه است.\”
Me.lblErrors.ForeColor = vbRed
End If
End If
If txtPass = userPassword Then
If DLookup(\”userLevel\”, \”tblusers\”, \”[username]=[txtuser]\”) > 0 And Me.txtuser = userNameUser Then
Me.lblErrors.Visible = True
Me.lblErrors.Caption = \”شما دسترسی لازم برای ورود را ندارید.\”
Me.lblErrors.ForeColor = vbRed
Else
Me.lblErrors.Visible = True
Me.lblErrors.Caption = \”نام کاربری یا رمز عبور اشتباه است.\”
Me.lblErrors.ForeColor = vbRed
End If
End If
End Sub

اینم خود پروژه است اگه کسی بتونه کمک کنه ممنون میشم
http://uupload.ir/view/4vuf_new_microsoft_access_database.zip/

somayeh1361
یک شنبه 01 تیر 1399, 23:13 عصر
سلام از این برنامه استفاده کنید بعد می تونید با دستورات شرطی دسترسی بدید که اگر کد دسترسی 1 باشه فلان فرم دیده بشه یا نه

shhyr1641
یک شنبه 23 مهر 1402, 18:44 عصر
با سلام
پیرو راهنمایی عالی دوستان در همین سایت تونستم فرم لاگین طراحی کنم و به محض ورود نیز نام کاربری لاگین شده در فرم Main نمایش داده میشه، اما مشکلات زیر برام حل نشده.
اول اینکه بتونم برای هر کاربر تعریف کنم که چه کارهایی رو بتونه انجام بده یا نده(ماننده جدید، ویرایش، حذف و...)// درباره این مورد روش ها و کدهای متفاوتی رو دیدم که نمی دونم کدوم درسته. بعضی هاشون از درک بنده خارجه//
دوم اینکه فرض کنید هر کاربر اطلاعاتی رو ثبت میکنه. میخوام در بخش گزارشات(Query)، برای ادمین قابلیت نمایش اطلاعات هر کاربر وجود داشته باشه، اما برای سایرین فقط اطلاعات کاربر لاگین شده نمایش داده بشه.
سوم اینکه در فرم ورود اطلاعات، فیلدی برای انتخاب کاربر نیاز نباشه و با لاگین کردن هر کاربر، نام کاربری وی در تمامی بخش ها استفاده بشه.
چهارم اینکه کلیه عملیات کاربران هم در جدولی ذخیره بشه.

بابت تمامی موارد فوق مطمئن هستم که در این سایت صحبت شده و اظهارنظر های زیادی هم شده، اما خواهشمندم آخرین و دقیق ترین راهنمایی ها را برای بنده ارسال بفرمایید.
با تشکر فراوان