Nom des colonnes d'une table

Résolu
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005
-
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005
-
Bonjour, je sais pas si cette question est deja sur le forum, si oui,
désolé de la poser et ca serait sympas de juste m'en indiquer le lien,
sinon merci de vos reponses.



Alors voila je voudrais pouvoir faire un requete sur une table
avec un "select * from matable where monchamp = mavaleur "
et je voudrais remplir un mshflexgrid de 2 colones, l'une avec le nom
de la colone de la table et l'autre avec la valeur (
myrecorset.fields(i)).

mon probleme c de recuperer le nom de chaque colone de la table, je ne sais pas comment faire.

J'espere avoir été clair.

Et ca me soulagerais pas mal d'arriver a faire ca pour ne pas avoir a
taper le nom de chaque colone de la table dans chaque ligne de mmon
grid.

Merci d'avance.

9 réponses

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
rs : recordset
cnn : connexion
TABLE: le nom de ta table : string

Set rs = cnn.OpenSchema(adSchemaColumns, Array(Empty, Empty, TABLE))
While Not rs.EOF
MsgBox rs("COLUMN_NAME")
Wend

BasicInstinct
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

merci beaucoup pour ta reponse, surtout en si peu de temps, je me
permet de te demander un toout petit complement, car je n'arrive pas a
m'en servir correctement, g mis 'matable' a la ou tu ecris TABLE dans
array(empty,empty,TABLE), mais le truc c'est que ca ne se limite pas
aux colones de ma table... :s il me sors des colonnes de je
ne sais ou...

Merci encore



et dsl pour ces questions de debutant...
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

Oublions ma derniere question ridicule, désolé... =) j'avais zapé les " "

Merci encore
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

heu c encore moi, j'ai un probleme avec le code que tu ma donné, cela
m'extrait les noms des colonnes dans l'ordre alphabetique et non pas
dans l'ordre des colonnes dans la table, comment y remedier...?

Merci d'avance
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
aucune idee. Jai jamais eu besoin de connaitre l'ordre des champs

tu appelles bien un recordset apres, non ?
TextBox= rs(NomChamp)

++

BasicInstinct
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

En fait j'ai plusieurs table de plus de 50 colonnes à afficher dans un
grid, et je voudrais ne pouvoir créer automatiquement les grid j'ai
donc :



Set myrd = connex.OpenSchema(adSchemaColumns, Array(Empty, Empty, "FactureProd"))

nbcolone = 0

While Not myrd.EOF

nbcolone = nbcolone + 1

detCmde.Cols = nbcolone

detCmde.TextMatrix(0, nbcolone - 1) = myrd("COLUMN_NAME")

myrd.MoveNext

Wend

myrd.Close

Set myrd = Nothing



mysql = "SELECT * FROM FactureProd "

mysql mysql & " WHERE NumFact " & fichecli.numeroFact & ";"

myrd.Open mysql, connex



nbligne = 1

While Not myrd.EOF

nbligne = nbligne + 1

detCmde.Rows = nbligne

For i = 0 To nbcolone - 1

If Not IsNull(myrd.Fields(i)) Then


detCmde.TextMatrix(nbligne - 1, i) = myrd.Fields(i)

End If

Next i



myrd.MoveNext

Wend

myrd.Close

Set myrd = Nothing







Sauf que la, comme les nom de colonnes sont dans l'ordre alphabetique
et que mes rs.fields sont dans l'ordre de la table, ben tout est
decalé... :s

Un idée serais tres bien venue, sinon je frai tout a la main mais bon... :'(
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
12
heu...essai ca :

nbligne = 1
While Not myrd.EOF
nbligne = nbligne + 1
detCmde.Rows = nbligne
For i = 0 To nbcolone - 1
If Not IsNull(myrd.Fields(i)) Then
detCmde.TextMatrix(nbligne - 1, i) = myrd.Fields(detCmde.TextMatrix(0,I))
End If
Next i

myrd.MoveNext
Wend
myrd.Close
Set myrd = Nothing

BasicInstinct
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

oui mais non, malheureusement je voudrais garder l'ordre de la table
car il a été pensé pour rassembler certaines données et pour mettre les
plus importante au debut...

Enfin, c'est ptet pas possible... :(

En tout cas merci d'avoir pris le temps de t'y interesser et de me repondre....
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

Je voulais juste preciser que je bossais sur access, mais aujourd'hui
on m'a demandé de passer sur SQLserver et la surprise, les nom de
colonnes sont recupérés dans le bon ordre :D vive sqlServer et a bas
access =)

++ et thx basic instinct