Je suis dans une entreprise qui utilise un logiciel qui sauvegarde ses données dans une base de données (microsoft sql serveur). Je dois récuperer certaines informations de cette base, mais je ne connais pas le nom des tables utilisées, ni le nom des variables (la base regroupe un nombre impressionant de tables). Si on souhaite avoir accés aux données, on utilise Excel. Je souhaiterai pouvoir récuperer les requetes formulées par access (donc pouvoir visualiser le code Excel), car j’aimerai écrire un logiciel en c# qui récupère les informations dans la base de donnée.
Comment puis-je voir le code des macros exécutés dans Excel en vu de pouvoir trouver les réquétes sql que je cherches?
J’espère avoir été sufisement clair.
Merci par avance de vos réponses. Ce message a été édité par mykelkel le 05/04/2004
Oui, j’ai regardé les feuilles Excel dans visual basic, mais malheureusement je n’ai pas trouvé les commandes de requête sql. Mais bon je pense ne pas avoir tout vu. Je trouve des fonctions, qui me font penser à des fonctions membre en c++(pour imager), mais je ne trouve pas de main, enfin d’endroit ou les fonctions sont appellées.
de mon temps, quand j’etais jeune, et fou. et que je faisait du SQL, il me semblait que toute sgbd sql avait des tables genre “TABLE” pour la liste des tables et compagnies… ca va sentir le hack, mais tu peux pas recuperer tes infos comme ca et reecrire les requetes a la mains ?
Il n’y aurai pas un logiciel en pluggins sous excel qui te ferait le travail de mapping ?
ce qui expliquerai que tu ne puissent pas voir le code.
sinon si tu peux connaitre une facon de te connecter, en SQL tu doit pourvoir travailler sur les tables de sql serveur définissant la table:
syscolumns ou sysObjects ect…
un truc du style :
SELECT syscolumns.name
FROM syscolumns INNER JOIN sysobjects ON syscolumns.id = sysobjects.id
mais pour cela il te faut un login/mdp ayant droit de lecture sur ces tables genre ‘sa’
apres a toi de te retaper a la main toutes tes requettes
Pareil que c0unt0, meme que c’est pas un hack, il existe des procedures stocke integre a SQL Server 2000 pour ca, il faut regarder dans la base Master les stored proc parce que je me souviens plus du nom. Elle commence toutes par sql_, il me semble.
Donc c’est parfaitement propre et valide a realiser. (j’avais un bout de code VB qui faisait ca, mais je n’arrive pas a remettre la main dessus).
mykelkel> Pas sûr d’avoir compris ton “architecture” (ahem! argl!).
Tu parles d’Access mais tu ne dis pas comment tu l’utilises.
Ne serait-ce pas de cette façon ?:
Application Frontale: Excel
Données (tables attachées sur SQL server) et requêtes: Access
Données “sauvegardées”: SQL server.
Si c’est cela tu devrais chercher la liste des tables en VBA access de la façon suivante( peut-être qu’en VBA excel ça fonctionne, pas sûr):
For i = 0 To CurrentDb.TableDefs.Count - 1
If CurrentDb.TableDefs(i).Properties(“Attributes”).Value = 0 Then CurrentDb.TableDefs(i).Name
Next
End Sub
Il faut aussi que tu recherches si les tables sont attachées ou non si besoin.
Pour chercher les requêtes tu fais à peu près la même chose mais sur QueryDefs.
“Il n’y aurai pas un logiciel en pluggins sous excel qui te ferait le travail de mapping ?”
Visiblements les requêtes sont executées par une macro précompilée, donc pas d’accés au code.
“sinon si tu peux connaitre une facon de te connecter, en SQL tu doit pourvoir travailler sur les tables de sql serveur définissant la table:”
Et bien du coup, c’est se que je fais.
Rèponse pour LoneWolf :
Super tes expliquations!!! Je vais les étudier
Rèponse pour phili_b :
Désolé, je me suis trompé, je n’ai pas de base Acess. En fait, j’ai une application qui sauvegarde ses données dans une base de donnée à l’aide de microsoft sql serveur 2000.
Bonne nouvelle:
A l’aide de sql query manager et entreprise Manager, petit à petit (mais c’est laborieux), j’arrive à trouver ou se situes les infos que je recherches!
grace à vous!
Merci !