# پایگاه‌های داده > سایر پایگاه‌های داده > Access >  تعریف کاربر با سطح دسترسی متفاوت در اکسس

## roseafarin

می خواهم برای یک بانک اطلاعاتی چند کاربر تعریف کنیم با محدودیتهای زیر
1. کاربری فقط به یک فرم خاص دسترسی داشته باشد و بتواند در فرم اطلاعات وارد کند
2. کاربر دیگری به چند فرم دسترسی داشته باشد
3. کاربر به چند فرم و پرس و جو دسترسی داشته باشد
4. یک کاربر ارشد هم داشته باشم که به تمام اشیا دسترسی داشته باشد و بتواند طراحی بانک، فرمها، پرس و جوها و ... را تغییر دهید.
با تشکر

----------


## شاپرک

از امکان جستجو ی سایت استفاده کن ....

----------


## bemilove

من یک فایل ایجاد سطح دسترسی دارم ،ومشکلات اینهاست-1- چرا وقتی پسورد را عدد 123 می زنم(برای یوزر امینی) ،ازم قبول نمی کنه(البته پسورد ش کد شده که من به 123 تعغیر دادم)---پیغامی که می آیدفونت دکمه های آن به هم ریخته است؟

----------


## farshid_mi

از یک نرم افزار پایگاه داده این انتظار می رود که بتوان در آن Security را پیاده سازی نمود اما در اکسس شما نمی توانید سطح دسترسی تعریف کنید و تنها چیزی که دارید یک password کلی روی فایل است.
این امکان به دلایلی !!!  به جای آنکه ارتقا پیدا کند - حذف شده است و در اکسس 2007 یا 2010 سطح دسترسی را نمی توان تعریف کرد.
در ضمن اینکه تکنیک های که در اکسس 2003 برای دسترسی تعریف می شد به سادگی قابل دستکاری می باشند.
(البته می توان با نوشتن صدها خط کد یک کارهایی انجام داد ولی این موضوع جزو قابلیتهای ذاتی اکسس نیست)


*** پاسخ کلی به این موضوع:
         شما در نرم افزارهای Office امنیت به معنای واقعی آن را نمی توانید پیاده سازی نمایید.

----------


## kahroba77

با سلام
اول بگم بعد جستجو اين تاپيكو زدم.
آقا من يه سري جداول دارم حدود400 تا و حدود 300 تا كاربر هم دارم .
ميخوام واسه اين تعداد جداول سطح دسترسي تعيين كنم كه كاربران وقتي وارد برنامه شدن فقط كارهايي كه مجازن انجام بدن و قابليت هاي زير رو هم داشته باشه :

1-هر كاربر مجاز باشه به جداولي كه مجازه دسترسي داشته باشه.
2- هر كاربر فقط بتونه كارهايي كه مجاز تو هر جدول انجام بده = Insert , delete و update
3-هر كاربر فقط بتونه فيلد هايي رو كه مجازه تغيير بده

واسه اين كار :
يه جدول كاربران دارم ( كد كابر ، نام كاربر ، رمز عبور ، كد پرسنلي )
يه جدول امكانات موجود در برنامه دارم ( كد امكان ، نام جدول به فارسي ، نام جدول به انگليسي )
يه جدول دارم مجوز ها ( كد كاربر ، كد امكان ، مجوزهاي ويرايشي)
( مجوز هاي ويرايشي ميتونه اين مقدارو داشته باشه=101= يعني اضافه بتونه كنه و نتونه حذف كنه و بتونه ويرايش كنه )

حالا اولا اين كاري كه كردم روش خوبيه ؟ 
دوماً واسه فيلد هام چه كار كنم ؟ 
سومآ تعداد ركورد هاي جدول مجوزهام حدود 50,000 تا ركورد ميشه ! حالا موقع Login هر دفعه اين جدول بايد واكشي بشه سرعتو نمياره پايين ؟ و راه كاري واسه كم شدن ركورد ها به نظرتون ميرسه ؟

----------


## bemilove

منهم خودم اين مشكل را دارم.....نمونه هم توسايت زياده...اما يك نفر واقعا يك برنامه كه خودش استفاده مي كند وكامل است براي نمونه بذاره.

----------


## michkadol

> منهم خودم اين مشكل را دارم.....نمونه هم توسايت زياده...اما يك نفر واقعا يك برنامه كه خودش استفاده مي كند وكامل است براي نمونه بذاره.


