Bonjour,
J'ai réussi à lancer une recherche (via VBA) sur un coffre EPDM via le bout de code ci dessous.
Ma question est la suivante, je souhaiterais récupéré dans cette recherche, les variables de chaques résultats de recherche, j'ai, par exemple, une variable qui s'appelle _NumNDL.
Je suppose qu'il faut utiliser quelques choses comme GetVar ou eNumVar sur un des résultats, mais je n'ai pas la syntaxe, ni la solution. Si quelques sait m'aider ?
Sub TrouverFichier()
Dim eVault As IEdmVault5
Dim eSearch As IEdmSearch5
Dim eResult As IEdmSearchResult5
Dim FileCount As Long
FileCount = 0
'Connection au coffre
Set eVault = New EdmVault5
eVault.LoginAuto eVault.GetVaultNameFromPath("C:\_Clarity\"), 0
'Lancement de la recherche
Set eSearch = eVault.CreateSearch
eSearch.AddVariable "_NDLNouv", "%1%"
eSearch.Filename = "%NDL%"
Set eResult = eSearch.GetFirstResult
'lecture des résultats
While Not eResult Is Nothing
FileCount = FileCount + 1
Cells(FileCount, 1) = eResult.Name
Cells(FileCount, 2) = eResult.Path
Cells(FileCount, 3) = eResult.StateName
Set eResult = eSearch.GetNextResult
Wend
End Sub
Salut,
En fait peux avoir un nombre infini de résultats ! Donc tu ne peux pas utiliser de variable, mais tu dois utiliser un tableau, ce qui est fait ici !
La ligne " FileCount = FileCount + 1" permet de passer à la ligne suivante.
Et tes données sont stockées de cette manière dans 3 colonnes :
Cells(FileCount, 1) = eResult.Name
Cells(FileCount, 2) = eResult.Path
Cells(FileCount, 3) = eResult.StateName
Merci pour ta réponse, mais tu me donnes un code que j'ai moi meme écrit en réponse...
Désolé de te contredire, je me suis d'ailleurs peut etre mal exprimé, mais il existe bien les variables ePDM, si tu regarde dans le code que j'ai fourni, j'ajoute la variable"_NDLnouv" à ma recherche.
Via eResult, je ne peux pas récupéré tout les champs de recherche :
J'aimerais pouvoir récupérer tous les champs lié au résultat de la recherche.
Bonjour,
Sauf erreur de ma part (j'ai déjà effectué ce genre de macro), il faut extraire le fichier pour récupérer le contenu de la variable et ensuite annuler l'extraction.
Il faut donc que tu ajoutes un traitement complémentaire.
Voir fichier joint pour le traitement complémentaire
macro_search.txt
1 « J'aime »
Super merci,
sur le principe ça marche niquel, suaf que j'ai une erreur sur 424 sur :
file.LockFile result.ParentFolderID, 0.
Si j'extrais le fichier "à la main", ça marche, mais je n'arrive pas a l'extraire via ton code, je suppose qu'il me manque la fonction lockfile ?
J'ai omis de changer, dans les deux fonctions lockfile et undolockfile il faut mettre eresult.ParentFolderID au lieu de result.ParentFolderID
Effectivement, je suis passé à coté aussi, j'aurais pu vérifier moi meme, en tout cas, ça marche niquel merci beaucoup.
Cependant, dans l'état d'esprit, je trouve bizarre qu'on soit obligé d'aller extraire le fichier car dans l'affichage de la recherche on voit bien les différentes variables d'affichées et qui font parti du résultat de la recherche. Je suis surpris qu'on ne puisse les lire sans passer par lock ou unlock.
Néanmois, merci pour ton aide.
C'est effectivement étrange mais d'après ce que j'ai compris de l'aide de l'API c'est lié au fait que les variables sont consultables via les cartes lorsqu'elles sont éditables. De fait, les fichiers doivent être extraits.