Nom des colonnes d'une table

Résolu
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005 - 15 juin 2005 à 16:48
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005 - 16 juin 2005 à 17:22
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

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
15 juin 2005 à 16:56
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
3
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
15 juin 2005 à 17:14
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...
0
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
15 juin 2005 à 17:22
Oublions ma derniere question ridicule, désolé... =) j'avais zapé les " "

Merci encore
0
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
16 juin 2005 à 09:44
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
16 juin 2005 à 09:54
aucune idee. Jai jamais eu besoin de connaitre l'ordre des champs

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

++

BasicInstinct
0
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
16 juin 2005 à 10:04
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... :'(
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
16 juin 2005 à 10:26
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
0
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
16 juin 2005 à 10:38
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....
0
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
16 juin 2005 à 17:22
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
0
Rejoignez-nous