کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

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

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

فرمول رفرنس به پراپرتی کنترل در فرم اصلی و سابفرم ( زیر فرم )




به نوشتارهای زیر دقت کنید تا فرمول ارجاعات به کنترل ها یا پراپرتی کنترل ها  در هر جایی از فرم و سابفرم های تو در تو  که قرار دارید را متوجه شوید.




اگر در MainForm یا فرم اصلی هستید : 


اشاره به پراپرتی Enabled کنترل در فرم اصلی 


Me!ControlName.Enabled


اشاره یا ارجاع به پراپرتی کنترل در سابفرم ۱


Me!Subform1.Form!ControlName.Enabled


اشاره به پراپرتی کنترل سابفرم ۲ که مجموعه سابفرم ۱ است


Me!Subform1.Form!Subform2.Form!ControlName.Enabled




اگر در سابفرم ۱ هستید :



ارجاع به پراپرتی کنترل در فرم مادر یا فرم اصلی


Me.Parent!ControlName.Enabled

ارجاع به پراپرتی کنترل سابفرم ۱ در خود سابفرم

Me!ControlName.Enabled

ارجاع به پراپرتی کنترل سابفرم ۲ 

Me!Subform2.Form!ControlName.Enabled




مثال زیر با استفاده از ویژگی Form  به کنترلی در زیرفرم اشاره می کند


The following example uses the Form property to refer to a control on a subform.


Dim curTotalAmount As Currency
curTotalAmount = Forms!Orders!OrderDetails.Form!TotalAmount 


اشاره به کنترلی در زیرفرم

فرم اصلی : Orders

زیر فرم : OrderDetails

کنترل در زیرفرم : TotalAmount







از فیلد RecordId سابفرم با نام SubChildForm f استفاده شده تا در یکسری توابع در فرم  استفاده شود






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



Forms!mainform!subform.Form.controlname.property
Me!subform.Form.controlname.property




ارجاع به پراپرتی Visibe و  Locked کنترل ctlStateTax در سابفرم با نام subfrmOrders داخل فرم اصلی frmCustomer


Forms("frmCustomer").subfrmOrders.Form.ctlStateTax.Visible = False

Forms("frmCustomer").subfrmOrders.Form.ctlStateTax.Locked





Nested Subform


اشاره به کنترل cboType در  سابفرم تو در تو


[Forms]![IncidentDetails]![CtrlLogDetail].[Form]![ctrlType].[Form].[cboType]


فرم اصلی : IncidentDetails

سابفرم درون فرم اصلی : CtrlLogDetail

سابفرم درون سابفرم اول : ctrlType

کنترل داخل سابفرم دوم : cboType




اشاره به پراپرتی AllowEdits سابفرم ۳ و تنظیم به False که اجازه  ویرایش نمی دهد.


Forms!frmMain!sub1.Form!sub2.Form!sub3.Form.AllowEdits = False


فرم اصلی : frmMain

سابفرم ۱ : Sub1

سابفرم ۲ داخل ساب ۱ : Sub2

سابفرم ۳ داخل ساب ۲ : Su 3






























Public WithEvents txt1 As Access.TextBox
Private frm2 As Access.Form
Public Property Get sFrm() As Access.Form
Set sFrm = frm2
End Property
Public Property
Set sFrm(ByRef frmValue As Access.Form)
Set frm2 = frmValue
End Property
Private Sub txt1_AfterUpdate()


----------------------------------------------



Function Animate() Dim frmSplash as Form Dim i as Integer DoCmd.OpenForm "Splash" Set frmSplash = Forms("Splash") For i = 1 To 20 frmSplash(i).Visible = True frmSplash(i-1).Visible = False DoCmd.RepaintObject Next End Function




---------------------------------------------



Public Function LockEmAll(bLock As Boolean)
Dim frm As Form

For each frm in Forms
Call LockEm(frm, bLock)
Next

Set frm = Nothing
End Function

Private Function LockEm(frm As Form, bLock As Boolean)
Dim ctl As Control

With frm
If .Dirty Then
.Dirty = False
End If
.AllowEdits = bLock
.AllowDeletions = bLock
.AllowAddtions = bLock

For each ctl In .Controls
If ctl.ControlType = acSubForm Then
Call LockEm(ctl.Form, bLock)
End If
Next
End With
End Sub