I am an amateur programmer that helps build some solutions for my company.
I have an application that I did not originally create, but I have done a lot of modification. I think it was originally built VB 2005 and converted to VB 2010 where I have done most of my modification. It ran fine for people in when they had 32 bit systems, but they now cannot run it on 64 bit systems. This applications finds information in text files and moves it into an Access database.

I have a sister application that I built in VB 2010 that does not have this problem. It builds the tables that the first application writes to.

So - question 1 is: Is there a simple solution to getting the application to run on 64 bit systems?

I figured I would just copy the code and build a new version in VB 2010, but some ADODB connections / recordsets get errors (blue underlines) when I do this. The application I built from scratch uses OLEDB connections. I get the errors on: Dim con As New ADODB.Connection, Dim rstInput As ADODB.Recordset

So my second question is:

Why do I get an error on this when it works in another application, and what is the difference between ADODB and OLEDB?

Any help you can offer is greatly appreciated!

  • Ken

Your problem is your access database. The drivers are 32bit. You should consider implementing MSSQL, or Mysql or whatever db that has 64bit drivers.

Edited 3 Years Ago by PerplexedB: correction

Oledb is a system software layer that gives you access to the database. ADODB is framework in .net that handles database access (connections, sql executions etc) via connections to OLEDB or other systemsoftware layers.

Edited 3 Years Ago by PerplexedB: coorection

for your application to work on both operating system (32bit and 64bit) choose X86 platform
Build - Configuration Manager - Active Solution platform - new - new platform select X86

Thanks for the quick reply.
If this is a driver issue, I don't understand why my other application works on either type of machine. I build the tables in the database programaticly using sql. Wouldn't the same drivers that connect to modify the tables write the data?
SQLserver might be in the cards for my sight in about a year...

just copying the code won't cut it, check your first application references.
or try to add microsoft.sqlserver reference
good luck

I changed the platform to X86 (was any CPU) and I've sent a copy to one of my users that was having trouble. I will let you know what happens. Thanks!

The drivers are 32bit. You should consider implementing MSSQL, or Mysql or whatever db that has 64bit drivers.

I question that. On my 64-bit Windows 7 and 8 I use 32-bit database drivers.

Edited 3 Years Ago by Ancient Dragon

Ancient Dragon, that's right, but you cannot compile a vb.net program using 32 bits drivers in 64 bits mode. i also would think that KenSquare's users should be able to run his programs, even if they were compiled in x86 mode, but he seemed to be saying they could not.

Changing "Build - Configuration Manager - Active Solution platform - new - new platform select X86" from "AnyCPU" worked.
Thanks oussama 1 and everyone for the suggestions!

Ancient Dragon, that's right, but you cannot compile a vb.net program using 32 bits drivers in 64 bits mode.

Never tried to compile a vb.net program as a 64-bit program. I use Visual Studio 2012 Pro, I don't know if it will compile 64-bit programs or not, never tried it.

[edit]Just found out how to add 64-bit configuration to existing 32-bit programs. Yea! :)

Edited 3 Years Ago by Ancient Dragon

This question has already been answered. Start a new discussion instead.