ورود

View Full Version : انتخاب فرم اصلی برنامه توسط کاربر



moustafa
سه شنبه 08 آبان 1403, 10:06 صبح
با سلام
من چند نوع فرم اصلی انتخاب کردم یکی با منوهای ابشاری به اسم frmMain1 ،یکی با منوهای درختی به اسم frmMain2 ،یکی پنلی یا داشبوردی به اسم frmMain3 .....بهترین روشی که کاربر به انتخاب خودش تعیین کنه که از کدوم استفاده کنه و در اول برنامه بعد فرم لاگین لود باشه چیه ؟
اسم فرم اصلی frmMain هستش که فرمهای دیگه به این اسم رجوع میکنن یا اطلاعاتشون به این فرم ارسال میکنن
با تشکر

mazoolagh
پنج شنبه 10 آبان 1403, 12:32 عصر
سلام و روز خوش
فرم startup یکی از propertyهای دیتابیس هست (startupform)
که شما میتونین مثل پراپرتی دیگه اون رو بسازین، پاک کنین یا مقدارش رو تغییر بدین،
و این کار رو میتونین هم از داخل دیتابیس و هم از بیرون انجام بدین.

چون پیشتر چندین تاپیک برای کار با پراپرتی allowbypasskey ساخته شده،
کدهای نمونه رو هم میتونین پیدا کنین.

moustafa
شنبه 12 آبان 1403, 00:15 صبح
سلام و تشکر
من در فرم لاگین یک کمبو باکس بنام cbxfrmMain گذاشتم که در اون نام چند تا فرم بعنوان فرم اصلی وارد شده تا کاربر خودش تعیین کنه با کدوم راحتر

DoCmd.OpenForm cbxfrmMain

Select Case cbxfrmMain
Case "frmMain"

Forms!frmMain!txtUserName.Caption = DLookup(" [tbluser]![name_user] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain!lblshahr.Caption = DLookup(" [tbluser]![shahr] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain!lblgroup.Caption = DLookup(" [tbluser]![group] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain!lbldate.Caption = Dat()
DoCmd.Maximize
Case "frmMain1"

Forms!frmMain1!txtUserName.Caption = DLookup(" [tbluser]![name_user] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain1!lblshahr.Caption = DLookup(" [tbluser]![shahr] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain1!lblgroup.Caption = DLookup(" [tbluser]![group] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain1!lbldate.Caption = Dat()
DoCmd.Maximize
Case "frmMain2"

Forms!frmMain2!txtUserName.Caption = DLookup(" [tbluser]![name_user] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain2!lblshahr.Caption = DLookup(" [tbluser]![shahr] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain2!lblgroup.Caption = DLookup(" [tbluser]![group] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms!frmMain2!lbldate.Caption = Dat()


End Select

moustafa
شنبه 12 آبان 1403, 01:41 صبح
کد اگه بخوایم کد بالا رو خلاصه کنیم باید یه فانکشن بسازیم که با گرفتن نام فرم در قالب رشته به لیبلهای اون دسترسی داشته باشه

Public Sub chanegfrm(frmname As String)



Forms(frmname).txtUserName.Caption = DLookup(" [tbluser]![name_user] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")

Forms(frmname).lblshahr.Caption = DLookup(" [tbluser]![shahr] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms(frmname).lblgroup.Caption = DLookup(" [tbluser]![group] ", "[tbluser]", " [tbluser]![user_id] =forms!frmlogin!text1")
Forms(frmname).lbldate.Caption = Dat()
' Forms(frmname).OnOpen = funcForm_Open()
DoCmd.OpenForm "frmChangeLink", acNormal, , , , acHidden
Forms("frmChangeLink").Refresh

Forms(frmname).lblBackEndPath.Caption = Mid(Form_frmChangeLink.lstTables.Column(1, 0), 11)
Forms(frmname).Requery

End Sub