I am using arc10. I created some queries in MS access that I can open up in arcmap utilizing the database connections. It works fairly well but is rather slow. I wanted to know if there is a model that I could create, such that when arcmap is started, it would take the joined table from access and create a layer for the user to use as I think the connection from MS access query to arcmap 10 is making the process very slow. It works but if the table were saved as a layer it is faster. I could manually do it but if there is a way to automate the process that would be better as multiple users are involved. I'll try creating the model and seeing if I can get it to work.
2 Answers
Sounds like a job for model builder, feed the XY event tool into copy features tool to make a permanent dataset. You can turn the model into a tool by exposing the inputs and outputs as parameters.
-
Ok thanks, I saw an example online that does this one. So this will save the features to a database. I have the tables added in arcmap from the access database via the database connection. Then I right click and create the event. save. So everytime I open the arcmap.mxd this layer is updated from the table that's linked. can one create a model that will add the layer to the map. I tried posting a pic but its not working for me. Instead of someone having to add the new updated layers the layers would just be added? Hopefully im making sense– pbdudleyCommented Mar 24, 2016 at 21:11
-
Modelbuilder has no tool for specifically adding data to a map. This is not necessary if the table name and location have not changed then you simply set the input table to the make XY layer tool to be the table in your mdb. The tool will accept tables added to an mxd or direct file path names.– HornbyddCommented Mar 25, 2016 at 9:51
The way to get Modelbuilder to add data to a map is to use the Make Table View tool from the Data Management Tools, Layers and Table Views.
In explanation, you must
- Have users provide a database connection, because it may be different on every machine.
- For the input table parameter, since you want to hard-code your model, use your database connection variable with the MSAccess query name. Per my example: AccessQuery = %Access Query Database Connection%/StationSeriesQuery for a query named StationSeriesQuery.
- To have the resulting table view layer load to the map, make sure you set the output table layer properties to be a model parameter and to "add to display".
One odd querk with modelbuilder and database connections I have found is that sometimes I have to cut and paste the connection from the catalog window because the dialog can't "find" my connections. That is, my only choice is to create another connection. If that happens, instruct your users to cut and paste it from the catalog window.
The model would look something like this:
The dialog would look something like this:
And here is the output:
-
Ok. thank you very much. I didn't know all of that. Ill try to see if I can get it to work. thanks– pbdudleyCommented Mar 25, 2016 at 13:44
-
I already have the table added through arcatalog and the DB connection as in your output image. I right clicked and created the event layer. I wanted to know how to automatically have the output feature class added as outlined in the model example Hornbydd above. When connected with the table it seems to run slow from my MS access queries, then to Arcmap. I thought if I could run the model that creates the layer files then have these added to the arcmap display that it might speed up some. I tried right clicking on output, add to display, but it doesn't add it. thanks for all the help– pbdudleyCommented Mar 25, 2016 at 14:13
-
Ok I got it to work. I didn't know that if I opened model builder from arcmap and not arcatalog that I could have it create the layer for me. I need to read up on model builder very useful. Thank you all for the help– pbdudleyCommented Mar 25, 2016 at 14:48
-