Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 WinSearch VBA | PowerPivot et/ou PowerQuery

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Pour faire écho à la discussion de @patricktoulon, j'ai retrouvé ce fil

J'ai voulu testé sur 365 et W10 64 bits
Et j'ai ce message d'erreur

Alors tout comme @patricktoulon , je vous invite à tester le code présent dans la discussion de 2013 citée plus haut

La question étant: est-ce que chez vous aussi ce message d'erreur apparait ?

EDITION: Voir le message#57 où apparait PowerPivot dans l'histoire.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Voici mes tests du jour pour ce qui concerne WS

SqlB = "SELECT TOP 10 System.ItemUrl FROM SystemIndex WHERE System.Kind = 'picture'"

SqlB = "SELECT TOP 30 System.ItemUrl FROM SystemIndex WHERE System.Kind = 'document'"

SqlB = "SELECT System.ItemName, System.ItemPathDisplay,System.Search.AutoSummary FROM SystemIndex WHERE SCOPE ='C:\Users\STAPLE\Documents' AND System.FileExtension='.bat'"

SqlB = "SELECT TOP 5 System.ItemUrl,System.ItemDate FROM SystemIndex WHERE SCOPE ='C:\Users\STAPLE\Documents' AND System.FileExtension='.xlsx'"

Si j'ajoute System.ItemDate il faut que je reformate la colonne qui reçoit les dates en jj/mm/aaaa hh:mm:ss
Comment faire pour reformater les dates en amont ?

PS: N'hésitez pas à proposer vos exemples de SqlB, des plus simples ou plus complexes
(pour tester avec Windows Search)

Bonne journée
 

jurassic pork

XLDnaute Occasionnel
Avec ma version d'Excel, privé de PowerPivot .
Hello,
crocrocro il me semble que tu travailles sous Excel 2016 et normalement il y a powerpivot sous Excel 2016 mais attention c'est un complément COM :


Sinon j'ai essayé d'utiliser PowerQuery pour faire la même chose qu'avec PowerPivot avec cette requête :
PowerQuery:
= OleDb.Query(
    "Provider=Search.CollatorDSO;Extended Properties='Application=Windows'",
    "SELECT 
System.ItemTypeText,
System.Size, System.ItemFolderNameDisplay,
CAST(System.ItemFolderPathDisplay as DBTYPE_BSTR),
System.DateCreated,
System.DateAccessed,
System.FileExtension,
CAST(System.ItemName AS DBTYPE_BSTR)
FROM SYSTEMINDEX
WHERE SCOPE='file:D:\dev'"
)

mais j'ai une erreur :


Ami calmant, J.P
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, @jurassic pork

J'avais mal lu l'article et moi aussi j'avais essayé avec PowerQuery
Et j'ai le même message d'erreur
En relisant l'article de Chris Webb, j'ai vu qu'il parlait de PowerPivot et forcément ca fonctionne mieux

Pourtant on arrive à se connecter, non ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Plus d'erreur mais la table reste vide me dit PQ
PowerQuery:
let
Source = OleDb.DataSource("provider=Search.CollatorDSO.1;extended properties=""Application=Windows"""),
Test=OleDb.Query(Source,"SELECT 
System.ItemTypeText,
System.Size, System.ItemFolderNameDisplay,
CAST(System.ItemFolderPathDisplay as DBTYPE_BSTR),
System.DateCreated,
System.DateAccessed,
System.FileExtension,
CAST(System.ItemName AS DBTYPE_BSTR)
FROM SYSTEMINDEX
WHERE SCOPE='C:\Users\STAPLE\Documents\EXCEL'")
in
 Source
Si quelqu'un trouve où le bât blesse, merci à lui.
Faut que j'aille bosser pour de bon cette fois

Bonne journée à tous
 

jurassic pork

XLDnaute Occasionnel
Hello Staple1600,
tu as mis in Source au lieu de in Test
et il faut se méfier de PowerPivot qui te crée des connexions
 

crocrocro

XLDnaute Occasionnel
Bonjour le fil,

@jurassic pork :
Hello,
crocrocro il me semble que tu travailles sous Excel 2016 et normalement il y a powerpivot sous Excel 2016
Pas avec Excel 2016 Famille Etudiant

@Staple1600
Si j'ajoute System.ItemDate il faut que je reformate la colonne qui reçoit les dates en jj/mm/aaaa hh:mm:ss
Comment faire pour reformater les dates en amont ?
ce qui marche
CAST(System.ItemDate AS DBTYPE_DATE)
à voir ce lien, au cas par cas https://www.ibm.com/docs/fr/informi...8G_12.1.0/com.ibm.oledb.doc/ids_oledb_026.htm

PS: N'hésitez pas à proposer vos exemples de SqlB, des plus simples ou plus complexes
çà peut faire des pages mais comme je te l'ai dit précédemment, le langage SQL est très simple comparé à la syntaxe Excel formules et VBA.
Je donnerai plus tard quelques exemples.
Pour extraire des données avec un SELECT, avec une 20aine de mots clés tu as fait globalement le tour et tu trouveras sur internet des tutos simples;
En connaissant Excel, le parallèle est évident avec la présentation des tableaux (tris, filtres, listes déroulantes ...)
 
Dernière édition:

dysorthographie

XLDnaute Accro
Et là, @dysorthographie , je m'adresse à toi, est-ce tu as un logiciel à me recommander pour pratiquer le SQL?
(à part Excel) ?
Mes recherches m'ont mené à : DB Browser for SQLite
Bonjour,
SQLite est une bonne solution.

Tu peux également télécharger uamp qui est une distribution qui offre une base de données MySQL ainsi qu'un serveur Apache et le tout sur clé USB sous windows.

Il existe également localdb qui est un moteur de base de données SQL serveur très léger.

Excel, pour débuter, peut faire office de base de données.
Il accepte les requêtes SQL type insert, update, inner joint, left joint etc.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

@jurassic pork
Note pour plus tard à moi-même:
Ne pas faire de requête PQ tôt le matin, juste avant d'aller bosser !
J'ai corrigé, mais cela m'emmène ici

Pour le moment, je ne vois pas comment corriger la chose
De ton côté, tu as réussi avec PowerQuery?
Si oui, tu peux publier le code M, stp ?
PS: merci pour le lien

@crocrocro
Merci pour la proposition pour corriger System.ItemDate

@dysorthographie
Tu as raison d'autant plus que j'ai ceci dans mes favoris
 
Dernière édition:

jurassic pork

XLDnaute Occasionnel
@jurassic pork
J'ai corrigé, mais cela m'emmène ici
Regarde la pièce jointe 1205409
Pour le moment, je ne vois pas comment corriger la chose
De ton côté, tu as réussi avec PowerQuery?
Si oui, tu peux publier le code M, stp ?
Hello,
c'est normal que tu aies cette erreur car OleDb.DataSource renvoie une table (qui est vide chez toi et chez moi cela produit une erreur DB_E_ERRORSOCCURRED(0x80040E21).
Sur le net je n'ai trouvé personne qui a réussi cette manip avec le provider Search.CollatorDSO
A mon avis pour ne pas perdre son temps, il faudrait arrêter d'essayer de faire fonctionner Windows search dans power query surtout qu'on peut faire la manip en VBA et avec powerpivot.
Ami calmant, J.P
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…