با سلام من هم دنبال هپین نمونه ای هستم لطفا استید یه کمکی بکنن
درسته مطالب سایت زیاده اما ناقص و به صورت مختصر توضیح داده شده 
یکی از اساتید زحمت یک نومنه رو بکشه و اماده کنه که شامل 5 یا 6 تا جدول و 7 یا 8 تا فرم و تعدادی کاربر باشه و چگونگی تعیین دسترسی رو واسه هر فرد توضیح بدن
و اینکه  کاربر محدود ،چطور به بعضی از command button داخل فرم (مثلا دکمه ویرایش یا جدید یا...) دسترسی نداشته باشن

----------


## hasanr

https://barnamenevis.org/showthread.p...7%DB%8C-%DB%8C

----------


## bemilove

کسی نبود نمونه شخصی خودش رو بذاره واسه دانلود؟

----------


## hasanr

سلام 
تو همون لینک که در پست قبلی نوشتم یکی از کاربران محترم (*id1385*) در توضیح کاملی روش خوبی رو ارایه کردن 

با اینحال روشی که شخصا بکار بردم و تو همون تاپیک هم نوشتم به نظرم کاملا ساده و کاربردیه :
- در جدول کاربران یک فیلد به نام AccessLevel از نوع Number می سازیم 
- یک فرم ورود (FormEntry) طراحی می کنیم که با گرفتن نام کاربر و رمز عبور فرم Form1 را باز کند 
- کمبو باکس نام کاربر TxtUsername  و تکست باکس رمز عبور TxtPassword  نام دارند 
سورس کمبو باکس نام کاربر Table/Query می باشد و حاوی نام کاربر و سطح دسترسی است  اما خاصیت Column Width آن را طوری نوشته ایم که کاربر فقط نام را مشاهده  کند 
column count =2
 bound column = 1
 column widths = ;0
- در فرم Form1 یک تکست باکس به نام txtCurentUserAclevelLevel داریم که می خواهیم نشان دهنده سطح دسترسی کاربر جاری باشد 
- کل صورت مسله این است:  پس از بررسی صحت نام و رمز عبور کاربر ، عدد AccessLevel را داشته باشیم و با توجه به آن برای کاربران محدودیت ایجاد کنیم 


- کد بررسی صحت نام و رمز عبور :

Private Sub CommandEnter_Click()
Set rst = CurrentDb.OpenRecordset(" select * from tblUsers where((Name='" & TxtUsername & "') and(Password='" & TxtPassword & "'))")
If rst.EOF Then
    Beep
    MsgBox " نام کاربر یا کلمه عبور اشتباه مي باشد ", vbCritical, "توجه"
Else 
 DoCmd.OpenForm "form1"

حالا قبل از دستور بسته شدن فرم ورود ، باید عدد سطح دسترسی را به Form1 منتقل کنیم 

Forms!form1!txtCurentUserAclevelLevel = Forms!formEntry!TxtUsername.Column(1)
DoCmd.Close acForm, "formEntry"


مسله تمام شد حالا فرمی داریم که در آن عدد سطح دسترسی کاربر جاری موجود است و می توان با توجه به آن محدودیتها را اعمال کرد 
این فرم باید در تمام زمان اجرای برنامه باز باشد ( می تونین این فرم رو مخفی کنین ) 

برای اعمال محدودیت هر کسی می تونه روش خودشو داشته باشه مثلا :
 در رویداد لود فرمهایمان با توجه به AccessLevel باتونهای خاصی را فعال یا غیر فعال کنیم 
یا همه باتونها دیده شوند اما در هنگام کلیک ابتدا سطح دسترسی بررسی شود و با توجه به مقدار آن ، دستور انجام بگیرد یا نگیرد

----------


## bemilove

جناب hasanr نمونه فایل هم می گذاشتی ...فیض می بردیم!!

----------


## hasanr

سلام 
 راستش الان بدجور درگیر 
https://barnamenevis.org/showthread.p...06#post1290806
 هستم 

این کدها رو از نمونه خودم کپی کردم و کاملا کار می کنن با اینحال در اولین فرصت حتما نمونه میزارم

----------


## hasanr

سلام 
نمونه آماده شده به ساده ترین شکل تهیه شده و توضیحات تکمیلی در میان کدهای برنامه ارایه شده
( رمز عبور همه کاربران 1 می باشد )

