LISTING 1: AddCity.Open Script 'This script will run when the dialog is opened 'SELF refers to the dialog vtbCities = av.GetActiveDoc.GetVTab fldState = vtbCities.FindField("State_name") cboStateName = SELF.FindByName("cboState") cboStateName.DefineUniqueFromVTab(vtbCities, fldState, false, false, true) SELF.SetServer(vtbCities) LISTING 2: AddCity.lbtAddRecord.Click 'This code runs when the "Add Record" button is clicked ... 'SELF refers to the button '-Reference all dialog controls ... dlgAddCity = SELF.GetDialog txtName = dlgAddCity.FindByName("txtName") cboState = dlgAddCity.FindByName("cboState") txtPopulation = dlgAddCity.FindByName("txtPop") chkCapital = dlgAddCity.FindByName("chkCapital") '-Reference the mexcities.dbf VTab and all required fields ... vtbCities = dlgAddCity.GetServer fldCityName = vtbCities.FindField("Name") fldStateName = vtbCities.FindField("State_name") fldPop = vtbCities.FindField("Population") fldCapital = vtbCities.FindField("Capital") '-Add the new record, populate field values ... vtbCities.SetEditable(true) recNewCity = vtbCities.AddRecord vtbCities.SetValue (fldCityName, recNewCity, txtName.GetText) vtbCities.SetValue (fldStateName, recNewCity, cboState.GetCurrentValue) vtbCities.SetValue (fldPop, recNewCity, txtPopulation.GetText.AsNumber) if (chkCapital.IsSelected = true) then vtbCities.SetValue (fldCapital, recNewCity, "Y") else vtbCities.SetValue (fldCapital, recNewCity, "N") end vtbCities.SetEditable(false) vtbCities.Refresh Msgbox.Info ("New Record Added", "Add City")