PDA

View Full Version : مشخص شدن user جاری



انگوران
یک شنبه 10 تیر 1386, 11:20 صبح
دوستان سلام ـ یک گروه کاری تعریف کردم با چند user ( کاربر ) ، می خوام بدونم چطور یوزر جاری سیستم رو مشخص کنم و به این شکل عمل کنم که اگه یوزر جاری user1 بود command1 غیر فعال بشه و اگه user2 بود command2 و ...

sarami
یک شنبه 10 تیر 1386, 13:57 عصر
با استفاده از توابع Api :
ابتدا یک Module جدید ایجاد نمایید.
برای این منظور احتیاج به فراخوانی یک تابع از توابع advapi32 به نام GetUserName دارید . برای شروع این دو تابع را بصورت زیر declare کنید . (در ماژول کپی نمایید)

Public Declare Function apiGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

حال کد ذیل را که یک Function به منظور فراخوانی راحتتر می باشد را نیز در ماژول پائین کد بالا کپی نمایید.

Function Fn_UserName() As String
On Error GoTo GetUserName_Err

Dim lngLen As Long, lngX As Long
Dim strUserName As String

strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)

If lngX <> 0 Then
Fn_UserName = Left$(strUserName, lngLen - 1)
Else
Fn_UserName = ""
End If


GetUserName_Exit:
Exit Function

GetUserName_Err:
MsgBox Error$
Resume GetUserName_Exit
End Function

حال برروی یک فرم یک command Button قراردهید و کد ذیل را درون event مربوط به onclick آن قرار دهید .

MsgBox Fn_UserName
نام کاربر بصورت Msgbox نمایش داده خواهد شد.

موفق باشید

انگوران
یک شنبه 10 تیر 1386, 15:33 عصر
مهندس جان خیلی عالی بود فقط مورد اینه که ماژول بالا یوزرنیم سیستم رو به ما میده اگه بخوایم یوزرهائی که در گروه کاری تعریف می کنیم رو تشخیص بدیم چکار باید بکنیم فرض بفرمائید با یه برنامه ای روی یک سیستم 3 یوزر کاربر کار می کنن و من می خوام یه کاری کنم هر کدوم به یکسری از منوها دسترسی داشته باشن .

moustafa
یک شنبه 10 تیر 1386, 22:25 عصر
()me.user= currnetuser

مهدی قربانی
دوشنبه 11 تیر 1386, 10:28 صبح
سلام
با استفاده از ()CurrentUser امکان بهره برداری از حالت مورد نظر شما به شکل زیر هست


Private Sub Form_Open(Cancel As Integer)

Select Case CurrentUser()
Case "Admin"

CommandBars("Admin").Controls("admin").Controls("a").Enabled = True
CommandBars("Admin").Controls("admin").Controls("b").Enabled = True
Command3.Enabled = False
Command2.Enabled = True
CommandBars("user").Controls("user").Controls("c").Enabled = False
CommandBars("user").Controls("user").Controls("d").Enabled = False

Case "Angooran"

CommandBars("Admin").Controls("admin").Controls("a").Enabled = False
CommandBars("Admin").Controls("admin").Controls("b").Enabled = False
Command3.Enabled = True
Command2.Enabled = False

CommandBars("user").Controls("user").Controls("c").Enabled = True
CommandBars("user").Controls("user").Controls("d").Enabled = True

End Select

End Sub

انگوران
دوشنبه 11 تیر 1386, 11:38 صبح
ممنونم دوست عزیز من هم دقیقاً از همین روش استفاده کردم .

sarami
دوشنبه 11 تیر 1386, 13:43 عصر
روش منطقی تر ایجاد یک Table برای نگه داری دسترسی های هر کاربر میباشدو table دیگر که شامل کلیه اشیاء روی هر فرم میباشد. حال در موقع لود شدن هر فرم By Defult دسترسی ها محدود است و بازدن یک loop و استخراج دسترسی ها از table دسترسی User مورد نظر به اشیاء آن فرم اعطاء میگردد.

انگوران
دوشنبه 11 تیر 1386, 14:40 عصر
اگه وقتتون آزاد باشه و بتونین یه نمونه فایل بذارین خیلی عالی میشه .

شاپرک
یک شنبه 24 تیر 1386, 11:17 صبح
http://barnamenevis.org/forum/showthread.php?p=365314#post365314

o_panjeshahi
دوشنبه 15 مرداد 1386, 19:07 عصر
با تشکر از دوستان
میخواستم بدانم امکان مشاهده table و field جاری وجود دارد یا خیر؟
چون بنده تصمیم دارم یک بانکی طراحی کنم که با تغییر دادن اطلاعات هر فیلد در آن بانک ثبت شود که چه کاربری چه بانکی و چه فیلدی را درچه زمانی تغییر داده است:اشتباه:

مهدی قربانی
دوشنبه 15 مرداد 1386, 19:16 عصر
سلام
ببینید این لینک به کار شما میاد :

http://barnamenevis.org/forum/showthread.php?t=62819&highlight=%D8%AB%D8%A8%D8%AA+%D9%81%D8%B9%D8%A7%D9 %84%DB%8C%D8%AA%D9%87%D8%A7%DB%8C+%DA%A9%D8%A7%D8% B1%D8%A8%D8%B1

شاپرک
سه شنبه 16 مرداد 1386, 09:38 صبح
لیست Object های DataBase جاری:
http://barnamenevis.org/forum/showthread.php?t=57045&page=4

o_panjeshahi
چهارشنبه 17 مرداد 1386, 16:44 عصر
ضمن تشکر از دوستان
شاید بنده سوالم را خوب توضیح ندادم
بنده میخواهم Table بسازم بنام A که در آن ثبت شود هنگامیکه یک کاربر در یک فرم خاص بنام x که متصل به Table بنام y است و بعد از تغییر محتوای فیلد M در Table من که A است ذخیره شود که کاربر Table بنام y و فیلد M را تغییر داده است.
حال سوال من این است که چطوری از فرم x مسیر Table:A و نام فیلد را پیداکنم؟

مهدی قربانی
پنج شنبه 18 مرداد 1386, 01:43 صبح
با تشکر از دوستان
میخواستم بدانم امکان مشاهده table و field جاری وجود دارد یا خیر؟
چون بنده تصمیم دارم یک بانکی طراحی کنم که با تغییر دادن اطلاعات هر فیلد در آن بانک ثبت شود که چه کاربری چه بانکی و چه فیلدی را درچه زمانی تغییر داده است

دوست عزیز تا اونجائیکه من متوجه شدم شما قصد دارید اقداماتی از قبیل باز کردن و بستن فرمها و گزارشات ، تغییرات رکوردها ،حذف و ایجاد رکورد ها توسط کاربر رو در یک جدولی که برای این منظور ساخته شده ثبت کنید اگر اینطوره لینکی که براتون گذاشتم دقیقاً به همین موضوع پرداخته اگر هم برداشتم اشتباهه که لطف کنید توضیح بیشتری بدید .