Can you please give me the URL?
Thanks again,
http://technet2.microsoft.com/Office/en-us/library/1dce641e-ba1c-446a
-8ff2-221769a58ba51033.mspx?mfr=true
(get rid of the word wrap, with no spaces)
The key section:
Access Data Projects (ADPs)
An Access Data Project is an OLE document file, like the .xls
or.doc file formats. It contains forms, reports, macros, VBA
modules, and a connection string. All tables and queries are
stored in SQL Server. The ADP architecture was designed to create
client-server applications. Because of this, there is a limit to
the number of records that Access returns in any recordset. This
limit is configurable, but you typically must build enough
filtering into your application so that you do not reach the
limit.
Access uses OLEDB to communicate with SQL Server. To provide the
Jet-like cursor behavior desired for desktop applications, Access
implements the Client Data Manager (CDM) as an additional layer
between Access and OLEDB.
Because of the layers required to get from Access to SQL Server
in the ADP architecture, it is often easier to optimize MDB/ACCDB
file solutions. However, there are some scenarios where a report
might be generated significantly faster in an ADP file. To add
these performance improvements and retain the flexibility of SQL
Server, you can build the majority of the application in an MDB
or ACCDB file and have the file load reports from a referenced
ADP file.
One advantage that ADP files have over files in MDB or ACCDB
format is the ability to make design changes to SQL Server
objects. ADP files include graphical designers for tables, views,
stored procedures, functions, and database diagrams.
If I understand correctly, as long as I use pass through query
then MDB and ADP have same performanace.
It's not quite that simple. The easiest way to do this is to write
your SQL in Access and if it has a problem, then create views or
stored procedures in SQL Server, or try pass-through. Jet actually
does a surprisingly good job of guessing what's best to send to SQL
Server.
The place where it does badly is with INSERT and UPDATE queries with
multiple records being updated, because (for good reasons) it sends
one row at a time to SQL Server (which allows the SQL Server to
serialize the requested operation in small bits so as to not hog all
the resources). In those cases, a pass-through or stored procedure
is much faster.
I must use local query for the sub form.
You'll use local queries for everything. Some of those local queries
may be pass-throughs.
MDB supports local table, but ADP does not.
Yes.
ADP only support MS SQL server. It is impossible to chage back end
in the future if I want to change it.
Yes. However, an MDB optimized for ODBC to SQL Server will not
necessarily perform well with another back end database engine over
ODBC, as the optimizations may need to be completely different, and
because Jet will be depending on the ODBC driver for figuring out
what to send to the server. It's probably marginally easier to
convert an MDB to a different ODBC back end than to convert from a
Jet back end to SQL Server.
All that said, if there's any contemplation of any back end other
than SQL Server, then an ADP would likely be an unwise choice.