----------


## bemilove

نمونه شما من یک کم تکمیل کردم...(ممکن است اشتباه هم کرده باشم---ولی تست زدم جواب داد).فرق این نمونه اینه که از فایل شما استفاده شده و
1- tab page اضافه شده
2- ورود هر کاربر بر اساس تاریخ وزمان در یک تیبل ذخیره می گردد.
3- در صفحه ورودی اگر نام وارد نشده باشد پیغام می دهد که نام وارد نشده ،اگر پسورد وارد نشده باشد پیغام می دهد که پسورد وارد نشده.
4- یک فرم هم برای ویرایش تنظیمات کاربران به همراه عکس هم آماده کردم

مشکلی که وجود داره اینه که :
1- در فرم اصلی (f_main) نام کابر فعلی به شماره می زنه .نتونستم طوری درست کنم که نام کاربر بیاره
2- اگر بخواهیم این تکست باکس های txtcuruserو txtcuruseraclevel  از چشم کاربر مخفی شود چه کار باید کرد.
منتظر جوابم

----------


## hasanr

کیبوردم خرابه 
فرداجواب کامل میدم علی الحساب با کیبورد مجازی عرض میکنم

1- در فرم اصلی (f_main) نام کابر فعلی به شماره می زنه .نتونستم طوری درست کنم که نام کاربر بیاره
جواب : یا از تابع DLookup استفاده کنید و نام کاربر رو بدست بیارین نمونش هم تو خود برنامه هست . یا  تکست باکس txtcuruser  رو به کمبو باکس تبدیل کنین و مثل فرم وود عمل کنن  

2- اگر بخواهیم این تکست باکس های  txtcuruser و txtcuruseraclevel  از چشم کاربر مخفی شود چه کار باید کرد.
جواب :  invisible کنیدشون و برای حل خطای حاصله (عدم فوکوس پذیری شی مخفی)در کدهای باتون ورود ؛ فوکوس رو به یک شی دیگه بدین 

3- هدف این تاپیک آموزش سطح دسترسی بوده و در نمونه ارسالی بنده  سعی شده از ساده ترین و  کوتاه ترین راه استفاده بشه؛ ضمن تقدیر و تشکر بابت زحماتتون پیشنهاد می کنم همه اضافات مانند تاریخ شمسی و ... رو حذف کنین . خود حقیر کلی وقت گذاشتم تا بفهمم کدوم قسمت کدهاتون مربوط به حواشی هست
نمونه کامل شدتون رو هم میتونین به عنوان یک برنامه جامع در تاپیک دیتا بیسها و برنامه های کاربردی بزارین تا همه استفاده کنن
ممنون

----------


## bemilove

نمونه را برداشتم..تا بعد.(به نظرت بهتر نیست چون ما یک کم روی امنیت کار می کنیم...تاریخچه  ورود ها را هم داشته باشیم)گرچه امنیت در اکسس بالا نیست...ولی حداقل برای بعضی از مراکز بدرد می خورد.

----------


## hasanr

سلام 
اتفاقا تاریخچه ورود به نظرم جالب و مفید بود و کاربردی ؛

 عرضم این بود که اضافاتی مانند تاریخ شمسی و فارسی کردن پیغتم خطا و  ... که محیط برنامه و کد نویسی رو شلوغ کرده بهتره نباشن ضمن اینکه کلیت کارتون درست بود و همچنان معتقدم بهتره با تکمیلتر کردنش یه نمونه خوب و جامع از برنامه اکسس رو در سایت قرار بدین 
موفق باشید

----------


## michkadol

> نمونه را برداشتم..تا بعد.(به نظرت بهتر نیست چون ما یک کم روی امنیت کار می کنیم...تاریخچه ورود ها را هم داشته باشیم)گرچه امنیت در اکسس بالا نیست...ولی حداقل برای بعضی از مراکز بدرد می خورد.


سلام
اگه ممکنه نمونه ای رو که اصلاح کردین بزارین 
من هم شدیدا نیاز دارم و وقت کمی هم دارم
ممنون میشم اگه نمونه شما رو ببینم(با تغییراتی که ایجاد کردید)
13900415مطمئنا هنوز وقت نکردی

----------


## hasanr

