Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste des champs par requête sql.

8 réponses
Avatar
William Kameron
Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une table.

Comment m'y prendre ?

8 réponses

Avatar
Fabien
Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+

Avatar
Fabien
Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table avec
dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le N° de
la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)


Avatar
Fabien
Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une
table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table avec
dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le N° de
la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)
Une piste :

Sub creat_table()
Dim db As DAO.Database
Dim Tbl_Def, Tbl_Loop As DAO.TableDef
Dim Str_Source As String
Dim I As Integer
Set db = CurrentDb
DoCmd.SetWarnings False
For Each Tbl_Loop In db.TableDefs
Debug.Print Tbl_Loop.Name 'Nom des tables
Set Tbl_Def = db.TableDefs(Tbl_Loop.Name)
For I = 0 To Tbl_Def.Fields.Count
Debug.Print Tbl_Def.Fields(I).Name 'Nom des champs de la table
Next
Next
Set db = Nothing
End Sub



Avatar
William Kameron
Comme c'est curieux...

Lors de la définition d'une table, nous avons bien la possibilité de
spécifier comme source de la liste de déroulante la liste de champs provenant
d'une table ou une requête !!!!!!!
J'aurais souhaité avoir une liste expurgée de certains éléments auxquels
j'ajouterais des expressions génériques.

Je vais explorer ta solution Fabien.
Je vais insérer ton bout de code quelque part.

Merci Fabien


Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une
table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table avec
dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le N° de
la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)
Une piste :

Sub creat_table()
Dim db As DAO.Database
Dim Tbl_Def, Tbl_Loop As DAO.TableDef
Dim Str_Source As String
Dim I As Integer
Set db = CurrentDb
DoCmd.SetWarnings False
For Each Tbl_Loop In db.TableDefs
Debug.Print Tbl_Loop.Name 'Nom des tables
Set Tbl_Def = db.TableDefs(Tbl_Loop.Name)
For I = 0 To Tbl_Def.Fields.Count
Debug.Print Tbl_Def.Fields(I).Name 'Nom des champs de la table
Next
Next
Set db = Nothing
End Sub






Avatar
William Kameron
Pour ma liste déroulante, en fait, pourquoi pas faire plus simple ?

On pourrait concantener tous les champs utiles de la table dans la propriété
'contenu' de 'liste valeurs" juste avant l'ouverture de l'objet.....

Je vais creuser le sujet.


Comme c'est curieux...

Lors de la définition d'une table, nous avons bien la possibilité de
spécifier comme source de la liste de déroulante la liste de champs provenant
d'une table ou une requête !!!!!!!
J'aurais souhaité avoir une liste expurgée de certains éléments auxquels
j'ajouterais des expressions génériques.

Je vais explorer ta solution Fabien.
Je vais insérer ton bout de code quelque part.

Merci Fabien


Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une
table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table avec
dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le N° de
la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)
Une piste :

Sub creat_table()
Dim db As DAO.Database
Dim Tbl_Def, Tbl_Loop As DAO.TableDef
Dim Str_Source As String
Dim I As Integer
Set db = CurrentDb
DoCmd.SetWarnings False
For Each Tbl_Loop In db.TableDefs
Debug.Print Tbl_Loop.Name 'Nom des tables
Set Tbl_Def = db.TableDefs(Tbl_Loop.Name)
For I = 0 To Tbl_Def.Fields.Count
Debug.Print Tbl_Def.Fields(I).Name 'Nom des champs de la table
Next
Next
Set db = Nothing
End Sub








Avatar
Fabien
Pour ma liste déroulante, en fait, pourquoi pas faire plus simple ?

On pourrait concantener tous les champs utiles de la table dans la propriété
'contenu' de 'liste valeurs" juste avant l'ouverture de l'objet.....

Je vais creuser le sujet.


Comme c'est curieux...

Lors de la définition d'une table, nous avons bien la possibilité de
spécifier comme source de la liste de déroulante la liste de champs provenant
d'une table ou une requête !!!!!!!
J'aurais souhaité avoir une liste expurgée de certains éléments auxquels
j'ajouterais des expressions génériques.

Je vais explorer ta solution Fabien.
Je vais insérer ton bout de code quelque part.

Merci Fabien


Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une
table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table avec
dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le N° de
la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)
Une piste :

Sub creat_table()
Dim db As DAO.Database
Dim Tbl_Def, Tbl_Loop As DAO.TableDef
Dim Str_Source As String
Dim I As Integer
Set db = CurrentDb
DoCmd.SetWarnings False
For Each Tbl_Loop In db.TableDefs
Debug.Print Tbl_Loop.Name 'Nom des tables
Set Tbl_Def = db.TableDefs(Tbl_Loop.Name)
For I = 0 To Tbl_Def.Fields.Count
Debug.Print Tbl_Def.Fields(I).Name 'Nom des champs de la table
Next
Next
Set db = Nothing
End Sub

