OVH Cloud OVH Cloud

methode createfield avec nom de champ lu dans un recordset

7 réponses
Avatar
Pimprenelle
bonjour, je souhaite créer une table en vb mais le nom du champ est un fait
un nom que je vais lire dans un recordset mais cela ne fonctionne pas !
un aperçu de ma procédure :
Set tablealire = Db.OpenRecordset("ordresouscategorie")
tablealire.MoveFirst
Do Until tablealire.EOF
nomduchamp = tablealire.idsouscategorie
Set fld = Tbl.CreateField(nomduchamp, dbLong)
Tbl.Fields.Append fld
tablealire.MoveNext
Loop
Comment faire ? merci pour vos réponses.

7 réponses

Avatar
Eric
Bonjour Pimprenelle,

Ne serait-ce point ?
nomduchamp = tablealire("idsouscategorie")

sous réserve que tous les champs créés soit de type Long.



bonjour, je souhaite créer une table en vb mais le nom du champ est un fait
un nom que je vais lire dans un recordset mais cela ne fonctionne pas !
un aperçu de ma procédure :
Set tablealire = Db.OpenRecordset("ordresouscategorie")
tablealire.MoveFirst
Do Until tablealire.EOF
nomduchamp = tablealire.idsouscategorie
Set fld = Tbl.CreateField(nomduchamp, dbLong)
Tbl.Fields.Append fld
tablealire.MoveNext
Loop
Comment faire ? merci pour vos réponses.




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pimprenelle
Bonsoir, non le problème ne se situe pas à ce niveau car en faisant un pas à
pas je vois qu'il me trouve bien le nom du champ. le pb est sur la ligne :
Tbl.CreateField(nomduchamp, dbLong), c'est à ce niveau qu'il n'accepte pas
nomduchamp. J'aimerai vraiment trouver la solution ! Merci d'avance !
Avatar
Eric
Bonsoir,

Il n'y a pas de raison que ça ne marche pas, sauf s'il existe déjà un
champ de même nom créé précédemment. Tbl est bien déclaré en Tabledef ?

Un exemple très simplifié ici: http://cjoint.com/?lbtE6Xda3o


Bonsoir, non le problème ne se situe pas à ce niveau car en faisant un pas à
pas je vois qu'il me trouve bien le nom du champ. le pb est sur la ligne :
Tbl.CreateField(nomduchamp, dbLong), c'est à ce niveau qu'il n'accepte pas
nomduchamp. J'aimerai vraiment trouver la solution ! Merci d'avance !




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pimprenelle
Merci beaucoup pour l'exemple détaillé mais cela ne fonctionne pas chez moi,
la procédure passe la ligne (Set fld = tbl.CreateField(rst(0), rst(1))) puis
passe directement à la gestion d'erreur, ma table ne s'est pas créée. Merci
quand même pour vos efforts, je vais être obligée de tenter de faire cela
par requete mais cela ne m'arrange pas !
Avatar
Pimprenelle
J'ai trouvé d'où venait mon pb : la valeur du champ que je dois recuperer
pour donner mon nom au champ de la nouvelle table est numerique. comment
transformer cette valeur de champ en alphanum uniquement pour que cela me
serve de nom de champ ? Merci encore.
Avatar
Pimprenelle
Encore moi ! c'est bon j'ai trouvé j'utilise CStr et cela fonctionne. Encore
merci pour votre aide !
Avatar
Eric
Bonsoir,
Effectivement, il ne m'était pas venu à l'esprit que le contenu pouvait
être numérique. Tout est donc rentré dans l'ordre. Bonne continuation.

Encore moi ! c'est bon j'ai trouvé j'utilise CStr et cela fonctionne. Encore
merci pour votre aide !




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr