' Returns TRUE if the Table can be edited outside of an edit session Function CanEditWOEditSession(pTable As ITable) As Boolean Dim pVersionedObject As IVersionedObject Dim pObjClassInfo2 As IObjectClassInfo2 Dim bolVersioned As Boolean Dim bolEditable As Boolean ' See if the data is versioned If Not TypeOf pTable Is IVersionedObject Then bolVersioned = False Else Set pVersionedObject = pTable bolVersioned = pVersionedObject.IsRegisteredAsVersioned End If ' Check the CanBypassEditSession property Set pObjClassInfo2 = pTable bolEditable = pObjClassInfo2.CanBypassEditSession If bolEditable And Not bolVersioned Then CanEditWOEditSession = True Else CanEditWOEditSession = False End If End Function Public Sub Neighborinfo() 'Initialization variable-------------------------------------------- Dim pMxDoc As IMxDocument Dim pMap As IMap 'Variables for feature selection------------------------------------ Dim pEnumFeature As IEnumFeature Dim pFeature As IFeature Dim newPFeature As IFeature Dim pFeatureLayer As IFeatureLayer Dim pFeatCursor As IFeatureCursor Dim pSelFeatCursor As IFeatureCursor Dim pFcls As IFeatureClass 'Variables for spatial relation operation--------------------------- Dim i As Long Dim pArea As IArea Dim pSelArea As IArea Dim pRelOp As IRelationalOperator 'Initialization----------------------------------------------------- Set pMxDoc = ThisDocument Set pMap = pMxDoc.FocusMap 'Make certain that layer with farm boundaries is the first layer in the map (or change index on pMap.Layer(0)) Set pFeatureLayer = pMap.Layer(0) 'Get the field name and total number of features--------------------- Dim pFlds As IFields Dim totalFCount As Long Set pFcls = pFeatureLayer.FeatureClass Set pFlds = pFcls.Fields totalFCount = pFcls.FeatureCount(Nothing) If (totalFCount < 1) Then MsgBox ("Error in getting the number of features in the layer!") Exit Sub End If 'Get the field name and total number of features---------------------- ' Table editing preparations-------------------------------------------------------------- 'This calculation is to be done outside of an edit session. Dim pEditor As IEditor Dim pID As New UID pID = "esriGeoDatabase.Editor" Set pEditor = ThisDocument.Parent.FindExtensionByCLSID(pID) If pEditor.EditState = esriStateEditing Then MsgBox "This tool requires that ArcMap is not in edit mode" Exit Sub End If ' Also, check to see if the selected layer supports editing without an edit session------- If Not CanEditWOEditSession(pFeatureLayer.FeatureClass) Then MsgBox "This layer cannot be edited outside of an edit session" Exit Sub End If ' Get an exclusive schema lock on the dataset--------------------------------------------- ' If they are not already there, make the new field and add it to the feature class------- Dim pFieldEdit As IFieldEdit If pFeatureLayer.FeatureClass.FindField("c_edu") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_edu" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_edu") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_edu" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("c_com") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_com" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_com") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_com" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("c_gr") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_gr" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_gr") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_gr" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("c_hs") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_hs" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_hs") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_hs" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("c_col") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_col" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_col") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_col" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("c_hscol") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_hscol" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_hscol") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_hscol" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_edu") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_edu" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_edu") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_edu" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_com") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_com" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_com") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_com" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_gr") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_gr" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_gr") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_gr" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_hs") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_hs" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_hs") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_hs" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_col") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_col" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_col") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_col" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_hscol") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_hscol" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_hscol") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_hscol" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_edu") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_edu" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_edu") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_edu" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_com") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_com" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_com") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_com" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_gr") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_gr" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_gr") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_gr" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_hs") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_hs" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_hs") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_hs" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_col") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_col" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_col") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_col" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_hscol") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_hscol" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_hscol") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_hscol" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("r_count") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "r_count" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nr_count") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nr_count" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("c_count") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "c_count" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nc_count") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nc_count" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("bp_count") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "bp_count" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If If pFeatureLayer.FeatureClass.FindField("nbp_count") = -1 Then Set pFieldEdit = New esriGeoDatabase.Field pFieldEdit.Name = "nbp_count" pFieldEdit.Type = esriFieldTypeString pFeatureLayer.FeatureClass.AddField pFieldEdit End If ' Table editing preparations--------------------------------------------------------------- '******* IMPORTANT Note: MUST use FeatureClass.Update to update later****** IMPORTANT Set pSelFeatCursor = pFeatureLayer.FeatureClass.Update(Nothing, False) Set pFeature = pSelFeatCursor.NextFeature If pFeature.Shape.GeometryType <> esriGeometryPolygon Then MsgBox ("This script only works for polygon feature layers!") Exit Sub End If ' Find the field in which value will be assigned to------------------------------------ ' Declaring existing fields Dim eduFldInd As Double ' FID field of each feature (polygon) Dim erepoFldInd As Long Dim comFldInd As Double Dim grmFldInd As Double Dim hsFldInd As Double Dim colFldInd As Double Dim ageFldInd As Double Dim relFldInd As String Dim mbpFldInd As String Dim fbpFldInd As String ' Declaring constructed fields Dim meducFldInd As Double Dim mcomcFldInd As Double Dim mgrmcFldInd As Double Dim mhscFldInd As Double Dim mcolcFldInd As Double Dim mhscolcFldInd As Double Dim meduncFldInd As Double Dim mcomncFldInd As Double Dim mgrmncFldInd As Double Dim mhsncFldInd As Double Dim mcolncFldInd As Double Dim mhscolncFldInd As Double Dim medurFldInd As Double Dim mcomrFldInd As Double Dim mgrmrFldInd As Double Dim mhsrFldInd As Double Dim mcolrFldInd As Double Dim mhscolrFldInd As Double Dim medunrFldInd As Double Dim mcomnrFldInd As Double Dim mgrmnrFldInd As Double Dim mhsnrFldInd As Double Dim mcolnrFldInd As Double Dim mhscolnrFldInd As Double Dim medubFldInd As Double Dim mcombFldInd As Double Dim mgrmbFldInd As Double Dim mhsbFldInd As Double Dim mcolbFldInd As Double Dim mhscolbFldInd As Double Dim medunbFldInd As Double Dim mcomnbFldInd As Double Dim mgrmnbFldInd As Double Dim mhsnbFldInd As Double Dim mcolnbFldInd As Double Dim mhscolnbFldInd As Double Dim countcFldInd As Long Dim countncFldInd As Long Dim countrFldInd As Long Dim countnrFldInd As Long Dim countbFldInd As Long Dim countnbFldInd As Long eduFldInd = pSelFeatCursor.FindField("total_sch") erepoFldInd = pSelFeatCursor.FindField("edu_repo") comFldInd = pSelFeatCursor.FindField("common") grmFldInd = pSelFeatCursor.FindField("grammar") hsFldInd = pSelFeatCursor.FindField("high_sch") colFldInd = pSelFeatCursor.FindField("college") ageFldInd = pSelFeatCursor.FindField("byear") relFldInd = pSelFeatCursor.FindField("rel_num") mbpFldInd = pSelFeatCursor.FindField("mbplace") fbpFldInd = pSelFeatCursor.FindField("fbplace") meducFldInd = pSelFeatCursor.FindField("c_edu") mcomcFldInd = pSelFeatCursor.FindField("c_com") mgrmcFldInd = pSelFeatCursor.FindField("c_gr") mhscFldInd = pSelFeatCursor.FindField("c_hs") mcolcFldInd = pSelFeatCursor.FindField("c_col") mhscolcFldInd = pSelFeatCursor.FindField("c_hscol") meduncFldInd = pSelFeatCursor.FindField("nc_edu") mcomncFldInd = pSelFeatCursor.FindField("nc_com") mgrmncFldInd = pSelFeatCursor.FindField("nc_gr") mhsncFldInd = pSelFeatCursor.FindField("nc_hs") mcolncFldInd = pSelFeatCursor.FindField("nc_col") mhscolncFldInd = pSelFeatCursor.FindField("nc_hscol") medurFldInd = pSelFeatCursor.FindField("r_edu") mcomrFldInd = pSelFeatCursor.FindField("r_com") mgrmrFldInd = pSelFeatCursor.FindField("r_gr") mhsrFldInd = pSelFeatCursor.FindField("r_hs") mcolrFldInd = pSelFeatCursor.FindField("r_col") mhscolrFldInd = pSelFeatCursor.FindField("r_hscol") medunrFldInd = pSelFeatCursor.FindField("nr_edu") mcomnrFldInd = pSelFeatCursor.FindField("nr_com") mgrmnrFldInd = pSelFeatCursor.FindField("nr_gr") mhsnrFldInd = pSelFeatCursor.FindField("nr_hs") mcolnrFldInd = pSelFeatCursor.FindField("nr_col") mhscolnrFldInd = pSelFeatCursor.FindField("nr_hscol") medubFldInd = pSelFeatCursor.FindField("bp_edu") mcombFldInd = pSelFeatCursor.FindField("bp_com") mgrmbFldInd = pSelFeatCursor.FindField("bp_gr") mhsbFldInd = pSelFeatCursor.FindField("bp_hs") mcolbFldInd = pSelFeatCursor.FindField("bp_col") mhscolbFldInd = pSelFeatCursor.FindField("bp_hscol") medunbFldInd = pSelFeatCursor.FindField("nbp_edu") mcomnbFldInd = pSelFeatCursor.FindField("nbp_com") mgrmnbFldInd = pSelFeatCursor.FindField("nbp_gr") mhsnbFldInd = pSelFeatCursor.FindField("nbp_hs") mcolnbFldInd = pSelFeatCursor.FindField("nbp_col") mhscolnbFldInd = pSelFeatCursor.FindField("nbp_hscol") countcFldInd = pSelFeatCursor.FindField("c_count") countncFldInd = pSelFeatCursor.FindField("nc_count") countrFldInd = pSelFeatCursor.FindField("r_count") countnrFldInd = pSelFeatCursor.FindField("nr_count") countbFldInd = pSelFeatCursor.FindField("bp_count") countnbFldInd = pSelFeatCursor.FindField("nbp_count") ' Find the field in which value will be assigned to------------------------------------ ' Status bar preparations--------------------------------------------------------------- Dim pStatusBar As IStatusBar Dim pProgbar As IStepProgressor Set pStatusBar = ThisDocument.Parent.StatusBar Set pProgbar = pStatusBar.ProgressBar pProgbar.Position = 0 pStatusBar.ShowProgressBar "Working...", 0, totalFCount, 1, True ' Status bar preparations--------------------------------------------------------------- ' Loop for ALL the features (polygons) in the layer------------------------------- Do While (Not pFeature Is Nothing) Set pSelArea = pFeature.Shape 'Get the shape geometry of the selected feature--- Set pRelOp = pSelArea Dim ownage As Long Dim ownagelb As Long Dim ownageub As Long Dim ownrel As Long Dim ownmbp As String Dim ownfbp As String Dim ownmbpl As Long Dim ownfbpl As Long Dim ownbpcheck As Long Dim agecheck As Long Dim cohort As Long Dim educheck As Long Dim relcheck As Long Dim fbpcheck As String Dim mbpcheck As String Dim bpcheck As Long Dim kcohort As Long Dim kncohort As Long Dim kreligion As Long Dim knreligion As Long Dim kbp As Long Dim knbp As Long Dim meaneducohort As Double Dim meaneduncohort As Double Dim meancomcohort As Double Dim meancomncohort As Double Dim meangrmcohort As Double Dim meangrmncohort As Double Dim meanhscohort As Double Dim meanhsncohort As Double Dim meancolcohort As Double Dim meancolncohort As Double Dim meanhscolcohort As Double Dim meanhscolncohort As Double Dim meanedurel As Double Dim meanedunrel As Double Dim meancomrel As Double Dim meancomnrel As Double Dim meangrmrel As Double Dim meangrmnrel As Double Dim meanhsrel As Double Dim meanhsnrel As Double Dim meancolrel As Double Dim meancolnrel As Double Dim meanhscolrel As Double Dim meanhscolnrel As Double Dim meanedubp As Double Dim meanedunbp As Double Dim meancombp As Double Dim meancomnbp As Double Dim meangrmbp As Double Dim meangrmnbp As Double Dim meanhsbp As Double Dim meanhsnbp As Double Dim meancolbp As Double Dim meancolnbp As Double Dim meanhscolbp As Double Dim meanhscolnbp As Double ownage = 0 ownagelb = 0 ownageub = 0 ownrel = 0 ownmbp = 0 ownfbp = 0 ownmbpl = 0 ownfbpl = 0 ownbpcheck = 0 agecheck = 0 cohort = 0 educheck = 0 relcheck = 0 fbpcheck = 0 mbpcheck = 0 bpcheck = 0 kcohort = 0 kncohort = 0 kreligion = 0 knreligion = 0 kbp = 0 knbp = 0 meaneducohort = 0 meaneduncohort = 0 meancomcohort = 0 meancomncohort = 0 meangrmcohort = 0 meangrmncohort = 0 meanhscohort = 0 meanhsncohort = 0 meancolcohort = 0 meancolncohort = 0 meanhscolcohort = 0 meanhscolncohort = 0 meanedurel = 0 meanedunrel = 0 meancomrel = 0 meancomnrel = 0 meangrmrel = 0 meangrmnrel = 0 meanhsrel = 0 meanhsnrel = 0 meancolrel = 0 meancolnrel = 0 meanhscolrel = 0 meanhscolnrel = 0 meanedubp = 0 meanedunbp = 0 meancombp = 0 meancomnbp = 0 meangrmbp = 0 meangrmnbp = 0 meanhsbp = 0 meanhsnbp = 0 meancolbp = 0 meancolnbp = 0 meanhscolbp = 0 meanhscolnbp = 0 ownage = pFeature.Value(ageFldInd) ownagelb = pFeature.Value(ageFldInd) - 5 ownageub = pFeature.Value(ageFldInd) + 5 ownrel = pFeature.Value(relFldInd) ownmbp = pFeature.Value(mbpFldInd) ownfbp = pFeature.Value(fbpFldInd) ownmbpl = len(pFeature.Value(mbpFldInd)) ownfbpl = len(pFeature.Value(fbpFldInd)) If (ownfbpl > 1 And ownmbpl > 1) Then ownbpcheck = 1 End If If (ownfbpl < 2 Or ownmbpl < 2) Then ownbpcheck = 0 End If ' STOPPED EDITING CODE HERE, NEED TO ADD CALCULATIONS FOR MEAN/MAX COM,GRAM,HIGH,COLL ' Loop for ALL the features (polygons) in the layer-------------------------------------- Set pFeatCursor = pFeatureLayer.Search(Nothing, False) 'Get all the features in the layer Set newPFeature = pFeatCursor.NextFeature Do While (Not newPFeature Is Nothing) Set pArea = newPFeature.Shape If pRelOp.Touches(pArea) Then agecheck = newPFeature.Value(ageFldInd) If (agecheck > ownagelb And agecheck < ownageub) Then cohort = 1 End If If (agecheck < ownagelb Or agecheck > ownageub) Then cohort = 0 End If educheck = newPFeature.Value(erepoFldInd) relcheck = newPFeature.Value(relFldInd) fbpcheck = newPFeature.Value(fbpFldInd) mbpcheck = newPFeature.Value(mbpFldInd) bpcheck = 0 If (fbpcheck = ownfbp And mbpcheck = ownmbp) Then bpcheck = 1 End If If (educheck = 1 And cohort = 1) Then kcohort = kcohort + 1 meaneducohort = meaneducohort + newPFeature.Value(eduFldInd) meancomcohort = meancomcohort + newPFeature.Value(comFldInd) meangrmcohort = meangrmcohort + newPFeature.Value(grmFldInd) meanhscohort = meanhscohort + newPFeature.Value(hsFldInd) meancolcohort = meancolcohort + newPFeature.Value(colFldInd) meanhscolcohort = meanhscolcohort + newPFeature.Value(hsFldInd) + newPFeature.Value(colFldInd) End If If (educheck = 1 And cohort = 0) Then kncohort = kncohort + 1 meaneduncohort = meaneduncohort + newPFeature.Value(eduFldInd) meancomncohort = meancomncohort + newPFeature.Value(comFldInd) meangrmncohort = meangrmncohort + newPFeature.Value(grmFldInd) meanhsncohort = meanhsncohort + newPFeature.Value(hsFldInd) meancolncohort = meancolncohort + newPFeature.Value(colFldInd) meanhscolncohort = meanhscolncohort + newPFeature.Value(hsFldInd) + newPFeature.Value(colFldInd) End If If (educheck = 1 And ownrel > 0 And ownrel < 90 And relcheck = ownrel) Then kreligion = kreligion + 1 meanedurel = meanedurel + newPFeature.Value(eduFldInd) meancomrel = meancomrel + newPFeature.Value(comFldInd) meangrmrel = meangrmrel + newPFeature.Value(grmFldInd) meanhsrel = meanhsrel + newPFeature.Value(hsFldInd) meancolrel = meancolrel + newPFeature.Value(colFldInd) meanhscolrel = meanhscolrel + newPFeature.Value(hsFldInd) + newPFeature.Value(colFldInd) End If If (educheck = 1 And ownrel > 0 And ownrel < 90 And relcheck <> ownrel) Then knreligion = knreligion + 1 meanedunrel = meanedunrel + newPFeature.Value(eduFldInd) meancomnrel = meancomnrel + newPFeature.Value(comFldInd) meangrmnrel = meangrmnrel + newPFeature.Value(grmFldInd) meanhsnrel = meanhsnrel + newPFeature.Value(hsFldInd) meancolnrel = meancolnrel + newPFeature.Value(colFldInd) meanhscolnrel = meanhscolnrel + newPFeature.Value(hsFldInd) + newPFeature.Value(colFldInd) End If If (educheck = 1 And ownbpcheck = 1 And bpcheck = 1) Then kbp = kbp + 1 meanedubp = meanedubp + newPFeature.Value(eduFldInd) meancombp = meancombp + newPFeature.Value(comFldInd) meangrmbp = meangrmbp + newPFeature.Value(grmFldInd) meanhsbp = meanhsbp + newPFeature.Value(hsFldInd) meancolbp = meancolbp + newPFeature.Value(colFldInd) meanhscolbp = meanhscolbp + newPFeature.Value(hsFldInd) + newPFeature.Value(colFldInd) End If If (educheck = 1 And ownbpcheck = 1 And bpcheck = 0) Then knbp = knbp + 1 meanedunbp = meanedunbp + newPFeature.Value(eduFldInd) meancomnbp = meancomnbp + newPFeature.Value(comFldInd) meangrmnbp = meangrmnbp + newPFeature.Value(grmFldInd) meanhsnbp = meanhsnbp + newPFeature.Value(hsFldInd) meancolnbp = meancolnbp + newPFeature.Value(colFldInd) meanhscolnbp = meanhscolnbp + newPFeature.Value(hsFldInd) + newPFeature.Value(colFldInd) End If End If Set newPFeature = pFeatCursor.NextFeature Loop ' Loop for ALL the features (polygons) in the layer-------------------------------------- If kcohort > 0 Then meaneducohort = meaneducohort / kcohort meanhscolcohort = meanhscolcohort / kcohort meancomcohort = meancomcohort / kcohort meangrmcohort = meangrmcohort / kcohort meanhscohort = meanhscohort / kcohort meancolcohort = meancolcohort / kcohort End If If kncohort > 0 Then meaneduncohort = meaneduncohort / kncohort meanhscolncohort = meanhscolncohort / kncohort meancomncohort = meancomncohort / kncohort meangrmncohort = meangrmncohort / kncohort meanhsncohort = meanhsncohort / kncohort meancolncohort = meancolncohort / kncohort End If If kreligion > 0 Then meanedurel = meanedurel / kreligion meanhscolrel = meanhscolrel / kreligion meancomrel = meancomrel / kreligion meangrmrel = meangrmrel / kreligion meanhsrel = meanhsrel / kreligion meancolrel = meancolrel / kreligion End If If knreligion > 0 Then meanedunrel = meanedunrel / knreligion meanhscolnrel = meanhscolnrel / knreligion meancomnrel = meancomnrel / knreligion meangrmnrel = meangrmnrel / knreligion meanhsnrel = meanhsnrel / knreligion meancolnrel = meancolnrel / knreligion End If If kbp > 0 Then meanedubp = meanedubp / kbp meanhscolbp = meanhscolbp / kbp meancombp = meancombp / kbp meangrmbp = meangrmbp / kbp meanhsbp = meanhsbp / kbp meancolbp = meancolbp / kbp End If If knbp > 0 Then meanedunbp = meanedunbp / knbp meanhscolnbp = meanhscolnbp / knbp meancomnbp = meancomnbp / knbp meangrmnbp = meangrmnbp / knbp meanhsnbp = meanhsnbp / knbp meancolnbp = meancolnbp / knbp End If pFeature.Value(meducFldInd) = meaneducohort pFeature.Value(mcomcFldInd) = meancomcohort pFeature.Value(mgrmcFldInd) = meangrmcohort pFeature.Value(mhscFldInd) = meanhscohort pFeature.Value(mcolcFldInd) = meancolcohort pFeature.Value(mhscolcFldInd) = meanhscolcohort pFeature.Value(countcFldInd) = kcohort pFeature.Value(meduncFldInd) = meaneduncohort pFeature.Value(mcomncFldInd) = meancomncohort pFeature.Value(mgrmncFldInd) = meangrmncohort pFeature.Value(mhsncFldInd) = meanhsncohort pFeature.Value(mcolncFldInd) = meancolncohort pFeature.Value(mhscolncFldInd) = meanhscolncohort pFeature.Value(countncFldInd) = kncohort pFeature.Value(medurFldInd) = meanedurel pFeature.Value(mcomrFldInd) = meancomrel pFeature.Value(mgrmrFldInd) = meangrmrel pFeature.Value(mhsrFldInd) = meanhsrel pFeature.Value(mcolrFldInd) = meancolrel pFeature.Value(mhscolrFldInd) = meanhscolrel pFeature.Value(countrFldInd) = kreligion pFeature.Value(medunrFldInd) = meanedunrel pFeature.Value(mcomnrFldInd) = meancomnrel pFeature.Value(mgrmnrFldInd) = meangrmnrel pFeature.Value(mhsnrFldInd) = meanhsnrel pFeature.Value(mcolnrFldInd) = meancolnrel pFeature.Value(mhscolnrFldInd) = meanhscolnrel pFeature.Value(countnrFldInd) = knreligion pFeature.Value(medubFldInd) = meanedubp pFeature.Value(mcombFldInd) = meancombp pFeature.Value(mgrmbFldInd) = meangrmbp pFeature.Value(mhsbFldInd) = meanhsbp pFeature.Value(mcolbFldInd) = meancolbp pFeature.Value(mhscolbFldInd) = meanhscolbp pFeature.Value(countbFldInd) = kbp pFeature.Value(medunbFldInd) = meanedunbp pFeature.Value(mcomnbFldInd) = meancomnbp pFeature.Value(mgrmnbFldInd) = meangrmnbp pFeature.Value(mhsnbFldInd) = meanhsnbp pFeature.Value(mcolnbFldInd) = meancolnbp pFeature.Value(mhscolnbFldInd) = meanhscolnbp pFeature.Value(countnbFldInd) = knbp pSelFeatCursor.UpdateFeature pFeature ' Write the field kcohort = 0 kncohort = 0 kreligion = 0 knreligion = 0 kbp = 0 knbp = 0 meaneducohort = 0 meaneduncohort = 0 meancomcohort = 0 meancomncohort = 0 meangrmcohort = 0 meangrmncohort = 0 meanhscohort = 0 meanhsncohort = 0 meanhscolcohort = 0 meanhscolncohort = 0 meanhscolcohort = 0 meanhscolncohort = 0 meanedurel = 0 meanedunrel = 0 meancomrel = 0 meancomnrel = 0 meangrmrel = 0 meangrmnrel = 0 meanhsrel = 0 meanhsnrel = 0 meancolrel = 0 meancolnrel = 0 meanhscolrel = 0 meanhscolnrel = 0 meanedubp = 0 meanedunbp = 0 meancombp = 0 meancomnbp = 0 meangrmbp = 0 meangrmnbp = 0 meanhsbp = 0 meanhsnbp = 0 meancolbp = 0 meancolnbp = 0 meanhscolbp = 0 meanhscolnbp = 0 Set pFeature = pSelFeatCursor.NextFeature pStatusBar.StepProgressBar Loop ' Loop for ALL the SELECTED features (polygons) in the layer------------------------------- pStatusBar.HideProgressBar ' House keeping stuff ---------------------------------------------------------------------- Set pEnumFeature = Nothing Set pFeature = Nothing Set newPFeature = Nothing Set pFeatureLayer = Nothing Set pFeatCursor = Nothing Set pSelFeatCursor = Nothing Set pFcls = Nothing Set pStatusBar = Nothing Set pProgbar = Nothing Set pArea = Nothing Set pSelArea = Nothing Set pRelOp = Nothing End Sub