سلام 
ضمن قدردانی از دوستمون به خاطر وقتی که گذاشتن باید عرض کنم ؛ در نمونه ایشون درمورد ورود با رمز عبور و اعمال محدویت در فرم ها تغییری در برنامه ایجاد نشده به جز اینکه فیلدی به نام آخرین زمان ورود در جدول کاربران گذاشته شده که هنگامی که رمز کاربری پذیرفته شد تاریخ فعلی در اون درج میشه 
بقیه کدها مربوط به کارهای دیگه ای بود که به عنوان مثال یک موردش تو این تاپیک هست

راستی یه نکته جالب : این برنامه در دو تاپیک حدود 60 بار دانلود شده اما هیچکس نظر یا تشکری انجام نداده  :چشمک:

----------


## michkadol

با سلام
دوست عزیز شما دسترسی به فیلدهای داخل یک فرم رو محدود کردی 
اگه بخواهیم فرم ها رو محدود کنیم چی
مثلا 8 تا فرم داریم و می خواهیم که کاربر با کد دسترسی 2 به 3 تا فرم دسترسی داشته باشه
و کار بر با کد دسترسی 3 به 4 فرم مختلف و ...
یعنی جدولی باشه که برای هر کد دسترسی فرم های مشخصی رو تعیین کنیم و وقتی به کاربری کد دسترسی 4 را میدهیم فقط فرم هایی رو بتونه باز کنه که در جدول فوق مجوزش داده شده است 
و اگه فرمی را بخواهد باز کند که مجوزش رو نداره پیغام بدهد که شما مجاز به مشاهده این قسمت نیستید.
چه کار باید کرد؟(مثلا برای برنامه با 30 تا فرم که شامل فرم های ویرایش،ثبت اطلاعات و گزارش میباشد)
در نمونه شما من 3 تا جدول و 3 فرم ایجاد کردم
چطور میشه کاربران را محدود به مشاهده خود فرم کنیم؟

----------


## hasanr

پاسخ شما به طور مبسوط در این تاپیک توسط *id1385* داده شده است

روش ساده تر اینه :
به جای اینکه به ازای هر کد دسترسی فرمهای مشخصی رو تعریف کنین ، در جدول کاربران به ازای هر فرم یک فیلد درست کنین که که مقدار 1 یا 2 یا 3 یا ... می گیره ( اگه برنامه 10 تا فرم داره باید 10 تا فیلد درست کنین یعنی  allowform2 , allowform1 , ...) و در هنگام باز کردن فرم قبل از دستور open form شرط بزارین که اگر مقدار allowform1 برابر 1 بود فرم در حالت عادی باز شود و اگر برابر 2 بود در حالت فقط خواندنی باز شود و اگر ...  
 در اینصورت نه تنها می تونین دسترسی یا عدم دسترسی یک کاربر به فرمها رو تعیین کنین بلکه قادر خواهید بود چگونگی دسترسی رو هم مدیریت کنین

----------


## bemilove

