
Error en navegadores web modernos al reproducir archivos multimedia con extensiones en mayúsculas
Aquí hay otro error realmente extraño con el control del navegador web moderno que me mencionó Juanfran Rodríguez (@juanfranrodriguez), uno de mis espectadores de YouTube.
El problema es que si utiliza una extensión de archivo en mayúscula utilizada en la Fuente de control del control Navegador web moderno, al intentar mostrar medios directamente, obtendrá un galimatías en lugar del medio real.
El bicho
Digamos que ingresa una fuente de control de (con la extensión del archivo en mayúscula)
="https://msaccess/C:\Temp\SomeImage.JPG"
Obtendrás algo como:
La solución es asegurarse de que la extensión del archivo no esté en mayúscula, así que en su lugar utilice una fuente de control como:
="https://msaccess/C:\Temp\SomeImage.jpg"
Este error ocurre al acceder directamente a archivos multimedia, PDF, pero no ocurre al acceder a archivos html (.HTML funcionará sin problemas).
También tenga en cuenta que esto tiene nada que tiene que ver con la extensión de archivo utilizada en el sistema de archivos, solo la extensión ingresada en la propiedad Fuente de control.
También debe tenerse en cuenta que lo mismo es cierto si define la fuente de control a través de VBA.
¡Además, el método VBA Navigate también sufre este problema!
También ocurre si está utilizando una tabla como fuente de control para el control del navegador web moderno.
Entonces, si usted es como algunos de mis clientes que trabajan con la tecla de mayúsculas activada, o simplemente tiene archivos almacenados con extensiones en mayúsculas (algunos programas hacen esto) y los copia desde el Explorador de Windows «tal como están» a Access, ¡vaya si esto le puede causar problemas sin que sea culpa suya!
Una solución alternativa
Opción 1 – No capitalizar el valor de la propiedad
La solución más obvia es simplemente ingresar el valor de la propiedad en minúsculas.
Opción 2 – Utilizar la función lcase
Otra opción sería encapsular la propiedad con la función LCase(), uno podría pensar, pero lamentablemente, debido a otro error con el control del navegador web moderno, las cosas aquí son muy complicadas, por decir lo menos. Si intenta usar LCase() en la fuente del control como:
=LCase("https://msaccess/C:\Temp\SomeImage.JPG")
Access tiene otro error en el que el valor de la propiedad se reescribe automáticamente y luego desaparece (ya no es visible en la hoja de propiedades)… y termina con un valor de propiedad como:
="https://msaccess/LCase("https://msaccess/C:\Temp\SomeImage.JPG")"
que no funcionará/se renderizará. (Access intenta ayudar y agrega ‘una vez más a la cadena que ingresamos)
Entonces podrías intentar algo como:
=" & LCase("C:\Temp\SomeImage.JPG")
pero eso también fracasará y será reescrito por Access a:
=" & LCase("C:\Temp\SomeImage.JPG")"
y tampoco funcionará/se renderizará.
La solución funcional real para poder hacer esto en la hoja de propiedades es agregar un sufijo de cadena vacío como:
=" & LCase("C:\Temp\SomeImage.JPG") & ""
Lo sé, es idiota, pero funciona.