Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2703 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  connection ODBC Persistante sous Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

connection ODBC Persistante sous Excel

n°1577319
p'titmath
Posté le 20-06-2007 à 15:31:19  profilanswer
 

Bonjour,
 
J'essaye de créer une petite macro sous excel qui me permette d 'actualiser un certains nombres de cellules dans excel depuis une base de donnée Mysql.
par contre je cherche à ouvrir une seule fois la connexion ODBC et non une fois à chaque fois que je lance une requete.
 
voici mon code actuelle qui me prend trop de temps :
 

Code :
  1. Conn = "ODBC;"
  2. Conn = Conn & "DSN=glpi;"
  3. Conn = Conn & "SERVER=10.10.10.10;"
  4. Conn = Conn & "UID=admin;"
  5. Sheets("recap" ).Select
  6. Sheets("test" ).Select
  7. With ActiveSheet.QueryTables.Add(Connection:=Conn, Destination:=Range("D4" ))
  8.         .CommandText = Array("select serial from glpi_computers where glpi_computers.name='test'" )
  9.         .Name = "Lancer la requête à partir de glpi"
  10.         .FieldNames = False
  11.         .RowNumbers = False
  12.         .FillAdjacentFormulas = False
  13.         .PreserveFormatting = True
  14.         .RefreshOnFileOpen = False
  15.         .BackgroundQuery = True
  16.         .RefreshStyle = xlInsertDeleteCells
  17.         .SavePassword = False
  18.         .SaveData = True
  19.         .AdjustColumnWidth = False
  20.         .RefreshPeriod = 0
  21.         .PreserveColumnInfo = True
  22.         .Refresh BackgroundQuery:=False
  23.     End With
  24.     With ActiveSheet.QueryTables.Add(Connection:=Conn, Destination:=Range("A15" ))
  25.         .CommandText = Array( _
  26.         "select glpi_computers.name, glpi_software.name from glpi_computers" & Chr(13) & "" & Chr(10) & "left outer join glpi_inst_software on glpi_inst_software.cid=glpi_computers.id" & Chr(13) & "" & Chr(10) & "left outer join glpi_licenses on glpi_inst_software." _
  27.         , _
  28.         "license=glpi_licenses.id" & Chr(13) & "" & Chr(10) & "left outer join glpi_software on glpi_licenses.sid=glpi_software.id" & Chr(13) & "" & Chr(10) & "where glpi_computers.name='GS11SLWI025'" & Chr(13) & "" & Chr(10) & "order by glpi_software.name asc" _
  29.         )
  30.         .Name = "Lancer la requête à partir de glpi"
  31.         .FieldNames = False
  32.         .RowNumbers = False
  33.         .FillAdjacentFormulas = False
  34.         .PreserveFormatting = True
  35.         .RefreshOnFileOpen = False
  36.         .BackgroundQuery = True
  37.         .RefreshStyle = xlInsertDeleteCells
  38.         .SavePassword = False
  39.         .SaveData = True
  40.         .AdjustColumnWidth = True
  41.         .RefreshPeriod = 0
  42.         .PreserveColumnInfo = True
  43.         .Refresh BackgroundQuery:=False
  44.     End With
  45. Sheets("temp" ).Select
  46. End Sub


 
qqn pourrait me dire comment faire pour ouvrir une fois pour toute la connexion dans la macro?
 
merci


Message édité par p'titmath le 20-06-2007 à 15:32:33
mood
Publicité
Posté le 20-06-2007 à 15:31:19  profilanswer
 

n°1577329
p'titmath
Posté le 20-06-2007 à 16:21:36  profilanswer
 

Help, no one? :<

n°1577331
tegu
Posté le 20-06-2007 à 16:28:36  profilanswer
 

Une connexion ça s'ouvre et ça se ferme (sinon on a des problèmes)
Il te faut donc fabriquer une fonction pour l'ouvrir, une pour la fermer et enlever les instructions de connexion de ton actuelle macro de lancement de requete.

 

La question importante à se poser est quand veux-tu ouvrir la connexion et quand dois-tu la fermer ?
Les évènements d'ouverture et de fermeture de ton classeur sont des pistes à suivre pour cela mais, évidemment, cela dépend de tes besoins.

 

Entre l'ouverture et la fermetrue tu pourras lancer autant de requetes qeu tu veux en utilisant l'objet Conn (déclaré public).

 



Message édité par tegu le 20-06-2007 à 16:29:18
n°1577333
p'titmath
Posté le 20-06-2007 à 16:32:18  profilanswer
 

je suis bien d accord pour les connectoins.
 
en fait la connections doit se faire au lancement de la macro
apres je lance mes différentes requetes sur mes différents onglets.
seulement à la fin je fermerais la connection.
 
en fait je cherche surtt à avoir la syntaxe justement pour déclarer cette  ouverture et fermeture de connection.
 
merci =)

n°1577341
tegu
Posté le 20-06-2007 à 16:59:18  profilanswer
 

Cherche sur ce forum et le web à « ADODB.Connection »


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  connection ODBC Persistante sous Excel

 

Sujets relatifs
Requêtes SQL sur AS400 via lien ODBC ? (PHP)copier coller cellule excel dans word à partir d'excel
Faire un ping sous excelProblème macro excel
[EXCEL] Macro sans mémoire de casesCompilation PHP + ODBC
Insertion image Excel à la place d'un caractére[PHP] PEAR & Excel writer : forcer le format d'une case
Connexion ODBC SybaseFacture sous Excel : puis-je simplifier certaines formules ?
Plus de sujets relatifs à : connection ODBC Persistante sous Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR