OVH Cloud OVH Cloud

liste imprimable de noms de champs

6 réponses
Avatar
chev92
Bonjour,
Je travaille sur une base comprenant cinq tables principales dont je
souhaiterais pouvoir à tout moment éditer et imprimer une liste des noms des
champs. En effet, je suis amené à créer de nouveaux champs dans ces tables au
fur et à mesure que la base doit gérer de nouvelles informations.
Qqu'un connaît-il une requète ou une macro qui constituerait cette liste ?
D'avance, merci à tous.

6 réponses

Avatar
Gilles MOUGNOZ
Bonjour,
Je travaille sur une base comprenant cinq tables principales dont je
souhaiterais pouvoir à tout moment éditer et imprimer une liste des noms
des
champs. En effet, je suis amené à créer de nouveaux champs dans ces tables
au
fur et à mesure que la base doit gérer de nouvelles informations.
Qqu'un connaît-il une requète ou une macro qui constituerait cette liste ?
D'avance, merci à tous.


Bonjour, Chev92

Dans le menu OutilsAnalyseDocumentation, sélectionne l'onglet Table, les
tables qui t'intéressent et clique sur OK: magique !...

Bonne continuation

Avatar
chev92
Merci Gilles,
Je connaissais cette fonction standard de MS Access, mais ce n'est pas tout
à fait ce que je recherche :
il m'est nécessaire de pouvoir disposer d'un outil me permettant en temps
réel d'informer tout utilisateur de ma base des informations de la lsite des
infos qu'elle contient.
Cette fonction le fait, mais il faut retravailler la liste sous MS Word ou
MS Excel avant de la diffuser. En plus, c'est la retravailler pour retirer
des infos dont je n'ai pas besoin dans ce contexte : c'est dommage ...
Donc, je suis toujours à l'écoute de propositions de requête ou de macros
pour faire cela.


Bonjour,
Je travaille sur une base comprenant cinq tables principales dont je
souhaiterais pouvoir à tout moment éditer et imprimer une liste des noms
des
champs. En effet, je suis amené à créer de nouveaux champs dans ces tables
au
fur et à mesure que la base doit gérer de nouvelles informations.
Qqu'un connaît-il une requète ou une macro qui constituerait cette liste ?
D'avance, merci à tous.


Bonjour, Chev92

Dans le menu OutilsAnalyseDocumentation, sélectionne l'onglet Table, les
tables qui t'intéressent et clique sur OK: magique !...

Bonne continuation






Avatar
Gilles MOUGNOZ
Merci Gilles,
Je connaissais cette fonction standard de MS Access, mais ce n'est pas
tout
à fait ce que je recherche :
il m'est nécessaire de pouvoir disposer d'un outil me permettant en temps
réel d'informer tout utilisateur de ma base des informations de la lsite
des
infos qu'elle contient.
Cette fonction le fait, mais il faut retravailler la liste sous MS Word ou
MS Excel avant de la diffuser. En plus, c'est la retravailler pour retirer
des infos dont je n'ai pas besoin dans ce contexte : c'est dommage ...
Donc, je suis toujours à l'écoute de propositions de requête ou de macros
pour faire cela.


Re-bonjour,

Je ne sais pas si tu "parles" VBA, si oui, tu peux utiliser les collections
Currentdb.TableDefs et Currentdb.TableDefs.Fields et insérer les données
dans une table.
Cela donne quelque chose comme cela:

Public Sub ListerChampsTables()
Dim voTable As TableDef
Dim voChamp As Field
Const csDictionnaire = "TableDictionnaire"
CurrentDb.Execute "DROP TABLE " & csDictionnaire
CurrentDb.Execute "CREATE TABLE " & csDictionnaire & _
" (NomTable VarChar(255), NomChamp VarChar(255))"
For Each voTable In CurrentDb.TableDefs
If voTable.Name <> csDictionnaire Then
For Each voChamp In voTable.Fields
CurrentDb.Execute "INSERT INTO " & csDictionnaire & " (" & _
voTable.Name & "," & voChamp.Name & ")"
Next voChamp
End If
Next voTable
End Sub

Cela va te créer une table "TableDictionnaire" (si tu as déjà une table de
ce nom, change la valeur de la constante csDictionnaire) sur laquelle tu
pourras créer un état et faire tous les tris et filtres que tu souhaites.

Bonne continuation

Avatar
3stone
Salut,

"chev92"
[...]
| En effet, je suis amené à créer de nouveaux champs dans ces tables au
| fur et à mesure que la base doit gérer de nouvelles informations.


Déjà entendu parlé de modélisation et de normalisation ??

Une base de données ne s'utilise pas comme une feuille Excel.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
chev92
Merci Gilles,
A priori, ça doit bien fonctionner par rapport à ce que je souhaite faire.
Seul petit hic : Il y aurait une erreur de syntaxe dans l'intruction du
INSERT INTO ?
Cela vous dit quelque chose ?

Christian


Merci Gilles,
Je connaissais cette fonction standard de MS Access, mais ce n'est pas
tout
à fait ce que je recherche :
il m'est nécessaire de pouvoir disposer d'un outil me permettant en temps
réel d'informer tout utilisateur de ma base des informations de la lsite
des
infos qu'elle contient.
Cette fonction le fait, mais il faut retravailler la liste sous MS Word ou
MS Excel avant de la diffuser. En plus, c'est la retravailler pour retirer
des infos dont je n'ai pas besoin dans ce contexte : c'est dommage ...
Donc, je suis toujours à l'écoute de propositions de requête ou de macros
pour faire cela.


Re-bonjour,

Je ne sais pas si tu "parles" VBA, si oui, tu peux utiliser les collections
Currentdb.TableDefs et Currentdb.TableDefs.Fields et insérer les données
dans une table.
Cela donne quelque chose comme cela:

Public Sub ListerChampsTables()
Dim voTable As TableDef
Dim voChamp As Field
Const csDictionnaire = "TableDictionnaire"
CurrentDb.Execute "DROP TABLE " & csDictionnaire
CurrentDb.Execute "CREATE TABLE " & csDictionnaire & _
" (NomTable VarChar(255), NomChamp VarChar(255))"
For Each voTable In CurrentDb.TableDefs
If voTable.Name <> csDictionnaire Then
For Each voChamp In voTable.Fields
CurrentDb.Execute "INSERT INTO " & csDictionnaire & " (" & _
voTable.Name & "," & voChamp.Name & ")"
Next voChamp
End If
Next voTable
End Sub

Cela va te créer une table "TableDictionnaire" (si tu as déjà une table de
ce nom, change la valeur de la constante csDictionnaire) sur laquelle tu
pourras créer un état et faire tous les tris et filtres que tu souhaites.

Bonne continuation






Avatar
Gilles MOUGNOZ
"chev92" a écrit dans le message de news:

Merci Gilles,
A priori, ça doit bien fonctionner par rapport à ce que je souhaite faire.
Seul petit hic : Il y aurait une erreur de syntaxe dans l'intruction du
INSERT INTO ?
Cela vous dit quelque chose ?

Christian


Bonjour, Christian

Essaie en remplaçant la ligne par ceci:
CurrentDb.Execute "INSERT INTO " & csDictionnaire & " ('" & _
voTable.Name & "','" & voChamp.Name & "')"
J'ai ajouté des guillemets pour entourer la valeur des noms de table et de
champs.

Ca fonctionne ?