Champ OBDC & Requête Excel

  • Initiateur de la discussion Initiateur de la discussion jeanphi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanphi

XLDnaute Occasionnel
Bonjour le forum

J'utilise une macro Excel pour exécuter des requêtes à partir d'une source OBDC
Voir début du code ci-dessous:

Sub ServeursPSERIESOp()
Sheets("Requête").Select
Sheets("Requête").Range("B2:S100").Delete
With Sheets("Requête").QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=GDB SF;UID=GDBuser;PWD=GDB;APP=Microsoft Office XP;WSID=SES0TE5I;DATABASE=GDBDPISF;AutoTranslate=No;Regional=Yes;UseProcFor" _
), Array("Prepare=0;QuotedId=No;AnsiNPW=No")), Destination:=Range("B2"))
.CommandText = Array( _
"SELECT amModel.FullName, amAsset.SerialNo, amAsset.Status, amPortfolio.FullName, amLocation.FullName FROM GDBDPISF.dbo.amAsset amAsset, GDBDPISF.dbo.amLocation amLocation, GDBDPISF.dbo.amModel amModel, G" _
, _
"DBDPISF.dbo.amPortfolio amPortfolio WHERE amAsset.lAstId = amPortfolio.lAstId AND amAsset.lModelId = amModel.lModelId AND amLocation.lLocaId = amPortfolio.lLocaId AND amModel.lModelId = amPortfolio.l" _
, _
"ModelId AND ((amModel.FullName='/Informati" _
, _
"que distribuée/Unix/Serveurs (discrets) /IBM/05_IBM Serveur P660/') AND (amAsset.Status='Opérationnel') OR (amModel.FullName='/Informatique distribuée/Unix/Serveurs (discrets) /IBM/05_IBM Serveur P550/') AND " _
, "(amAsset.Status='Opérationnel')OR (amModel.FullName='/Informatique distribuée/Unix/Serveurs (discrets) /IBM/05_IBM serie p610/') AND " _
, "(amAsset.Status='Opérationnel')OR (amModel.FullName='/Informatique distribuée/Unix/Serveurs (discrets) /IBM/05_IBM Serveur P570 9117-570/') AND " _
, "(amAsset.Status='Opérationnel')OR (amModel.FullName='/Informatique distribuée/Unix/Serveurs (discrets) /IBM/06_IBM SERVEUR P690/') AND " _


Le problème c'est que si un nouveau "amModel.FullName" est crée dans ma source OBDC, la macro de ne remonte évidemment pas l'info
Ce que je voudrais faire c'est que chaque fois qu'un "amModel.FullName" est détécté dans ma source OBDC, une Msgbox m'en avertisse....
Comment puis je faire??? 🙁
Merci pour votre aide!!!
 
Re : Champ OBDC & Requête Excel

Bonjour Jeanphi,



Si la table amModel est bien faite il doit y avoir une colonne date de création et(ou) date de modification sur lequel tu peux t'appuyer pour les mettre en évidence.

Si il n'y a pas de date, tu peux stocker la liste des Fullname (si la volumétrie le permet) sur une feuille de ton classeur ou dans un autre classeur et faire la comparaison.

GIBI
 
Re : Champ OBDC & Requête Excel

Bonjour,

Le principe et l'intérêt de ton ODBC est d'utiliser SQL pour se connecter à ta base, exécuter la requête et se déconnecter de la base; on a ainsi un vrai-faux système client-serveur... Donc un changement de valeur d'un champ ne peut pas être répercuté dans ton classeur(il faudrait que la demande de mise à jour d'excel parte de la base)

La seule chose que tu puisses faire est de rafraichir à partir d'excel...

A moins qu'il y ait une astuce que je ne connaisse pas, chose fort possible!

Bon WE

Michel
 
Re : Champ OBDC & Requête Excel

Salut tout le monde

Je ne sais pas, mais pourquoi ne pas essayer

... WHERE amAsset.lAstId = amPortfolio.lAstId AND amAsset.lModelId = amModel.lModelId AND amLocation.lLocaId = amPortfolio.lLocaId AND amModel.lModelId = amPortfolio.lModelId AND ((amModel.FullName='*') AND (amAsset.Status='Opérationnel'))"

Plutôt que tous tes "amModel.FullName = machintruc"

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour