/ / VBA GetObject winmgmts ne fonctionne pas après la mise à jour Windows

Les winmgmts VBA GetObject ne fonctionnent pas après la mise à jour de Windows - excel, vba, excel-vba, wmi

J'utilise Excel VBA pour obtenir la connexion au bureau, l'heure de fermeture de session à partir du journal des événements. Le programme a bien fonctionné jusqu'à la mise à jour de Windows la semaine dernière.

Après le débogage, j'ai compris le GetObject fonction n'a pas fonctionné.

Sub get_log_time()
On Error GoTo ErrorHandler

"strComputer = ComputerName
strComputer = "."

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = "System" and  (EventCode = "7001" or  EventCode = "7002")")

ErrorHandler:
If Err.Number <> 0 Then
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & "Error Line: " & Erl & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
End If
Resume Next
End Sub

Le message d'erreur était: "L'erreur # -2147221020 a été générée par VBAProject. Ligne d'erreur: 0. Erreur d'automatisation. Syntaxe non valide".

Je ne pouvais pas trouver pourquoi cela se produisait et comment le réparer.

Information additionnelle:

  • J'utilise Windows 10, Excel 2016 MSO (16.0.4549.1000) 32 bits

  • J'ai changé le code en liaison tardive mais cela ne fonctionne toujours pas.

  • Paramètre de référence: bibliothèque d'objets Microsoft Excel 16.0, bibliothèque d'objets Microsoft Office 16.0

Réponses:

3 pour la réponse № 1

Même problème ici, uniquement avec MS Access 2016 32 bits. Testé en mots aussi. Semble affecter toutes les applications de bureau. Je suis en train de travailler 32 bits sur Windows 10 64 bits.

J'espère que quelqu'un pourra savoir ce qui s'est exactement passé ici. Ce code fonctionnait très bien.

EDIT: le coupable semble être la mise à jour KB4011051, après la désinstallation de l'erreur disparaît. Je cherche à savoir si je peux savoir s’il s’agit d’un projet ou d’un bogue.