نمونه جهت تست گذاشتم(با استفاده از کدهای جناب اقای hasanrعزیز)
لطفا اصلاح بفرمایید 

 مشکلات : 
 1-     اگر ما بخواهیم TxtCurUser  را مخفی کنیم ،وفوکوس را روی شی دیگر فرم f_main  بگذاریم ...بعد از کلیک بر روی دکمه ورود فرم f_login  ، خطا نشان داده می شود.اگر هم وارد شود کاربر به همه جا دسترسی دارد. 
 2-   اگر کاربر بدون انتخاب یوزر و یا وارد کردن  پسورد بخواهد وارد سیستم شود ،به اوپیغام داده واجازه ورود نمی دهد ولی اگر کاربر پسورد را اشتباهی وارد نماید ،به او پیغام داده می شود که پسورد اشتباه است ولی او را وارد فرم اصلی می کند. 
 3-     کاربر سطح 5 به هیچ قسمتی دسترسی ندارد ولی من می خواهم وقتی به او پیغام داد و او روی دکمه ok  کلیک کرد ، او را از سیستم خارج نماید. 
 اضافه شده : 
 1-     تاریخچه ورود افراد در یک تیبل ذخیره می گردد. 
 2-     فرم تنظیمات کاربران برای ویرایش کاربران توسط ادمین آماده شده است. 
 3-     Tabpage به فرم اصلی افزوده شده ودسترسی کاربران به آن ویا قسمتهایی از آن ممکن است محدود شده باشد. 
 4-     تیبل تقویم شمسی ومیلادی تا اول 30/12/1399 و 20/03/2021 اضافه شده است.(جهت تاریخچه ورود کاربران احتیاج است) 
 5-     سطح دسترسی 5 تعریف شده ،که به هنگام ورود کاربر با این سطح دسترسی به او پیغام داده می شود که"کاربر محترم دسترسی شما به برنامه تا اطلاع ثانوی مسدود می باشد" و کاربر به هیچ قسمتی دسترسی ندارد. 
 6-     تاریخ وزمان ورود کاربر به صورت مخفی بر روی فرم ورود وجود دارد.(جهت تاریچه ورود به آن نیاز است) 
 7-     پیغام های فارسی در بدو ورود (اکشن دکمه ورود فرم f_login)حذف نشده به دلیل اینکه ممکن است کسی با این برنامه کار کند که زیاد با کامپیوتر آشنا نباشد. 
 8-     چون می خواستم نام کاربر فعلی در فرم f_main  باشد از تابع dmax  استفاده کردم(راه دیگری بلد نیستم) 
 نظر : 
 بعضی دوستان می گویند که چطور دسترسی به یک فرم خاص را محدود کنیم،من می گویم شما یک فرم ورود کاربر دارید ،بعد از اینکه کاربر وارد شد قرار نیست 20 تا ویا...فرم باز بشه که ،،،،،،یک فرم باز می شود که فرم اصلی است.از روی همان روی command button  ها فرم ها را کنترل نمایید.وقتی کاربر به یک دکمه ای دسترسی نداشته باشد حتما به فرم آن هم دسترسی ندارد(فرمی که در رویداد آن دکمه اعمال شده)

----------


## ARData

فايل زير را دانلود نموده و با دقت بررسي شود حاوي يوزرنيم هاي مرتبط با نام کامپيوتر و محدوديت هاي دسترسي به تک تک فرم ها است ...

http://ardata.persiangig.com/Users%20Access%20Limit.rar

----------


## hasanr

سلام 
متاسفانه وقت کد نویس شما را ندارم اما توضیحات :

1- همانطور که قبلا گفتم شما TxtCurUser را مخفی کنید و فوکوس را به شی دیگری بدهید تا خطا نگیرد ( توجه کنید که این شی نباید جزو باتونهایی باشد که بخواهیم آنها را Disable نماییم ) 
 علت دسترسی کاربر به همه جا و عدم اعمال محدودیتها اینست که کدهای مربوط به اعمال محدودیت در رویداد Get Focus باکس TxtCurUserنوشته شده بود و حالا باید آنها را در در رویداد Get Focus شی جدید که فوکوس می گیرد نوشت
2-در کدهای بنده این اشکال وجود نداشت خط به خط کدهاتون رو از نظر منطق دستورات بررسی کنین 
3-در کدهای باتون ورود ، قبل از دستور باز کردن فرم f_main  بنویسید :

If Forms!FormEntry!TxtUsername.Column(1) = 5 Then
   DoCmd.Quit
End If

درباره اضافاتتون :
1- کار جالبیه 
5- مدیریت برنامه به این شکل سخت میشه ، درست تر اینه که فیلد IsActive رو به جدول کاربران اضافه کنیم و خطوط زیر رو قبل از دستور باز کردن فرم اصلی اضافه کنیم 

   If IsNull(isactiv) = True Or (isactiv = False) Then
    MsgBox " کاربر گــرامي حساب کاربري شما غير فعال است، لطفاً با مديريت درميان بگذاريد "
  ElseIf isactiv = True Then
    DoCmd.OpenForm "f_main"

حالا مدیر برنامه هر وقت بخواد کاربری رو موقتا غیر فعال کنه فقط تیک مربوط به اون کاربر رو برمیداره

----------


## michkadol

> فايل زير را دانلود نموده و با دقت بررسي شود حاوي يوزرنيم هاي مرتبط با نام کامپيوتر و محدوديت هاي دسترسي به تک تک فرم ها است ...
> 
> http://ardata.persiangig.com/Users%20Access%20Limit.rar


 
با سلام برنامه  رو دانلود کردم ولی چند تا مشکل داره
1- با هر کاربری که وارد برنامه بشین نام کاربر جاری رو ارشادی نشون میده
2- هنگام کلیک بر روی کامندباتون خطای زیر رو میده

----------


## ARData

