PDA

View Full Version : سوال: تعریف متغیر سراسری



Milad_ATM
پنج شنبه 19 فروردین 1400, 11:02 صبح
دوستان من با استفاده از Username وارد شده در فرم لاگین تمامیی دسترسی های نرم افزارمو ست کردم!
به همین دلیل مجبور شدم در تمامی فرم ها Modal و Popup رو Yes بزارم که همگی روی فرم لاگین اجرا بشن و هرجایی لازم شد آدرس Form!Login!Text0 بدم و با استفاده از اون دسترسی های شخص وارد شده رو ست کنم

آیا میشه مقدار Form!Login!Text0 رو داخل یک متغیر ریخت که با بسته شدن فرم همچنان بشه ازش استفاده کرد؟؟؟

ممنون

mazoolagh
پنج شنبه 19 فروردین 1400, 12:06 عصر
پیشتر بارها مطرح شده:
1- TEMPVARS
2- PUBLIC VARIABLES

نیازی نیست فرم لاگین رو باز نگه دارین. کافی هست USERNAME رو در یک TEMPVAR یا PUBLIC VARIABLE بریزین.

Milad_ATM
جمعه 20 فروردین 1400, 06:44 صبح
باید توی همون فرم لاگینم که Display form هست انجامش بدم؟

نحوه فراخوانی در Expression builder و Query به چه شکل هست ؟

mazoolagh
شنبه 21 فروردین 1400, 13:55 عصر
در برنامه های نمونه تاپیک زیر از tempvars برای پاس کردن مقادیر به کوئری و ریپورت استفاده شده:
https://barnamenevis.org/showthread.php?564878-%D8%B1%D8%AA%D8%A8%D9%87-%D8%A8%D9%86%D8%AF%DB%8C-%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF-%D8%AF%D8%B1-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4

Milad_ATM
سه شنبه 11 مرداد 1401, 14:28 عصر
با سلام
با راهنمایی شما میخواستم Username رو پس از Login در یک متغیر عمومی نگه دارم و در همه فرم ها استفاده کنم که متاسفانه نتونتسم
به طور مثال می خوام پس از Login در فرمی که Open میشه مقدار یک تکست باکس Username رو نمایش بده که نشد.
ممنون میشم کمک کنید.

https://up.20script.ir/do.php?filename=d47d-MainMagicProject.rar

153938

mazoolagh
پنج شنبه 13 مرداد 1401, 09:46 صبح
سلام و روز خوش

شما متغیر پابلیک رو در ماژول فرم تعریف کردین بنابراین فقط در همون فرم پابلیک هست و نه در سراسر برنامه!

یک ماژول جداگانه بسازین (اسمش مهم نیست) و هر چیزی که قرار هست در سراسر برنامه پابلیک باشه اونجا تعریف کنین: متغیر، تابع، سابروتین و ...

Milad_ATM
پنج شنبه 13 مرداد 1401, 15:07 عصر
اول خیلی ممنونم از شما که هیچ سوالی رو بی جواب نمیزارید.
من با روشی که شما توضیح دادی نتونستم اینکارو انجام بدم و به هر شکلی که به فکرم رسید انجام دادم.
مساله اینه که در فرم دیگه باز مقدار متغیر سراسزی من Null هست و چیزی نمایش نمیده
https://up.20script.ir/do.php?filename=fe91-MainMagicProject.rar

amirzazadeh
پنج شنبه 13 مرداد 1401, 17:26 عصر
اول خیلی ممنونم از شما که هیچ سوالی رو بی جواب نمیزارید.
من با روشی که شما توضیح دادی نتونستم اینکارو انجام بدم و به هر شکلی که به فکرم رسید انجام دادم.
مساله اینه که در فرم دیگه باز مقدار متغیر سراسزی من Null هست و چیزی نمایش نمیده
https://up.20script.ir/do.php?filename=fe91-MainMagicProject.rar

سلام
اگر با tempvars کار می کنید کافیه تو فرم لاگین کد رو به این شکل اصلاح کنید:


If DLookup("Username", "tblUsers", "Username=Forms!frmLogin!txtUsername") = Me.txtUsername And DLookup("Password", "tblUsers", "Username=Forms!frmLogin!txtUsername") = Me.txtpassword Then
UserPublic = Form_frmLogin.txtUsername
TempVars.add "tempUser", UserPublic

حالا تو هر فرمی که نیاز داشتید از این کد استفاده کنید(مثلا در رویداد لود فرم main)

Private Sub Form_Load()
Me.txtuser = TempVars!tempuser
....
End Sub