Error ‑3151 en Access: ODBC Salesforce falló tras actualización de Microsoft 365 (solución definitiva 2024)

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.

Índice

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 julOffice 365 publica 2405/2406. Primeros tickets internos reportan error ‑3151.
12 julMicrosoft abre caso REG:2407130040000XXX y reconoce el bug.
16 julSe sugiere —equívocamente— que el conector ODBC será retirado. Comunicado corregido el 18 jul.
22 julSe documenta mitigación: revertir a build 17726.20126.
10 sepPublicación de la corrección en Current Channel (2408 build 17928.20156) y en Semi‑Annual Enterprise (2402 build 17328.20588).
30 octLos 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

FaseAcciónDetalles clave
Mitigación inmediataRevertir a una compilación estableIdentifica la ruta del cliente C2R y ejecuta:
"C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeC2RClient.exe" /update user updatetoversion=16.0.17726.20126Verifica después en Access: Archivo → Cuenta → Información de Acerca de Access. Debe mostrar v16.0.17726.20126.
Pausar o desactivar actualizacionesEn 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 oficialInstalar la actualización de 10 sep 2024Aplicar:
• 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ínculoUna 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 temporalesDrivers 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 aclaradaEl conector nativo sigue admitidoEl 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

  1. 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).
  2. Descargar la herramienta ODT
    Desde un equipo con permisos de administrador, crea C:\ODT y descarga OfficeDeploymentTool_16427-20214.exe. Desemplázalo y mantén setup.exe.
  3. Crear un XML de configuración
    <Configuration> <Updates Enabled="TRUE" TargetVersion="16.0.17726.20126" /> <Display Level="None" /> </Configuration>
  4. Ejecutar la reversión
    setup.exe /configure config.xml
    El proceso tarda entre 5 y 15 minutos. Al finalizar, reinicia Access.
  5. 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

  1. Registrar la versión y el canal cuando se abra cualquier ticket.
  2. Adjuntar capturas de pantalla del mensaje ‑3151 y, si es posible, del Communications Trace en Salesforce para mostrar el rechazo TLS 1.2.
  3. Archivar scripts de rollback validados en un repositorio de TI (GitHub Enterprise o Azure DevOps).
  4. 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

Índice