Caveat #1: I haven't yet read any books specifically about .NET for Access
developers, so it's possible I may be doing such books an injustice.
Caveat #2: I'm a relative beginner at .NET. I have developed two ASP.NET
apps, but they were simple apps designed as add-ons to existing Access apps
that continue to handle the bulk of the work.
That said ...
Although the terminology you use here is in common use, Scott, including in
Microsoft's own documentation, it's not very accurate and can cause
confusion. When you use a VB app (regardless of whether it is a VB6 app or a
VB.NET app) to access and manipulate data in an MDB, you are not using
Access, you're using the JET database engine. You as a developer may use
Access to design the database, but when the application runs, it does not
use Access - it will run perfectly happily on a PC on which Access is not
installed at all.
The point is, to develop such an app, you don't need to know much about
Access at all. You need a good understanding of the JET SQL dialect, but you
don't need to know how to design or program Access forms or reports, because
you won't be doing that.
As you probably already know, to manipulate data in a .NET app, you use a
data provider. The .NET Framework 1.1 includes four data providers, for OLE
DB, SQL Server, Oracle, and ODBC. To access and manipulate data in a JET
database, you use the OLE DB provider, via classes in the System.Data.OleDb
namespace, such as OleDbConnection, OleDbDataAdapter and OleDbCommand, while
to access and manipulate data in a SQL Server database you would commonly
use classes in the System.Data.SqlClient namespace, such as SqlConnection,
SqlDataAdapter, and SqlCommand.
The key point here is that, in my experience so far, there are very few
differences in the use of the corresponding classes in the different
namespaces. For the most part, they support the same properties, methods and
events, and behave in the same way. For that reason, and until I have an
opportunity to read one, I'm somewhat mystified as to how anyone could write
an entire book about the subject. Any good book on .NET database development
will cover the differences between using the System.Data.SqlClient namespace
and the System.Data.OleDb namespace, because the latter is used with other
data sources as well as JET for which there is no more specific provider,
including versions of SQL Server prior to version 7.
The only differences that I can think of off-hand (if anyone more
experienced with .NET knows of other important differences, please don't
hesitate to jump in here) are ...
a) The connection strings differ.
b) No stored procedures in JET.
c) No named parameters with the OleDbCommand - you have to specify
parameters by their ordinal position in the Parameters collection.
For these reasons, you should find that any good book on database
development using VB.NET will be useful to you, it really doesn't need to
say a lot about Access, just make sure that it covers the OleDb provider and
doesn't focus exclusively on SQL Server.