Publishing Vb.net10 Application - vb.net

I developed this software application with VB.net and Microsoft Access. The software works fine. publishing this applciation has been a huge problem for me. even though it seem to have published fine, it does not seem to recognise my access Database and props up error everytime and everywhere the database is called and used within the program. How can i overcome this problem please.

I just got back from somewhere, anyways... I actually had problems with Microsoft.Jet.OLEDB.4.0 especially in a 64 bit machine. This is because Microsoft.Jet.OLEDB.4.0 is designed as a 32 bit component. If you compile your solution as AnyCpu, it shouldn't work since an x64 process cannot load x86 component. So you have 2 options.
1) Change the compiling to 32 bit mode.
2) Use Microsoft.ACE.OLEDB.12.0 provider instead of Microsoft.Jet.OLEDB.4.0. This uses .accdb instead of .mdb. This is more future proof since the last time I heard, 2003 office won't be supported anymore :)

Related

Microsoft.ACE.OLEDB not registered on local machine

I'm having an issue with Visual Studio 2005. I'm writing an application in VB.net using Microsoft.ACE.OLEDB.12.0. I've got a couple of applications using that provider already and they all run fine. I can Publish them again or run them in the IDE and they work fine. When I try to run the new application I get the message that "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on local machine. I've started the application over several times with no change. Under Data Connections inside VS, I can open the database and see the tables, views and procedures. But it still gives me this message. I've tried to reinstall the driver and nothing changes. I've uninstalled in and reinstalled it, no change. Any ideas?
Access drivers are, as far as I know, bit-specific. If you have the 32 bit driver installed and your compile/run your app in x64 it will fail to find the driver. Match the bitness of your project to the bitness of your installed drivers (or cycle all the options). Remember that the Prefer32bit setting can influence the resulting bitness chosen in an AnyCPU situation (e.g. if you have 64bit drivers, and have AnyCPU+Prefer32=Y then you may encounter a fail)

Why would Visual Basic 2010 application fail to initialize after running for 2 years just fine

We are getting a application failed to initialize error 0xc000007b. I looked around it seems to maybe be the .NET framework, I also read a possible virus.
Our application is Visual Basic .NET 2010, running on Windows XP, Windows Update is turned on.
What fixes the problem, seems to be temporary, is take my backup copy of the .exe and replace the .exe on the machine, it runs for a few hours. Keep in mind I am 12 hours away or more from the machine, I remote to it using TeamViewer.
Will event viewer or something else give me a better idea of what happened? or more information about the error and it's cause?
I'm far from a Visual Basic guru, so I'm very puzzled as to why this application is throwing this error after running for approximately 2 years.
Can windows update cause this? Does .NET framework update itself automatically?
Thanks for any help.
Well if your program was not recompiled, I'd doubt it's the program itself, but if you have the source code you can try running it through the debugger to see what's going on, and where. Personally I'd try just reimaging your xp system and seeing if that fixes the issue.
Also, isn't xp out of support? I suppose windows updates could affect it. I've seen updates cause older applications to break, so it is a possibility. You can look at the recent updates and roll them back.

Creating instance of a class registered in SysWOW64

I have migrated my website from Windows Server 32 bit to Windows Server 2008R2 64 bit. The website has a VB6 dll that is being used for all the funcitons.
I have registered the 32bit dll by placing it in SysWOW64 folder. Also, I am able to see the classed registerd using regedit.exe in SysWOW64 folder.
But, when I tried creating instance in VB "Server.CreateObject('myclass')", I am getting error
"Error:429 ActiveX Component Cant create object"
The same works in the existing 32bit server.
Am I missing anything here. Or should I use a different line on creating instance for the class I registerd. Please let me know.
finally did it.. needed to install vb 6 runtime, copy ishims.dll from Program files-> Internet Explorer to syswow 64 ( weird my dll had dependency on that) and lastbut not the least change Data Execution Prevention settings...
You need to run your website in 32 bit mode in IIS 7.5 manager.

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.

Problems with 32-bit ActiveX DLL on 64-bit OS

I'm trying to move a classing ASP site to a 64-bit Windows 2008 server. The problem I have right now (there may be others if/when I get past this one) is that the site depends on an old VB6 DLL (32-bit), and I get the notorious "ActiveX component can't create object" error.
I tried taking IIS7 out of the equation by trying to get it to work with a simple VBS script file, and that's giving me the same thing.
The only dependency this DLL has is ADO 2.6, and from what I've read, this isn't supported and isn't needed for Windows 2008, as WDAC is included and has replaced MDAC.
I use the following to register my component:
C:\Windows\SysWOW64\regsvr32.exe "C:\MyVb6Com.dll"
I checked the registry, and everything appears correct there. My VBS file is also simple:
CreateObject("MyVb6Com.Session")
And it throws the error immediately:
ActiveX component can't create object: 'MyVb6Com.Session'
On the IIS end, I've already tried changing the application pool's settings to enable 32-bit applications, and that didn't help either (of course, if I can't get it to work w/ VBS file, this wouldn't make a difference either way).
Any help would be very much appreciated.
Make sure you use the 32-bit WScript to test your VB Script as well. Double-clicking it will use 64-bit - that will help go to diagnosing your issue.
In the app pool driving your IIS7 website, choose Advanced Settings and near the top, set Enable 32-Bit Applications to True.
IIS7 on a 64-bit machine will not use 32-bit DLLs unless this is set.