Microsoft Access Database (Mdb) Vs Access Data
Project (Adp)
Both
Microsoft Access Database and Access Database Project can be
used to develop database management applications. Although their
business objective is same, an access data project (.adp file)
differs from a regular access database (.mdb file) in many ways.
It also eliminates lot of problems you are likely to encounter
when running a database that requires several users to be logged
in at the same time. The main difference between the two is that
an MDB file contains all the code, data, queries etc. in one
neat little container (an MDB file), the ADP separates the data
from the application by using tables and queries residing on the
back-end database such as SQL server.
The
main advantage of the ADP over the MDB is that the data could be
housed in a central and high-powered RDBMS such as SQL Server.
The biggest disadvantage with the MDB is that any end user can
make a copy and put new data in that copy, thus creating two of
the same databases with different data in it, which creates a
greater deal of confusion in the whole user group. Then we have
multiple databases out there with each user adding different
data to each one, they make copies of their new ones and
distribute them to everybody, now we have many different
database files, none of them have all the data we would like to
have at one place. With an ADP, users can make copies of the
project all day long if they want, and as developers, without
causing any confusion because there is only one central location
to change data irrespective of number of ADP files.
Access
data projects (.ADP) are designed to connect to a Microsoft SQL
Server or Microsoft SQL Server Desktop Engine (MSDE) back-end
database. Structured Query Language (SQL) is a standard
interactive and programming language for working with relational
databases. The Transact-SQL language is the native SQL dialect
used by both SQL Server and the Desktop Engine. Transact-SQL
supports ANSI SQL-92, the latest SQL standard. In Access 2002 or
later that support the ANSI SQL-92, projects running queries or
filter expressions against SQL Server data must do so in ANSI
SQL-92 syntax. This will affect the way that you develop filter
expressions and queries in Access Data Projects (.ADP).
Microsoft
Access databases (.MDB) use the Jet Database Engine to query
against the native data. Jet supports the ANSI SQL-89 standard
(Jet SQL syntax). Jet SQL syntax differs from the ANSI SQL-92
standard in several ways. For example, Jet SQL syntax uses an
asterisk (*) for a multiple character wildcard, while ANSI
SQL-92 syntax uses a percent sign (%). For example, if you had a
macro in MDB file that is searching for CustomerName starting
with “A” would have an expression as CustomerName = A*.
It no longer finds all customer names beginning with the letter
“A” in ADP file because the asterisk (*) is not an ANSI
SQL-92 wildcard character. To resolve this, revise the macro
expression to use the percent sign (%) wildcard character
instead making it to CustomerName = A%
The
Jet Database Engine is used to work with the data in an Access
(.MDB) database and supports the ANSI SQL-89 standard. However,
access data project (.ADP) connects to Jet by using ActiveX Data
Objects (ADO) and the Jet OLEDB provider. ADO and OLEDB always
use ANSI SQL-92 syntax. Thus, data access pages must use ANSI
SQL-92 syntax. So, a form and a page bound to the same query can
return different results, depends on weather it is in MDB or
ADP.