If you try to open a connection to an Access database via ADO, you’ll have to use a different provider, whether you’re coding for 32 or 64 bits environments.
Here’s a utility function I use for that (updated 25.02.2014):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Public Function ADOGetAccessConnString(ByVal psDatabasePathname As String) As String Dim sConnString As String #If Win64 Then sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & psDatabasePathname #Else If GetFileExt(psDatabasePathname) = "accdb" Then sConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & psDatabasePathname Else sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & psDatabasePathname End If #End If ADOGetAccessConnString = sConnString End Function |
Of course you have to have the correct jet engine files installed on the target computer, but just a warning here: you’ll find quite a few links to download the Access 2010 database engine redistributable package, but if you’re using Office 2013 and you install this redistributable package, as soon as you’ll start an Office application, the repair feature of the Office installer will trigger.
You can find the GetFileExt() function in this post.
Recent Comments