Solved! Go to Solution.
Option Explicit Sub PopulateForm() Dim objForm, objPage, objControl Set objForm = Application.Map.Layers(Application.UserProperties("LayerName")).Forms("EDITFORM") Set objPage = objForm.Pages("PAGE1") Set objControl = objPage.Controls If objControl.Item("Subtype").value = "1" Then objControl.Item("IDfield1").Enabled = True objControl.Item("IDfield1").Value = "" objControl.Item("IDfield2").Enabled = False objControl.Item("IDfield2").Value = "N/A" objControl.Item("IDfield3").Enabled = False objControl.Item("IDfield3").Value = "N/A" ElseIf objControl.Item("Subtype").value = "2" Then objControl.Item("IDfield1").Enabled = True objControl.Item("IDfield1").Value = "" objControl.Item("IDfield2").Enabled = True objControl.Item("IDfield2").Value = "" objControl.Item("IDfield3").Enabled = False objControl.Item("IDfield3").Value = "N/A" ElseIf objControl.Item("Subtype").value = "3" Then objControl.Item("IDfield1").Enabled = False objControl.Item("IDfield1").Value = "N/A" objControl.Item("IDfield2").Enabled = False objControl.Item("IDfield2").Value = "N/A" objControl.Item("IDfield3").Enabled = True objControl.Item("IDfield3").Value = "" ElseIf objControl.Item("Subtype").value = "4" Then objControl.Item("IDfield1").Enabled = False objControl.Item("IDfield1").Value = "N/A" objControl.Item("IDfield2").Enabled = False objControl.Item("IDfield2").Value = "N/A" objControl.Item("IDfield3").Enabled = False objControl.Item("IDfield3").Value = "N/A" End If 'Free objects Set objControl = Nothing Set objPage = Nothing Set objForm = Nothing End Sub
' Define public value for Layer Name Application.UserProperties("LayerName") = "CurrentLayerName" ' Call PopulateForm() in applet Application.Applets("AppletName").Execute("PopulateForm")
Option Explicit 'The purpose of this script is to enable the appropriate ID/NUMBER fields [ASMIS_ID, FEATURE_NUMBER, TRACKING_NUMBER] 'when a given subtype [Site, Feature, IO, Other] is selected, and to hide those ID/NUMBER fields that do not apply with the value "N/A". 'Create a subroutine to be able to pass any feature layer name to the script Sub PopulateForm() 'Create and define Form, Page, and Control Dim objForm, objPage, objControl Set objForm = Application.Map.Layers(Application.UserProperties("LayerName")).Forms("EDITFORM") Set objPage = objForm.Pages("DataEntry") Set objControl = objPage.Controls 'If lblSUBTYPE field value is Site, do the following: If objControl.Item("lblSUBTYPE").value = "Site" Then 'Enable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = True 'Disable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = False 'and set value of txtFEATURE_NUMBER field to "N/A" objControl.Item("txtFEATURE_NUMBER").Value = "N/A" 'Disable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = False 'and set value of txtTRACKING_NUMBER field to "N/A" objControl.Item("txtTRACKING_NUMBER").Value = "N/A" 'If lblSUBTYPE field value is Feature, do the following: ElseIf objControl.Item("lblSUBTYPE").value = "Feature" Then 'Enable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = True 'Enable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = True 'Disable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = False 'and set value of txtTRACKING_NUMBER field to "N/A" objControl.Item("txtTRACKING_NUMBER").Value = "N/A" 'If lblSUBTYPE field value is IO, do the following: ElseIf objControl.Item("lblSUBTYPE").value = "IO" Then 'Disable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = False 'and set value of txtASMIS_ID field to "N/A" objControl.Item("txtASMIS_ID").Value = "N/A" 'Disable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = False 'and set value of txtFEATURE_NUMBER field to "N/A" objControl.Item("txtFEATURE_NUMBER").Value = "N/A" 'Enable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = True 'If lblSUBTYPE field value is Other, do the following: ElseIf objControl.Item("lblSUBTYPE").value = "Other" Then 'Disable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = False 'and set value of txtASMIS_ID field to "N/A" objControl.Item("txtASMIS_ID").Value = "N/A" 'Disable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = False 'and set value of txtFEATURE_NUMBER field to "N/A" objControl.Item("txtFEATURE_NUMBER").Value = "N/A" 'Disable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = False 'and set value of txtTRACKING_NUMBER field to "N/A" objControl.Item("txtTRACKING_NUMBER").Value = "N/A" End If 'Free objects Set objControl = Nothing Set objPage = Nothing Set objForm = Nothing End Sub
'for your line feature "Line" = name of the layer Application.UserProperties("LayerName") = "Line"
'If lblSUBTYPE field value is Site, do the following: If objControl.Item("lblSUBTYPE").Value = 1 Then 'Enable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = True 'Disable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = False 'and set value of txtFEATURE_NUMBER field to "N/A" objControl.Item("txtFEATURE_NUMBER").Value = "N/A" 'Disable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = False 'and set value of txtTRACKING_NUMBER field to "N/A" objControl.Item("txtTRACKING_NUMBER").Value = "N/A" 'If lblSUBTYPE field value is Feature, do the following: ElseIf objControl.Item("lblSUBTYPE").value = 2 Then 'Enable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = True 'Enable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = True 'Disable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = False 'and set value of txtTRACKING_NUMBER field to "N/A" objControl.Item("txtTRACKING_NUMBER").Value = "N/A" 'If lblSUBTYPE field value is IO, do the following: ElseIf objControl.Item("lblSUBTYPE").value = 3 Then 'Disable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = False 'and set value of txtASMIS_ID field to "N/A" objControl.Item("txtASMIS_ID").Value = "N/A" 'Disable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = False 'and set value of txtFEATURE_NUMBER field to "N/A" objControl.Item("txtFEATURE_NUMBER").Value = "N/A" 'Enable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = True 'If lblSUBTYPE field value is Other, do the following: ElseIf objControl.Item("lblSUBTYPE").value = 4 Then 'Disable txtASMIS_ID field objControl.Item("txtASMIS_ID").Enabled = False 'and set value of txtASMIS_ID field to "N/A" objControl.Item("txtASMIS_ID").Value = "N/A" 'Disable txtFEATURE_NUMBER field objControl.Item("txtFEATURE_NUMBER").Enabled = False 'and set value of txtFEATURE_NUMBER field to "N/A" objControl.Item("txtFEATURE_NUMBER").Value = "N/A" 'Disable txtTRACKING_NUMBER field objControl.Item("txtTRACKING_NUMBER").Enabled = False 'and set value of txtTRACKING_NUMBER field to "N/A" objControl.Item("txtTRACKING_NUMBER").Value = "N/A" End If