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"
1 Answer 1
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
-
Thanks for your reply. So the model dialog opens, I click OK to run and I get this error.artwork21– artwork212011年01月10日 12:51:05 +00:00Commented Jan 10, 2011 at 12:51
-
WARNING 000728: Field GeoPhyLogs does not exist within tableartwork21– artwork212011年01月10日 12:52:30 +00:00Commented Jan 10, 2011 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– artwork212011年01月10日 12:55:41 +00:00Commented Jan 10, 2011 at 12:55
-
However, the model does run fine when I open the model via edit and run it.artwork21– artwork212011年01月10日 12:56:38 +00:00Commented Jan 10, 2011 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– artwork212011年06月24日 19:21:12 +00:00Commented Jun 24, 2011 at 19:21
Explore related questions
See similar questions with these tags.