none
En Office 2010 (64 bits) NO FUNCIONAN las OCX de comunicación con puertos serie RRS feed

  • Pregunta

  • Hola a todos y gracias por anticipado aunque no creo que esta pregunta sea tan fácil de responder:

    Antecedentes
    Sistema operativo: Win8 64 bits
    Problema con: Office 2010 (64 bits)
    Test: Windows 7-64 bits con Office 2007 (32 bits). FUNCIONA PERFECTAMENTE

    Se trata de comunicar Excel 2010 con un puerto USB para leer datos (ejemplo: un GPS, una tarjeta ARDUINO, etc.),
    usando como Control Active X NetcommOCX
    Con Windows 7-64 bits y Office 2007 no hay problema pero si lo hay con EXCEL 2010:
    - Se descargan las OCX para Windows 7 (http://home.comcast.net/~hardandsoftware/NETCommOCX.htm)
    - Se instalan como administrador en c:\Windows\SysWOW64
    - Se abre EXCEL 2010 (ya esta operativa la pestaña de PROGRAMADOR)
    - Se abre desde programador: VISUAL BASIC/HERRAMIENTAS/REFERENCIAS
        Examinamos y buscamos la .OCX en SysWOW64, la seleccionamos y aceptamos. Aparecerá en la lista
    - Ahora en el libro excel y en la pestaña de programador nos vamos a Insertar/Control Active X/Otros...
      (El martillito). Aqui debería ya aparecer o la busco para registro la NetCommOCX replacement.
    - PROBLEMA: ni aparece ni se puede registrar
    - PROBLEMA: se podría registrar a mano con Regsvr32, pero también lo he probado y NO FUNCIONA

    Posibles soluciones: Según he leido en algún foro la respuesta que dan es:
    The solution to this particular problem was solved by uninstalling the 64-bit version of Microsoft Access and re-installing the 32-bit version. The control was recognized right away
    fuente: http://stackoverflow.com/questions/11988971/microsoft-access-2010-on-windows-7-64-bit-and-mscomm32-ocx

    ¡¡INCREÍBLE PERO..., PARECE CIERTO!!
    Preguntas:
    1) ¿Alguién conoce la solución?
    2) Si en Office 2010 no funciona, ¿que pasa con Office 2013?. Recordemos que cada vez quitan más cosas de las Windows.
    3) ¿Por qué tampocoes posible hacerlo funcionar con las propias MSCOMM32OCX de Microsoft?
    sábado, 19 de octubre de 2013 9:53

Todas las respuestas

  • Observación importante: Un programa de 64 bits no puede llamar a una DLL de 32 bits. Se necesita una versión de 64 bits de la DLL, y si no existe, no hay nada que hacer, salvo sustituir la versión del programa llamante por uno de 32 bits.

    Es decir, si sólo tienes en el equipo una versión de 32 bits del OCX, no podrás usarla desde un Office de 64 bits. Ni 2010 ni 2013.

    domingo, 20 de octubre de 2013 8:37
  • Hola,

    Creo mas o menos entender el circuito y es difícil poder reproducir este escenario para aportarte alguna idea... sin embargo visto desde fuera, en vez de intentar si o si continuar con la herencia del "office 2007" i los OCX no seria mas fácil realizar un "update" con las herramientas actuales?

    Por ejemplo utilizando directamente el System.IO.Ports en vez de intentar reutilizar una serie de controles OCX entre versionados de x86 y x64?

    Por de pronto no veo la dificultad en crear un 'ExcelAddin' o seguramente uno de los que seguramente existen.

    namespace ExcelAddIn1
    {
        public partial class ThisAddIn
        {
            System.IO.Ports.SerialPort MiArduino;
            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
                MiArduino = new System.IO.Ports.SerialPort("COM1", 9600);
                MiArduino.Open();
                MiArduino.DataReceived+=MiArduino_DataReceived;
                // Etc.
            }
    
            void MiArduino_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                throw new NotImplementedException();
            }
    

    Debes disculparme por anticipado pues realmente no conozco el alcance de tu aplicación, en todo caso si te parece que esto podría ser útil no dudes en continuar la conversación y exploramos juntos que posibilidades tenemos para comunicarnos con los Excel actuales sin controles ocx.

    Saludos,
    PepLluis,


    MVP - Visual Developer

    sábado, 2 de noviembre de 2013 12:48
    Moderador