Long winded ADP ADO OLE DB ODBC question

Im wondering if someone can give me some explanation regarding these layers of communication.  If find them quite confusing.  In particular, the hype regarding how great Access ADP files are because of their native connectivity with SQL Server.  In my limited experience with them, I have found them to be rather cumbersome and limiting.  I appreciate the speed advantages they have over linking SQL tables to an MDB file, but theres some downsides as well.  Not being able to use local tables is definitely one of them.  If you have full access to SQL server, then you can create your views, sp's, triggers, tables etc, then using ADO you can open or call any of these objects directly from an MDB file.  At the same time you can link to other data sources using ODBC.  Is using ADO to call an sp or open a recordset from MS SQL the same as connecting with an ADP file and binding views to your forms.

Sorry if this question is kind of all over the place but Id like to get these things straight, to help me make decisions in designing future apps.


LVL 11
Who is Participating?
tbsgadiConnect With a Mentor Commented:
I found this article very useful:

Access projects have advantages over the other methods of accessing client-server data I've covered:
They provide direct access to a SQL Server database.
You can easily create and modify SQL Server tables, views, database diagrams, and stored procedures, all from the Access development environment.
You can backup and restore the SQL Server database, maintain SQL Server security, and perform SQL Server replication tasks.
You can build forms, reports, data access pages, and modules that access SQL Server data, without involving Jet.
The client side requires fewer resources.
The server is responsible for all query processing.
You can use functionality not available when accessing ODBC via Jet.
You can execute asynchronous queries -- you don't have to wait for a query to complete execution before you begin another operation.
You can perform batch updates -- You can cache changes locally and then submit them to the server as a batch.
You can run queries that return multiple result sets.
You can easily limit the number of records returned in a result set.
You can easily monitor messages and errors generated by the remote data source.

Access Data Projects also have several disadvantages:
You can't create local tables. This means the row source of static combo boxes and list boxes, for example, must be SQL Server tables. This results in unnecessary network traffic being generated as these combo boxes and list boxes are populated.
You can't create local queries. What were tables in your Access database (.MDB) must be created as views or stored procedures in your Access data project (.ADP). Even the most experienced query experts may find it challenging and time-consuming to rebuild complex Access queries as views and stored procedures.
The process of building an application using an ADP file involves a learning curve.
Kevin3NFConnect With a Mentor Commented:

I find that the ADPs are really nice, but painfully hard to get right until you get over the very steep learning curve.  If you need local tables, then MDBs are great.  If you want to stick with MDB but get the speed, pass-thru queries wok really well too, especially when executing a stored procedure.  My understanding is that ADPs do use ADO.  It really boils down to personal choice.  A big benefit of ADP is the ability to design SQL Server object inside the Access application, especially if you are using MSDE instead of full SQL Server.

Does that help?

BillPowellAuthor Commented:
Hey guys,

Thanks for the responses.  I guess if your using MSDE and dont have access to full MS SQL with enterprise manager, this can be a big advantage of ADP's.  I guess theres one thing still puzzling me about ADP's MDB communication to SQL server.  Lets say you write an app with an MDB file.  You dont link the sql tables, but instead access them through ADO code calling stored procedures and views etc.  You can still use some local tables if needed, thus maintaining some flexibility.  In this scenario, would the ADP still have any performance advantage over the mdb.  Also, would either of these two scenarios be more favourable if you decide to ditch access and upgrade to vb.net as a development tool?
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

In the first case you described the ADP still has the advantage.
In the second case obviously if you'd wish to upgrade to vb.net you'd be able to use the ADO code & not the mdb
BillPowellAuthor Commented:
Thanks for the input guys.  Ive been gathering more info and reading some other links too, and I think Im getting a handle on it.


also check out the Microsoft newsgroup: Microsoft.public.access.adp.sqlserver (or something like that)....
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.