Microsoft sql serveur 2000 et access

Bonjours à tous.

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

Euh, je vais peut-être dire une connerie mais as tu regardé dans le code des feuilles excel ? (Outil->Macro->vba editor)…

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

mais tu ne peu pas installer Entreprise Manager ?

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).

LoneWolf
Y a moyen.

yeeehaaaa j’ai retrouve mon programme VB!!

'chargement des tables de la base et ajout dans la listep
SQL = “sp_tables”

'recuperation des noms des champsp
SQL = "sp_columns " & NomTables(compt, 0)

avec la doc du transact SQL, ca doit etre facile pour retrouver les differentes options

Hope this help

LoneWolf
C’etait un programme qui transferait une base MSSQL dans une base de son choix (ODBC)

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.

Ce message a été édité par phili_b le 07/04/2004

Rèponse pour Miqualke :

“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 !