Tenir compte du code vb.net suivant pour un bureau add-in (pour l'accès):Comment détecter une propriété de type "InvalidOperationException" dans une collection?
td = db.TableDefs(objectName)
For Each fld In td.Fields
For Each fldprp In fld.Properties
Debug.Print(fldprp.Value.ToString())
Next
Next
la variable "db" est une représentation .net du résultat vba d'accès retour de « Application.CurrentDB() ". "td" est de type "DAO.TableDefClass".
Ce code lève une exception de type "InvalidOperationException" lorsque la valeur de la propriété fldprp.value ne peut pas être déterminée (dans Visual Studio, elle affiche la valeur {{Opération invalide.}} Dans la fenêtre de surveillance). fldprp.name, cependant, est disponible.
Il existe seulement quelques propriétés sur lesquelles cela se produit. J'aimerais pouvoir parcourir tous les fichiers fld.properties et afficher les valeurs, mais UNIQUEMENT si ce n'est pas une exception.
Je suis assez sûr pourquoi cela se produit (certaines propriétés ne sont pas disponibles dans ce contexte). Ce que j'ai besoin de savoir, c'est comment détecter cela à l'exécution afin que je puisse sauter la propriété.
Je n'arrive pas à trouver une solution qui fonctionne. De l'aide serait grandement appréciée.
J'ai pu contourner ce problème en utilisant un bloc try ... catch avec un bloc de capture vide, mais y a-t-il une meilleure façon de le faire? – rageingnonsense