Solving "microsoft.ace.oledb.12.0' provider is not registered on the local machine" without the DB Engine Redistributable - vb.net

Thanks first for reading this. Yesterday I suddenly got above error without having changed a single line of code in my Program itself. Fortunately I could easily solve it by querying stackoverflow. I did install the Microsoft Access Database Engine 2010 Redistributable as recommended here and it worked.
BUT: Does anybody know what this fix does behind the scenes and an alternative way how this fix could be achieved kind of "manually"?
Why I am asking: I am working in a big Company with an IT Department rolling out software centrally. I have an exception for my little Program but apart from that I can't and must not advise any user to install this additional software. Anyway they wouldn't even be able to do so. So I must find an alternative way.
Some more details:
We are having Windows 7, Office 2010 and are now moving step-by-step to Windows 10, Office 2016. Some software installations (centrally by IT) to prepare this step must have been the reason why my Program suddenly did through this error above. I am developing my Program under Visual Studio Professional 2012 and I am (still) on Windows 7 myself.
In my Reference Manager I have ticked:
Microsoft ADO Ext. 2.8 for DDL and Security
Microsoft OLE DB Service Component 1.0 Type Library
Any help is highly appreciated. Thanks and have a good weekend.

From what I could find on the internet, it seems there has been a change in the version number of the ACE driver in the office 2013 / 2016 versions. The ACE version will be either 15.0 for 2013 or 16.0 for 2016. Try changing you connection string to accommodate this change and see if it solves the problem.

Related

VBA Problem - License Information for this component not found - How to identify which component?

I have a VBA file that is working fine on 10 PC's. VBA is hosted within a drafting package called MicroStation / PowerDraft. On 2 more computers when setting up the files as normal i run into an error which says
License information for this component not found. You do not have an appropriate license to use this functionality in the design environment
When checking through the VBA project i cant find any reference as to which file is causing the issue but also how to fix it? I have found a few articles on here and through Google which all direct to a Microsoft support page that is now a dead link. Can anyone help? All PC's are the same, Windows 10 64 Bit, same version of MicroStation, same Software and all Windows Updates up to date. The Files being referenced are below. They are all located and registered.
mscomctl.ocx
comdlg32.ocx
ieframe.dll
stdole2.tlb
msado27.tlb
Plus some more that i cant file the filename of.
Microsoft Forms 2.0 Object Library
Adobe Acrobat Browser Control Type Library 1.0
Microsoft Office 16.0 Access database engine object Library
Any help would be greatly appreciated!!
7 days late so you should have resolved this but if not or in case others are looking
Many reasons that message is raised partly to do with UAC level at install time and the mixed ages of MSoffice components. The root problem is possibly a missing OFFICE registry value the cause is described here https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/license-information-for-this-component-not-found-you-don-t-have-an-appropriate-l
but for MicroStation you must during install be using the correct "pre-requisites" so check the related versions of product and requisite
some potential "fixes" are described here Getting VB6 to reveal which component doesn't have a design time license installed but links are old eg they should lead to say http://support.microsoft.com/kb/195353/en-us
1.Q194751 FILE: VB6Cli.exe Fixes License Problems with Visual Basic 6.0
2.Q195353 FILE: VBUSC.EXE Provides Licensing for Discontinued Controls
these have solved the issue for some users as described here https://communities.bentley.com/products/building/building_analysis___design/f/aecosim-speedikon-forum/96029/install-aecosim
I found vbusc at this link which running as admin on x64 gave a positive update message however as I'm no longer running a VB enhanced PowerDraft can't confirm it solves this issue.

Losing database connection when changing project target framework

As in title I'm having problem with my VB project when I change its .NET Framework from 4.5.1 in which I have application written to v4 which is supported on windowsXP. When I make the change and try to compile my program database could not be found. Should I make any extra changes in project properties or why database could not be found?
Thank you for help!
The Jet engine is not supported on 64bit machines. I know it is crazy but it's true. Not sure what MS Access uses on 64Bit, must be something else.
Jet on 64Bit
Some places say it's not going to be supported, others say it is part of Office 2010 install and you can download a seperate driver.
I ran into this when deploying a web app to our 64Bit server and just found a way around using MS Access for our report server. Got luck.