Je voyais bien aussi cette solution de liste mais comme tu étais parti



sur une requete sql .... ;-)
La propriété rowsource d'une liste c'est nettement plus simple ;-)






Avatar
Fabien
Pour ma liste déroulante, en fait, pourquoi pas faire plus simple ?

On pourrait concantener tous les champs utiles de la table dans la
propriété 'contenu' de 'liste valeurs" juste avant l'ouverture de
l'objet.....

Je vais creuser le sujet.


Comme c'est curieux...

Lors de la définition d'une table, nous avons bien la possibilité de
spécifier comme source de la liste de déroulante la liste de champs
provenant d'une table ou une requête !!!!!!! J'aurais souhaité avoir
une liste expurgée de certains éléments auxquels j'ajouterais des
expressions génériques.

Je vais explorer ta solution Fabien.
Je vais insérer ton bout de code quelque part.

Merci Fabien


Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs
d'une table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations
possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table
avec dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le
N° de la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un
N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)
Une piste :

Sub creat_table()
Dim db As DAO.Database
Dim Tbl_Def, Tbl_Loop As DAO.TableDef
Dim Str_Source As String
Dim I As Integer
Set db = CurrentDb
DoCmd.SetWarnings False
For Each Tbl_Loop In db.TableDefs
Debug.Print Tbl_Loop.Name 'Nom des tables
Set Tbl_Def = db.TableDefs(Tbl_Loop.Name)
For I = 0 To Tbl_Def.Fields.Count
Debug.Print Tbl_Def.Fields(I).Name 'Nom des champs de
la table
Next
Next
Set db = Nothing
End Sub

Je voyais bien aussi cette solution de liste mais comme tu étais parti



sur une requete sql .... ;-)
La propriété rowsource d'une liste c'est nettement plus simple ;-)
William je suis confus ;-(

C'est si simple que c'est a s'en modre les doigts.
Dans la definition de ta liste tu indique au lieu de requete, liste de
champs. Tu indique la table et le tour est joué.
Désolé de toute ces complications ;-(((







Avatar
William Kameron
Merci Fabien.


Pour ma liste déroulante, en fait, pourquoi pas faire plus simple ?

On pourrait concantener tous les champs utiles de la table dans la propriété
'contenu' de 'liste valeurs" juste avant l'ouverture de l'objet.....

Je vais creuser le sujet.


Comme c'est curieux...

Lors de la définition d'une table, nous avons bien la possibilité de
spécifier comme source de la liste de déroulante la liste de champs provenant
d'une table ou une requête !!!!!!!
J'aurais souhaité avoir une liste expurgée de certains éléments auxquels
j'ajouterais des expressions génériques.

Je vais explorer ta solution Fabien.
Je vais insérer ton bout de code quelque part.

Merci Fabien


Bonsoir.

Je voudrais écrire une requête qui donne la liste des champs d'une
table.

Comment m'y prendre ?
Salut William

Par sql je pense pas ça possible mais par vba oui.
CF http://warin.developpez.com/access/dao/
Il y a plein d'explication sur les objets et les manipulations possibles
@+
[Début délire]

Imaginons qu'avec un bout de code tu te créé une premiére table avec
dedans le nom des tables et un N° pour chaque
En parallele tu créé également une table dans laquelle tu stock le N° de
la table et le nom du champ.
genre
Pour chaque table
enregistrer le nom de la table dans T_Table et ajouter un N° auto
Pour chaque champs de la table
Enregistrer le N° auto et le nom du champ dans T_Champ


Du coup tu peux faire des requetes sur ces deux tables
T_Table et T_Champs.
[Fin délire]

Ya surement plus simple ;-)
Une piste :

Sub creat_table()
Dim db As DAO.Database
Dim Tbl_Def, Tbl_Loop As DAO.TableDef
Dim Str_Source As String
Dim I As Integer
Set db = CurrentDb
DoCmd.SetWarnings False
For Each Tbl_Loop In db.TableDefs
Debug.Print Tbl_Loop.Name 'Nom des tables
Set Tbl_Def = db.TableDefs(Tbl_Loop.Name)
For I = 0 To Tbl_Def.Fields.Count
Debug.Print Tbl_Def.Fields(I).Name 'Nom des champs de la table
Next
Next
Set db = Nothing
End Sub

Je voyais bien aussi cette solution de liste mais comme tu étais parti



sur une requete sql .... ;-)
La propriété rowsource d'une liste c'est nettement plus simple ;-)