با عرض پوزش از اينکه command 6 بايد حذف مي شد که يادم رفت 
يکي انکه تمامي کاربران را حذف نماييد و دوباره تعريف کنيد ...
دوم اينکه کاربر جاري رو طوري تعريف کرده ام که متناسب با نام کامپيوتر جاري برمي گردونه .  اگر در هنگام ورود کاربر X در کامپيوتر به نام PC - Y  تيک حضور اين کاربر true بشه در کل برنامه کاربر جاري هر کامپيوتر مشخصه کيه و آدمين مي تونه در فرم يوزر تمامي آنلاين ها و آفلاين ها رو مشاهده کنه ولي مشکلي که هست هنگام خروج کاربره که اگر تيک حضور False بشه مشکلمون حله ...

----------


## bemilove

> با عرض پوزش از اينکه command 6 بايد حذف مي شد که يادم رفت 
> يکي انکه تمامي کاربران را حذف نماييد و دوباره تعريف کنيد ...
> دوم اينکه کاربر جاري رو طوري تعريف کرده ام که متناسب با نام کامپيوتر جاري برمي گردونه .  اگر در هنگام ورود کاربر X در کامپيوتر به نام PC - Y  تيک حضور اين کاربر true بشه در کل برنامه کاربر جاري هر کامپيوتر مشخصه کيه و آدمين مي تونه در فرم يوزر تمامي آنلاين ها و آفلاين ها رو مشاهده کنه ولي مشکلي که هست هنگام خروج کاربره که اگر تيک حضور False بشه مشکلمون حله ...


ببخشید :
مشکلاتی وجود دارد،لطف کنید در صورت امکان راهنمایی بفرمایید
1- کاربر 1(حسین کمالی)...دسترسی او به frmtest محدود شده است ولی او قادر به دیدن این فرم دارد.
2- کاربر جاری همیشه یک نفر است.
3-من کاربرها را دوباره تعریف کرده وویرایش دسترسی را انجام دادم.

----------


## michkadol

با سلام

من یک فیلد به نام اکشن به جدول اضافه کردم 
حالا میخوام وقتی کاربر وارد شد در این فیلد کلمه "ورود" ثبت بشه
اگر کاربر رمز اشتباه وارد کرد کلمه "ورود رمز اشتباه" ثبت بشه
اکر نام کاربری اشباه وارد شد کلمه "کاربری اشتباه" ثبت بشه
و وقتی که از برنامه خارج شد کلمه"خروج" ثبت بشه
اما هرکار کردم این کلمات در جدول فوق ایجاد نشد
در همین جهت در فرم 4 تا باکس ایجاد کردم تا در هر مورد از باکس مربوطه بخونه ولی باز هم نشد
لطفا اگر امکانش هست راهنماییم کنید
متشکرم


در ضمن اگه ممکنه بگین چطور میشه فرم تغییر رمز رو هم ایجاد کنم

----------


## hasanr

سلام 
من متاسفانه برنامه آپلود شده توسط دوست عزیزمون *ARData* رو ندیدم
اما برای تغییر رمز عبور می تونید از یک کوئری استفاده کنید که این کوئری در نمونه ارسالی بنده موجوده ( در واقع جا مونده  :چشمک:  )
با تغییر همین کوئری و اجرای اون بعد از ورود کاربر یا اشتباه بودن پسورد و ... می تونین اون عبارات دلخواهتون رو در جدول درج کنین

----------


## ARData

در اصل اين برنامه بيشتر جهت ايجاد محدوديت دسترسي کاربران به فرم هاي موجود در برنامه مي باشد . و به تغيير پسورد و اکتيو بودن کاربران زياد اشاره اي نکردم ولي به خاطر استقبال دوستان اينکار و هم اضافه مي کنم فقط يه مشکلي دارم اونم ماژوليه که در هنگام خروج کاربر از سيستم يه کاري انجام بده يعني پاسخ به تايپيک زير مشکل گشاي اين فايلمونه....

https://barnamenevis.org/showthread.php?294501

----------


## michkadol

> در اصل اين برنامه بيشتر جهت ايجاد محدوديت دسترسي کاربران به فرم هاي موجود در برنامه مي باشد . و به تغيير پسورد و اکتيو بودن کاربران زياد اشاره اي نکردم ولي به خاطر استقبال دوستان اينکار و هم اضافه مي کنم فقط يه مشکلي دارم اونم ماژوليه که در هنگام خروج کاربر از سيستم يه کاري انجام بده يعني پاسخ به تايپيک زير مشکل گشاي اين فايلمونه....
> 
> https://barnamenevis.org/showthread.php?294501