MS Access: Can't complete the Output operation

I'm not an experienced vba programmer and working with access is not my cup of tea. I've been asked to fix some errors in an MS Access 2010 VB application. The sole user previously ran the application on a 32-bit platform but now has migrated to 64-bit. This caused the aplication to break. I have made some progress but every issue I resolve another seems to appear.
The following piece of code
DoCmd.OutputTo acOutputReport, "rptQLDExport", acFormatRTF, frm.txtDirectory.Value + "\QLD\All\QDATA.DOC"
is causing a runtime error 2587: Microsoft Access can't complete the Output operation
I have seached on the net for an answer but to no avail.
My development environment is Windows 7 SP1 (64-bit) and the application is running in Access 2010 (vba7, 64-bit). I'm willing answer questions to provide more information. Any suggestion will be appreciated.
This forum post suggests it is related to runtime versus full versions of Access (or Office). The suggested solution is to Copy the file UTILITY.ACCDA from the ACCWIZ directory to the same directory as MSACCESS.EXE
You would need to check licensing before distributing the file in your application installer, obviously.
Update: On a machine that fails, copy over ProcessMonitor (from technet; no install required). Filter to your application. Repeat the process and get it to fail. Examine the files that your application is trying to access and why they fail.

the microsoft.ace.oledb.12.0 provider is not registered

I am creating an application using vb.net and access 2007. My OS is in 64bit, windows 7. I already change my TargetFlatform in to x86. But when I run the program error occured "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine". I tried to search with google for a solution but no luck.
any help would greatly appreciated.
Thanks in advance
you must install Access Database Engine, see the following link
http://www.microsoft.com/download/en/details.aspx?id=13255
Regards.
There is a problem with Microsoft.ACE.OLEDB.12 when AccessDatabaseEngine x86 or x64 2010 is installed.
I have long attempted to use the SSMS (2005-2008-2008R2-2012) Export Wizards to export large tables onto Excel and I needed the AccessDatabaseEngine installed to be able to do that.
However, regardless of the MS Office version (2010, x86 or x64, or whatever it is), the 2010 version of AccessDatabaseEngine will not work towards registering the provider.
The solution is to download and install the previous one which is none other than the 2007 x86 one.
This one will work even if Office or SQL Server or VS are x64.
Download it from here http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734
Now, any other propagated issues revolving around the notorious failure to register "the provider" on the local machine for the Microsoft.ACE.OLEDB.12 should be resolved by the above.
Feel free to paste me your experiences on this matter.

Is it possible to automate a Click-to-run application?

I have a small application which automates Microsoft Word via COM/OLE Automation.
Unfortunately this doesn't work with the virtualized Click-to-run editions of Word, because they don't have the required keys in the registry. (At least not where they are exptected to be) In other words: CreateObject fails because the necessary COM classes are not registered.
Is there any way to automate the Click-to-run editions of Microsoft Office? Perhaps some compatibility layer?
EDIT: I found just two pages where users/developers were complaining about this. Either OLE automation has become obsolete or no one is using the C2R editions...
Unfortunately it's not possible to do automation with the Click-To-Run Office editions. It's due to the virtualization process used.
According to the information here you can switch your C2R-edition to a MSI edition. It seems like the license is the same for both editions and also the product key.
It took me a few days to find this post verifying my suspicions. Microsoft really screwed this one up for anyone with an app depending on automation it seems.
For any googlers out there, the error I've been looking at in my app is:
Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80040154
I was able to resolve this by uninstalling the office click-to-run version and doing a full install.
According to https://answers.microsoft.com/en-us/msoffice/forum/all/office-click-ro-run-and-ole-automation/abc2fe0d-58e4-42eb-84ef-a6e7c1c7b3f4, "I have found the solution myself. With click-to-run, Office installation does not register typelibs in HKCR\Typelib. Instead, it registers typelibs in HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\SOFTWARE\Classes\TypeLib. VBAs running in Office is aware of the location and runs fine. External application is not aware of the location. So the solution is to run regtlib.exe on mso.dll to register Office typelibs in HKCR\Typelib so that external applications can run OLE Automation correctly."