BlueSpruce
Well-known member
- Local time
- Today, 15:16
- Joined
- Jul 18, 2025
- Messages
- 1,130
No, it's better that Access does not use ODBC - it uses the native JET/ACE software stack to do this. And thus the result is not only better but since there is no server when using a Access back end?
Then Access does not pull the whole table down the network wire as a result - this is good!!
Even when you use ADO? Well, the ODBC provider actually points to the oleDB provider, which then points to the native JET/ACE engine which of course is DAO.....
So, this is really just a issue of "common" confusing. But, as far as I can tell?
Access NEVER supported or used ODBC when using linked tables (to a access BE) - it's not a new thing - it's how Access always worked.
We the public just kind of "assumed" that Access worked this way - it does not, and never did......
Now, of course when linking to say SQL server?
Well, then yes, now your using ODBC drivers - but they are not used when linking to a Access back end...
So, you can of course use DAO, or ADODB for linked Access tables. Again still a choice.
Now, I don't want to open the ball of spaghetti called ADP projects.
When you use ADODB in Access? The existing table links can be used.
Code:DAO: CurrentDB.Execute "some sql here"
And for ADO, then this:
Code:ADO: Currentproject.Connection.Execute "some sql here"
So, in above, like always, for the ADO example, then you have to use "%" for a wild cards (say like command) in place of the "*" when using DAO.
And thus you ALSO would not use "#" to surround dates like you do in DAO, but NOT with ADO.
And you can of course use DAO + ODBC, or ADODB + oleDB for linking to SQL server.
(but, to be fair, the recent editions of SQL server have stated they dropped support for using oleDB - which ADO uses). While they still support as such, Microsoft has stated that oleDB support is not supported!
Remember, oleDB is a windows only technology. ODBC is a true open standard, supported by Linux servers etc. So, Microsoft has and is dropping oleDB support for SQL server. And that means really ADO support for SQL server is going away in a round about way.
However, these days, that ADODB winds up having oleDB pointing to the ODBC driver for SQL server anyway. Again, either choice exists, again, no depreciation of features here in Access. So, the "going away" of ADO + oleDB support to SQL server? That's the result of SQL server going with ODBC - since that's not a windows only technology like oleDB is. ODBC is a true open standard, supported across multiple platforms and OS's.
So, not really any deprecation here I'm aware of in regards to Access.
The only depreciated feature that some "could" have noticed was the loss of so called JET-direct.
JET-direct allowed by-passing of the ODBC driver. And thus I believe it did give rise to some additional schema (catalog) features. And of course jet direct was also required for replication features which were also removed from ACE.
So, ADO or DAO both still work in Access......
Not a whole lot of reason to use ADO, but one such case would be if your being tasked to convert + migrate a ADO project.
Since all of the VBA recordset code would have been ADO, then I would suggest that one just leaves that code "as is", and not refactor to DAO.
(I would consider the refactor down the road after the ADP project is working, but even then, I would just continue to use and keep the existing ADO based code). However, this long advice of mine? (to keep the ADO code). Well, with SQL server going away from oleDB support, then yes, one now would give "higher" considering to convert the ADO code to DAO due to SQL server changes in technology directions.
R
Albert
My main reason for suggesting ODBC for linking Access FE's to accdb's was for improved resistance to corruption problems associated with the SMB protocol. MS did a good job in that area with improving the ODBC for SQL Server.