Solved! Go to Solution.
Dim objForm, objPage, objControl Set objForm = Map.Layers("YourLayer").Forms("DataEntry") Set objPage = objForm.Pages("PAGE1") Set objControl = objPage.Controls If objControl.Item("Subtype").value = "1" Then objControl.Item("IDfield1").Enabled = True 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("IDfield2").Enabled = True 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 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
Sub PopulateForm(c_sFLayer) Dim objForm, objPage, objControl Set objForm = Map.Layers(c_sFLayer).Forms("DataEntry") Set objPage = objForm.Pages("PAGE1") Set objControl = objPage.Controls ... End Sub
'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(c_sFLayer) 'Create and define Form, Page, and Control Dim objForm, objPage, objControl Set objForm = Map.Layers(c_sFLayer).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