Error al abrir bases de datos de Access (objeto COM de 32 bits) desde Visual Studio 2008 en Windows x64

Cuan­do se eje­cu­ta un proyec­to de Visu­al Stu­dio 2008 en una platafor­ma Win­dows 7 de 64 bits, si el proyec­to con­tiene algu­na ref­er­en­cia a com­po­nentes COM de 32 bits, como pasa por ejem­p­lo cuan­do el proyec­to se conec­ta con una base de datos de Microsoft Access, suele haber un error que impi­de que el proyec­to se eje­cute correctamente.

Esto se debe a que la may­oría de los com­po­nentes COM de 32 bits no fun­cio­nan bien como pro­ce­sos de 64 bits en platafor­mas de 64 bits aunque sí pueden fun­cionar como pro­ce­sos de 32 bits en platafor­mas de 64 bits. Las apli­ca­ciones de VB y C# que hacen ref­er­en­cia a alguno de esos com­po­nentes COM de 32 bits no pueden fun­cionar pues inten­tan hac­er­lo como pro­ce­sos de 64 bits.

Los com­pi­ladores de VB y C# en Visu­al Stu­dio 2008 uti­lizan la propiedad plat­form tar­get para deter­mi­nar si la apli­cación ha de cor­rer como pro­ce­so de 32 o de 64 bits. Por defec­to esta propiedad tiene asig­na­do el val­or "Any­CPU" lo que deter­mi­na que se eje­cute de acuer­do al tipo de platafor­ma (Win­dows 7 de 32 o de 64).

Para resolver este prob­le­ma la propiedad plat­form tar­get ha de ten­er el val­or "X86" en los proyec­tos VB y C# de este tipo. Para ello hay que:

Proyec­tos VB

- botón dcho. en el proyec­to en el Explo­rador de Solu­ciones > Propiedades
- pes­taña Com­pi­lar
- botón Opciones avan­zadas de Com­pi­lación
- propiedad Tar­get CPU en X86.

Proyec­tos C#

- botón dcho. en el proyec­to en el Explo­rador de Solu­ciones > Propiedades
- pes­taña Com­pi­lar
- propiedad Tar­get CPU en X86.

Proyec­tos de las ver­siones Express

Metodo1
Hay que mod­i­ficar el archi­vo de proyec­to .csproj o .vbproj, se puede hac­er des­de el pro­pio IDE de Visu­al Stu­dio o des­de edi­tores de tex­to o XML bus­can­do la primera apari­ción de la sec­ción Prop­er­ty­Group y aña­di­en­do bajo ella esta línea:
<PlatformTarget>x86</PlatformTarget>
Se abre de nue­vo el proyec­to o solu­ción y se con­tinúa con el trabajo.

Metodo2
Con el proyec­to abier­to, seguimos los sigu­ientes pasos:
- menu "Her­ramien­tas"
- Opciones
- Proyec­tos y solu­ciones
- Gen­er­al
- Mar­camos "Mostrar con­fig­u­ra­ciones de com­pi­lación avan­zadas"
- Acep­tar
- Menu "Gener­ar"
- Admin­istrador de con­fig­u­ración
- En "Platafor­mas de solu­ciones acti­vas", selec­cionamos "Nue­va"
- En "Escri­ba o selec­cione la nue­va platafor­ma", selec­cione "x86"
- Acep­tar
- Cer­rar

5 comentarios en “Error al abrir bases de datos de Access (objeto COM de 32 bits) desde Visual Studio 2008 en Windows x64

  1. ING. Oscar Mar­tinez
    Hola estoy generan­do un proyec­to en c# express 8 y te comen­to que mi archi­vo .csproj no con­tiene nada solo:

    y lo demas en blan­co te pido ayuda

  2. Dis­cul­pa ten­go un prob­le­ma con la conex­ion a una base de datos, hago la conex­ion tan­to con sql 2008 y acces y en ambos me aparece este error
    "No se con­tro­lo COMEx­cep­tion" La opera­cion no esta per­mi­ti­da si el obje­to esta cer­ra­do.——
    Esta apli­ca­cion la cor­ro en visu­al basic 2008 en Win­dows 7 a x64 pero si cor­ro la mis­ma en mi pc de escrito­rio con XP x86, = mente en visu­al o acces si me corre cor­rec­ta­mente, espero me puedas ayu­dar. Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

9 + 1 =