Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I would like to Run/execute a model within ArcMap 9.3.1 vba. I can run it in vba by exporting out the VBS script and importing it into vba, however I'm wondering if there is an easier way to just call the model by where it is located instead of using the VBS script (e.g. see below).

Run "C:\Data\New File Geodatabase.gdb\Toolbox\Model"

Thanks for any assistance.

share|improve this question

1 Answer 1

up vote 4 down vote accepted

This code will run existing tools or models that your create:

Private Sub opentool_Click()
'Ensure that there are references set to the
'ESRI GeoprocessingUI Object Library and the
'ESRI Geoprocessing Object Library.
'Go to Tools > References to do this

Dim pUID As New UID
pUID = "esriGeoprocessingUI.ArcToolboxExtension"

Dim pATBExt As IArcToolboxExtension
Set pATBExt = Application.FindExtensionByCLSID(pUID)

Dim pAtb As IArcToolbox
Set pAtb = pATBExt.ArcToolbox

Dim pTool As IGPTool

'* Use this line for custom tools or models
'* ========================================
Set pTool = pAtb.GetToolbyNameString("Model8")

'* Use this line for existing tools
'* ================================
'Set pTool = pAtb.GetToolbyNameString("buffer_analysis")

Dim pCommand As IGPToolCommandHelper
Set pCommand = New GPToolCommandHelper
pCommand.SetTool pTool
pCommand.Invoke Nothing

End Sub

Right click on your tool in ArcToolox and go to properties to find the model name. alt text

share|improve this answer
    
Thanks for your reply. So the model dialog opens, I click OK to run and I get this error. –  artwork21 Jan 10 '11 at 12:51
    
WARNING 000728: Field GeoPhyLogs does not exist within table –  artwork21 Jan 10 '11 at 12:52
    
ERROR 000735: Input Table: Value is required, ERROR 0007: Input Dataset: Value is required, ERROR 000735: Join Table: Value is required, ERROR 000735 Input Table is required, WARNING 000728: Field BUFF_DIST does not exist within table, The value does not exist. –  artwork21 Jan 10 '11 at 12:55
    
However, the model does run fine when I open the model via edit and run it. –  artwork21 Jan 10 '11 at 12:56
    
I forgot to add some references to my project, your code works fine. Is there a way to automate a "Enter" keystroke or to click the "Ok" button when the model dialog opens? –  artwork21 Jun 24 '11 at 19:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.