[GIS] MS Access and geocoding in ArcGIS

arcgis-desktopgeocodingms accessvba

We are a small non-profit. We use a fairly complex MS Access application to track everything.

We would very much like to geocode addresses in our application and display the results on a map. In other words, we would like to input an address and have it display on a map. We would need to use the GIS data provided by our municipality. They use ArcGIS and the MXD files contain a fair amount of ancillary data for each point.

We have access to ArcGIS 9.x. But I am unable to get the map control working in our Access application, and apparently Esri is eliminating that control anyway. I tried the following already:

  • Google Maps static API. Works pretty well, but I have no way of geocoding against the local municipal data.
  • MapWinGIS makes great maps based on ArcGIS file, but I have no way to geocode against the local data, as far as I can tell.
  • Export MXD to KML. Works OK, but no labels/other ancillary data.
  • Export points in ArcGIS and import to Access table. Sloppy, doesn't bode well for future updates to the GIS data provided by the municipality, and have no way of dealing with intersections.

I would be willing to import the ArcGIS data into a different GIS product, if it would help (we could presumably just import new versions of the data in the same way.)

Best Answer

If I have this correct -- biggest constraint is that you must use the local municipal data as the geocoding reference data. This wasn't clear in your original question.

I'll give you the ArcGIS answer -- since that is available to you and what I know.

You need to create a ArcGIS locator from the municipal data, i.e. the reference data. This is your biggest hurdle and will require fiddling with the configuration of the locator. If you have polyline street data, it has to have a beginning and end street number for each record, use "US One Range" style. For dual street number ranges, you can use "US Streets" style. If you have polygon parcels or centroid parcel points or something like that, use "US One Address".

Read through this section on geocoding for ArcGIS 9.3 and follow the instructions there -- http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=An_overview_of_geocoding

Once you have the locator built, you can pull in a table of data with addresses from Access directly into ArcMap. Then, use the built in geocoding tools in ArcMap to run your data through the locator and produce your new geocoded point layer. The output spatial data layer can be created in different formats, but the most used ones for Esri are shapefiles and and Access tables, ArcGIS calls it a personal geodatabase, which is just an mdb with extra tables that manage the spatial data. (There's a new format called file gdb, but since you know Access, use that.)

To display the processed geocoded data - show it in ArcGIS Desktop, Google Maps, ArcGIS Online, Openlayers, etc. Many choices are available, but if you are wanting to display a map in your custom Access application with the geocoded point data -- post another question when you get to that point.

Related Question