vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003
-
19 avril 2002 à 22:23
cs_meskiki
Messages postés143Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention22 octobre 2003
-
24 avril 2002 à 19:36
Salut,
Jaimerait savoir comment on fait pour connaitre le noms de toutes les tables qui composent une base de données...
cs_meskiki
Messages postés143Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention22 octobre 2003 23 avril 2002 à 11:55
S'il s'agit d'une base de donnée access je peux t'aider.
Dans access, il y a des tables système ds ta base de donnée mais ils sont pas visible, elles commencent toutes par MySys (dans les autres SGBD aussi, mais je connais pas)
La table qui nous interesse ds ton cas c'est la table MySysObject
Dans le champ name t'as le nom de l'objet et dans le champ type t'as le type de l'object (1 correspond à table, 5 à requete .....)
tu peux faire une requete sur cette table pour récupérer les noms de toutes les tables qui commencent pas par MySys
cs_meskiki
Messages postés143Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention22 octobre 2003 23 avril 2002 à 20:26
C'est un camarade de classe qui voulait faire un truc en VB qui permettait de sauvegarderune base access au format sql. A l'époque, j'ai su le repondre que sur comment avoir les nom des champ et leurs propriétés. Et un jour, par hasard, j'ai découvert les tables système.
Je suis content que ceci a pu servir à quelqu'un.
meskiki
Vous n’avez pas trouvé la réponse que vous recherchez ?
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 23 avril 2002 à 22:28
Salut,
pas contre jai un tit problème :)
Quand jessaie de faire une requête sur cette table ca me renvoi un message d'erreur me disans ceci:
Type d'erreur :
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[Microsoft][Pilote ODBC Microsoft Access] Impossible de lire les enregistrements; pas d'autorisation de lecture sur 'MSysObjects'.
/ama/index.asp, line 9
Gloups... Tu saurais pas eviter ceci??
Merci d'avance!
++
vBt0m.
|[ LEGENDS MAY SLEEP BUT THEY NEVER DIE! ]|
cs_meskiki
Messages postés143Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention22 octobre 2003 24 avril 2002 à 11:20
Je connais pas du tout office xp
mais ça m'étonnerais que microsoft a abondonné l'utilisation de base de donnée système. regarde si dans les options de access tu peux afficher les objets système comme c le cas ds les anciennes versions.Puis regarde ce qu'il y a dedans
cs_meskiki
Messages postés143Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention22 octobre 2003 24 avril 2002 à 12:04
meme sous access 2000 ça ne marche pas.
J'ai pu faire la requete que sous access. ça ne marche pas à partir d'une page asp !!!!
ceci dit, j'ai un autre truc que j'ai testé et qui marche bien avec une base access 2000 du moins. voici mon code :
<%
' Création de l'object connection
Set Conn = Server.CreateObject ("ADODB.Connection")
' Ouvre la connection à la base de donnée. j'utilise un système DNS ici, mais tu peux utiliser le sysytemeque tu veux
Conn.Open "DSN=MonDNS"
' ouvre le shéma de la base et l'extraire dans un objet recordset
Set Rs = Conn.OpenSchema (adSchemaTables)
'parcoure la liste et affiche les tables ne commençant pas par MySys
Do While Not Rs.EOF
if Rs ("TABLE_NAME") then Response.Write "
" & Rs ("TABLE_NAME")
Rs.MoveNext
Loop
' ferme et détruit les objects connection et recordset
Rs.Close
Set Rs = Nothing