Inicio > .Net y VB6 > Solución al error de “No coinciden los tipos” al compilar con W7 con SP1

Solución al error de “No coinciden los tipos” al compilar con W7 con SP1

Ayer me instalé el SP1 de Windows 7. Cuál es mi sorpresa cuando compilo mi aplicación que utiliza las MDAC y da error “No coinciden los tipos”. Testeando la aplicación, me daba error en:

Dim cn As Adodb.Connection
Set cn = new Adodb.Connection 'Aquí da ERROR NO COINCIDEN LOS TIPOS

Mirando en Microsoft, puedes solucionar este problema haciendo:
Dim cn As Object
Set cn = CreateObject("Adodb.Connection")

Si tienes una aplicación pequeña, recomiendo hacer esto, pero si tienes una aplicación muy grande, cambiar esto puede suponer un trabajo importante puesto que da error en cualquier objeto de las MDAC.

Microsoft ha sacado recientemente un hotfix para que los clientes que no tienen el SP1 de Windows 7, o Windows XP o cualquier otro Windows, puedan ejecutar aplicaciones que hayan sido compiladas bajo Windows 7 con SP1. Esto está muy bien, pero es que cuando el cliente tiene Windows 7 con SP1 de 32bits y tú lo has compilado en un Windows 7 de 64 bits, esa compilación tampoco funciona y, para mejorar la cosa, no puedes instalarle el Hotfix que soluciona el error (el hotfix sólo funciona para los Windows 7 que NO tienen en SP1 instalado).

Descarga del Hotfix de Microsoft: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=983246&kbln=es

Bueno, para solucionar el problema “momentáneamente”, encontré una solución por internet. He realizado una copia de seguridad de las MDAC sin el SP1 puesto, me he puesto el SP1 y he vuelto a machacar las MDAC con las que tenía antes de realizar la actualización. De esta manera ya puedes compilar tus aplicaciones en Windows 7 con SP1 y que a todos tus clientes les funcione.

Los pasos a seguir son:
1. Abre el registro de sistema y ve a la siguiente clave:
32 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C}
64 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C}

2. Pulsa botón derecho a la carpeta -> Permisos
3. Pulsa en Opciones avanzadas
4. Ve a Propietario, selecciona Administradores y marca la casilla “Reemplazar propietario en subcontenedores y objetos”
5. Pulsa aceptar, en la lista de usuarios, selecciona Administradores y dale permisos de Control Total.
6. Acepta

7. Ve a la siguiente carpeta:
32 bits: C:\Program Files\Common Files\System\ado
64 bits: C:\Program Files (x86)\Common Files\System\ado

8. Selecciona el fichero msado28.tlb, pulsa botón derecho -> propiedades
9. Ve a la solapa Seguridad, pulsa Opciones Avanzadas.
10. Ve a la solapa Propietario y pulsa en Editar
11. Selecciona Administradores y pulsa Aceptar, vuelve a pulsar en Aceptar
12. En la solapa Seguridad, pulsa el botón Editar, selecciona el grupo Administradores y dale permisos de Control Total
13. Acepta y vuelve a aceptar
14. Hacer lo mismo para el fichero msado27.tlb ( desde el paso 8 )

15. Ejecuta el bat que hay en esta carpeta
32 bits: registrar ado 32.bat
64 bits: registrar ado 64.bat

Adjunto fichero donde se encuentran las copias de seguridad de los ficheros de las MDAC y los BAT correspondientes.
Descargar desde DEPOSITFILES

Ya puedes compilar tus aplicaciones con el SP1 de Windows 7 sin que le salga al cliente “No coinciden los tipos”

Categorías:.Net y VB6
  1. Estuca
    marzo 14, 2011 a las 17:10

    Un aporte extraordinario, tuve que desinstalar el SP1 para poder compilar, no me funciono el tema de permisos, pero si los hotfix.
    Muchas gracias por tu ayuda.

  2. Lucio Tato
    mayo 3, 2011 a las 15:05

    Excelente. Muchas Gracias!
    MS es un desastre! Miles de desarrolladores y usuarios
    con este problema. De Locos.

  3. Carlos Aliaga
    junio 17, 2011 a las 16:36

    Lo maximo estimado, has hecho mas facil la vida para todos. Me he matado probando con todas las soluciones en todos los foros, pero con tu ayuda lo solucione en 5 mins.

    Gracias.

  4. James
    julio 31, 2011 a las 03:16

    Gracias amigo, me salvaste la vida, nuevamente gracias

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: