Agradecería GRANDEMENTE la ayuda en este tema.
Recientemente me vi obligado a instalar "Microsoft 365 Apps Update - Semi-Annual Enterprise Channel (Preview) Quality Update for x86 based Edition Version 2202 (Build 14931.20494). Cuando lo hice, el código del botón del programa VBA (en un formulario) que escribí que permite al usuario obtener datos de SharePoint hace que EXCEL se bloquee sin importar cómo intente atrapar o ignorar los errores. Tan pronto como se ejecuta la línea "Finalizar sub" del código del botón, aparece "Microsoft EXCEL ha dejado de funcionar / Reiniciar el programa " y EXCEL falla cuando hago clic en él. Es interesante que los datos SE devuelvan desde SharePoint y se muestren en otro formulario sin problemas. Para obtener los datos de SharePoint, tengo un archivo de Access (.accdb) configurado que define la lista de SharePoint A continuación se muestran las piezas de código pertinentes:
Const SQLENGSHAREPOINTCONNECTION = "Proveedor=Microsoft.ACE.OLEDB.12.0; Fuente de datos = C:\MORGAN\MACROS\ENG_SHAREPOINT_db.accdb"
** Cosas de CONFIGURACIÓN **
Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim StrSql As String StrSql = "SELECT A.[Material], A.[Status], D.[Name], B.[Name], C.[Name], A.[Priority], A.[ID], A.[Date Requested]," & _ " A.[Brief ECRDescription], A.[Date Started], A.[Where In Process], A.[Priority]" & _ " from (([Engineering Change Requests (ECRs)] A" & _ " Left Join [UserInfo] B On A.[Product Owner] = B.[ID])" & _ " Left Join [UserInfo] C On A.[Principle Engineer] = C.[ID])" & _ " Left Join [UserInfo] D On A.[AssignedTo] = D.[ID]" & _ " where A.[Material] like '%" & myCollection(1) & "%'" & _ " and Left(A.[Status],2)< 25 "** Cosas de CONEXIÓN ABIERTA **
cn.Open SQLENGSHAREPOINTCONNECTION Set rs = cn.Execute(StrSql)** Cosas de PROCESAMIENTO **
If Not (rs.BOF And rs.EOF) Then Do While Not rs.EOF If rs.Fields(0) <> "" Then theDisplay = Left("Material: " & rs![Material] & vbcrlf & theDisplay End If rs.MoveNext Loop End If** Cosas de CONEXIÓN CERCANA **
If Not (rs Is Nothing) Then If (rs.State = 1) Then rs.Close End If Set rs = Nothing End If cn.CloseResulta que el paquete de actualización que instalé era una "vista previa" y se envió a un pequeño número de usuarios para su revisión. El paquete de actualización real que saldrá oficialmente no tiene este problema. Así que el problema resulta no ser un problema. Ambos paquetes no mencionaron ningún cambio en EXCEL, lo cual es extraño.