bruce.nielsen

Geoprocessing Tool Failing in VBA Code

Discussion created by bruce.nielsen on Mar 18, 2013
Latest reply on Apr 8, 2013 by bruce.nielsen
I have the code (VBA) below hooked up to a button in ArcMap 10.0. The first time it is used it runs successfully. If I try to run it a second time, the Intersect tool doesn't create the in_memory featureclass as expected and the code fails when it tries to run CalculateField. Any ideas as to why?

    (Identify and validate pLayer & pLayer2)
    ...
    'Intersect the PLU/soils data with the Sections
    Dim pGp As IGeoProcessor
    Set pGp = New GeoProcessor
    pGp.OverwriteOutput = True
    
    Dim pParams As IVariantArray
    Set pParams = New VarArray
    
    Dim PTS As String
    PTS = "PlanningToolSoils"
    
    pParams.RemoveAll
    pParams.Add pLayer.Name & "; " & pLayer2.Name
    pParams.Add "in_memory\" & PTS
    pParams.Add "NO_FID"
    pGp.Execute "Intersect_Analysis", pParams, Nothing
    
    'Update the CALCACRES Column
    pParams.RemoveAll
    pParams.Add PTS
    pParams.Add "CALCACRES"
    pParams.Add "!shape.area@acres!"
    pParams.Add "PYTHON"
    pGp.Execute "CalculateField_management", pParams, Nothing
    
    'Export the tabular portion of the FeatureClass to C:\temp\data.dbf
    pParams.RemoveAll
    pParams.Add PTS
    pParams.Add "C:\temp\Data.dbf"
    pGp.AddOutputsToMap = False
    pGp.Execute "CopyRows_management", pParams, Nothing
    
    'Delete the temporary featureclass
    pMap.DeleteLayer FindLayerByName(pMap, PTS) 'A home-built function that searches for an ILayer in the TOC 
    pParams.RemoveAll
    pParams.Add "in_memory\" & PTS
    pGp.Execute "Delete_management", pParams, Nothing

Outcomes