دوست عزیز اگه امکانش هست نمونه تغییر رمز رو رو نمونه تون ایجاد کنید
متشکرم

----------


## ARData

فیلدهای مربوط به تغییر پسورد اضافه شدند ...
http://ardata.persiangig.com/Users%2...nge%20Pass.rar

----------


## michkadol

با سلام
3 تا سوال
سوال1:
- با اینکه فرمهای کاربر جدید و فرم دسترسی تیک open ندارد ولی باز هم پس از دادن پیغام "عدم مجوز دسترسی" ولی باز هم فرم باز میشود
میخواهم وقتی گزینه open تیک نداشت کاربر نتونه فرم مربوطه رو ببینه
سوال2:
تو فرم usernew تنظیم کردم وقتی کد کاربر در جدول وجود داشته باشه پیغام بده که این کد قبلا ثبت شده و از ادامه جلوگیری کند 
ولی اگر در جدول data type رو از نوع number باشه خطای فوق رو نمایش میده
ولی اگر از نوع text باشه پیغام مذکور رو نمیده و فقط از ادامه جلوگیری میکنه
چهکار کنم که نوع فیلد از نوع تکست باشه و پیغام رو هم نمایش بدهد
سوال3
فرم تعریف کاربر unbound چطور میتونم اگه کاربر مجوز اضافه نمودن رو نداره نتونه کاربری رو ثبت کنه



با شرمندگی به خاطر دودستگی مطالب 
ادامه داستان در
https://barnamenevis.org/showthread.p...ه-فرم-ها

----------


## michkadol

به خاطر دودستگی در تاپیک نمونه تکمیل شده خدمت تمام عزیزان

----------


## Younestalebi

بزودي يه فايل كامل توي اين زمينه قرار مي دم

----------


## Younestalebi

اين كار روش درستي نيست 
اين كدها بايد دايناميك باشد و مستقيماً از Table گرفته شود. و نياز ي به استفاده از يه فرم كمكي نيست

----------


## shervinrad

> اين كار روش درستي نيست 
> اين كدها بايد دايناميك باشد و مستقيماً از Table گرفته شود. و نياز ي به استفاده از يه فرم كمكي نيست


باسلام 
پس چی شد این نمونه کاملت آقا یونس

----------


## michkadol

شما لطف کردین این همه توضیح دادید و فرمودید که خیلی ها چشم به  این تاپیک دوختن
پس یه لطفی بکنید در حق این افراد(نمونش خودم رو عرض میکنم) و نمونه ای کامل و بی نقص و دارای ضزیب امنیتی بالا ارائه بدین تا دوستان بتونن استفاده کنن و دعا به جون شما کنن
متشکرم

----------


## msproject2013

سلام خوبید؟ میشه مراحل ساخت loginرا هم بگید ؟شدیدا نیازمند اون هستم ممنون

----------


## msproject2013

سلام خوبید؟ میشه مراحل ساخت loginرا هم بگید ؟شدیدا نیازمند اون هستم ممنون

----------


## adrinahamed

سلام

میدونم که میشه یک لینک دوطرفه اکسس با outlook  ایجاد کرد. 
میخواستم بدونم امکانش هست که یک ایمیل خاص را برای تعدادی از این contact هایی که در اکسس ایجاد شده فرستاد؟ چجوری؟
پیشاپیش از راهنماییتون سپاسگزارم.

----------


## مرتضی شهبازی

آخرش مو متوجه نشدم چیکار کنم

----------


## ejraei1366

Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
برای من ارور نشان میدهد ممنون میشم راهنمایی کنید

----------


## amirzazadeh

> Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
> برای من ارور نشان میدهد ممنون میشم راهنمایی کنید


از کی وردPtrSafe استفاده کنید.

Public Declare PtrSafe Function Shell_NotifyIcon Lib "shell32" Alias  "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As  Boolean

البته اگر از vb6  استفاده میکنید نیازی به این کار نیست.

----------


## ejraei1366

ز کی وردPtrSafe استفاده کنید.


البته اگر از vb6  استفاده میکنید نیازی به این کار نیست.[/QUOTE]
سلام ببخشید این دو روش چطور باید در اکسس ایجاد کنم

----------

