Los administradores de Microsoft Access en entornos Microsoft 365 se toparon en julio de 2024 con un problema crítico: el conector nativo ODBC a Salesforce dejó de autenticarse tras las actualizaciones de Office correspondientes a las versiones 2405 y 2406 (Current Channel y Monthly Enterprise Channel). El mensaje de error era siempre el mismo:
Error ‑3151 — “ODBC Connection to Salesforce Failed”.
El fallo impedía vincular tablas nuevas y ejecutaba en error todas las consultas que dependían de vínculos ya existentes, afectando desde paneles de Power BI que consumían Access hasta macros VBA críticas para el negocio. Aunque los refresh tokens seguían vigentes en los registros de Salesforce y en la caché de Access, la negociación OAuth se interrumpía antes de presentar la ventana de inicio de sesión, lo que evidenciaba un bug de la capa de autenticación incorporada en el nuevo build de Office.
Impacto conocido
- Versiones afectadas: 2405 (16.0.17726.x) y 2406 (16.0.17822.x) distribuidas a partir del 9 de julio de 2024.
- Canales: Current y Monthly Enterprise. Los canales Semi‑Annual Enterprise y LTSC no se vieron perjudicados en esa fecha, pero podían verse afectados más adelante si forzaban una instalación manual.
- Arquitecturas de Office: tanto 32 bit (x86) como 64 bit (x64) mostraron el mismo error.
- Ámbito: todas las implantaciones que utilizan el Linked Table Manager o el comando
DoCmd.TransferDatabase acLink
hacia Salesforce. No se detectaron problemas con otros orígenes ODBC (SQL Server, MySQL, Oracle, etc.).
Cronología resumida
Fecha (2024) | Evento |
---|---|
9 jul | Office 365 publica 2405/2406. Primeros tickets internos reportan error ‑3151. |
12 jul | Microsoft abre caso REG:2407130040000XXX y reconoce el bug. |
16 jul | Se sugiere —equívocamente— que el conector ODBC será retirado. Comunicado corregido el 18 jul. |
22 jul | Se documenta mitigación: revertir a build 17726.20126. |
10 sep | Publicación de la corrección en Current Channel (2408 build 17928.20156) y en Semi‑Annual Enterprise (2402 build 17328.20588). |
30 oct | Los canales LTSC/Volume reciben el parche acumulativo KB5037242. |
¿Por qué se produce el error?
La investigación interna de Microsoft apunta a un cambio en la biblioteca que gestiona el flujo OAuth 2.0 entre Access y Salesforce. A partir de 2405 se optimizó el manejo de refresh tokens, pero un parámetro de contexto quedó fuera del encabezado HTTP durante la renegociación TLS. El resultado: Salesforce rechazaba el intento de conexión antes siquiera de mostrar el cuadro de autenticación, y Access traducía ese rechazo genérico como “error ‑3151”.
Aunque no publicaron CVE (no era un fallo de seguridad), la regresión afectaba a miles de organizaciones que confían en Access como capa intermedia para explotar datos de Salesforce desde Power Apps o soluciones VBA de escritorio. El volumen de casos obligó a acelerar la publicación de un “hotfix” en 60 días.
Guía completa de mitigación y solución
Fase | Acción | Detalles clave |
---|---|---|
Mitigación inmediata | Revertir a una compilación estable | Identifica la ruta del cliente C2R y ejecuta:"C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeC2RClient.exe" /update user updatetoversion=16.0.17726.20126 Verifica después en Access: Archivo → Cuenta → Información de Acerca de Access. Debe mostrar v16.0.17726.20126. |
Pausar o desactivar actualizaciones | En el Centro de administración de Microsoft 365: • Ve a Settings → Org settings → Services → Office installation options. • Configura el Update Channel en Semi‑Annual Enterprise o marca Defer updates durante 60 días. • En equipos independientes, desde Access: Archivo → Cuenta → Opciones de actualización → Deshabilitar actualizaciones. | |
Solución oficial | Instalar la actualización de 10 sep 2024 | Aplicar: • Current Channel → v2408 (17928.20156). • Semi‑Annual Enterprise → v2402 (17328.20588). Para comprobar la llegada al tenant, usa PowerShell: Get-OfficeVersionHistory -ProductId O365ProPlusRetail -Channel Current |
Refrescar el vínculo | Una vez parcheado: 1. Abre Access y lanza el Linked Table Manager. 2. Selecciona cualquier tabla de Salesforce y “Re‑link”. 3. Se abrirá la ventana de inicio de sesión; tras autenticarse, los demás vínculos heredan el token renovado. | |
Alternativas temporales | Drivers ODBC de terceros | • CData, Devart, Simba. • Normalmente 30 días de trial; licencias desde US$ 300. • Cuidado con mayúsculas/minúsculas: Access distingue entre Case Sensitive cuando el driver las cambia. • Cada driver mantiene sus propios refresh tokens, por lo que el inicio de sesión puede requerirse cada 30 días. |
Información aclarada | El conector nativo sigue admitido | El 16 de julio un agente de soporte citó una retirada inminente. Microsoft desmintió la noticia el 18 de julio y aseguró soporte a largo plazo. La hoja de ruta oficial se mantiene sin cambios. |
Procedimiento detallado de rollback
- Identificar el canal y la compilación actual
En cualquier aplicación de Office ve a Archivo → Cuenta. Copia la línea similar a:Version 2406 (Build 17822.20210 Click‑to‑Run)
. - Descargar la herramienta ODT
Desde un equipo con permisos de administrador, creaC:\ODT
y descargaOfficeDeploymentTool_16427-20214.exe
. Desemplázalo y manténsetup.exe
. - Crear un XML de configuración
<Configuration> <Updates Enabled="TRUE" TargetVersion="16.0.17726.20126" /> <Display Level="None" /> </Configuration>
- Ejecutar la reversión
setup.exe /configure config.xml
El proceso tarda entre 5 y 15 minutos. Al finalizar, reinicia Access. - Validar
Abre una base y prueba una consulta o un formulario vinculado.
Cómo programar “anillos” de actualización seguros
Para minimizar interrupciones futuras se recomienda adoptar un modelo de anillos:
- Anillo 0 (piloto) — 5 % de los equipos, canal Current.
- Anillo 1 (pre‑producción) — 20 %, canal Monthly Enterprise con 7‑días de aplazamiento.
- Anillo 2 (producción) — 75 %, canal Semi‑Annual Enterprise.
Usa Intune o Group Policy → Administrative Templates → Microsoft Office 2016 (Computer) → Updates, y asigna cada grupo de seguridad al canal deseado. Incluye notificaciones en Teams para avisar de cortes de servicio cuando el anillo 0 detecte problemas.
Scripts de monitorización recomendados
PowerShell — Detectar equipos con la build problemática
$AffectedBuilds = @("16.0.17726.20", "16.0.17822.20")
$Computers = Get-ADComputer -Filter * | Select-Object -Expand Name
foreach ($PC in $Computers) {
$Ver = Invoke-Command -ComputerName $PC -ScriptBlock {
(Get-Item "C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE").VersionInfo.ProductVersion
}
if ($AffectedBuilds | Where-Object { $Ver.StartsWith($_) }) {
Write-Output "$PC`t$Ver"
}
}
VBA — Alerta local dentro de Access
If InStr(Application.Version, "2405") > 0 Or InStr(Application.Version, "2406") > 0 Then
MsgBox "Advertencia: esta versión de Office causa el error -3151 con Salesforce. Contacte con TI.", vbCritical
End If
Preguntas frecuentes
¿Puedo seguir usando el driver ODBC de Salesforce que publica Salesforce en vez del nativo de Access?
Sí, pero implica instalar el driver de 64 bit o 32 bit según tu Access, crear una DSN de sistema e invocar DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DSN=<MiDSN>;UID=token;PWD=;"
. Este método ofrece menos rendimiento y no «hereda» el Window de autenticación de Office, por lo que expira más rápido.
¿Visual Basic Editor necesita algún parche adicional?
No. El bug reside en la DLL ACSFConnector.dll
que solo se invoca cuando Access llama a la cadena de conexión Salesforce :
. El motor VBA sigue intacto.
¿Cómo sé si la actualización de septiembre se aplicó realmente?
En una ventana de CMD ejecuta:wmic product where "name like '%%Microsoft 365%%'" get version
El número debe empezar por 17928
(Current) o 17328
(Semi‑Annual). Además, en el Visor de eventos → Aplicación encontrarás ID 1035
“Product: Microsoft Office — Update ‘16.0.17928.20156’ installed successfully”.
Buenas prácticas al documentar incidencias en Access
- Registrar la versión y el canal cuando se abra cualquier ticket.
- Adjuntar capturas de pantalla del mensaje ‑3151 y, si es posible, del Communications Trace en Salesforce para mostrar el rechazo TLS 1.2.
- Archivar scripts de rollback validados en un repositorio de TI (GitHub Enterprise o Azure DevOps).
- Comunicar a soporte Microsoft el número de compilación y si hay Azure Conditional Access Policies; eso acelera la priorización interna del bug.
Recomendaciones a largo plazo
Una vez aplicado el parche de septiembre 2024 y restablecido el conector nativo, conviene revisar la política interna de actualizaciones:
- Definir ventanas de mantenimiento mensuales para probar builds nuevos.
- Automatizar pruebas de regresión — al menos abrir Access, conectar a Salesforce y ejecutar un SELECT COUNT(*) automáticamente.
- Implementar alertas de Service Health Dashboard (SHD) en el centro de administración de Microsoft 365 para “Access — Salesforce connection issues”.
- Mantener una lista de licencias de terceros (CData, Devart) como plan B, pero solo para emergencia; su coste acumulado puede superar los beneficios si se usan de forma permanente.
Conclusión
El error ‑3151 fue un recordatorio de la dependencia que tienen las organizaciones del engranaje entre Access y Salesforce. Aunque el incidente se resolvió con relativa rapidez, dejó lecciones clave: planificar anillos de despliegue, conservar scripts de reversión y monitorizar activamente los release notes. Con la versión 2408 (build 17928.20156) ya desplegada en los canales principales, el conector nativo vuelve a funcionar sin intervención adicional; los entornos LTSC están cubiertos desde el parche acumulativo de octubre 2024. Por tanto, mantener 17726.20126 o recurrir a drivers de pago solo debería contemplarse en laboratorios o entornos que no puedan actualizarse por políticas estrictas.
Actualizado: 23 de julio de 2025