VBA : formulaire basé sur modèle

Le
Gloops
Bonjour tout le monde,

Dans une nouvelle base j'ai un certain nombre de tables de classe liste
crer. J'appelle ainsi des tables qui comportent un champ clef de t=
ype
texte, et trois intituls (qui seront libells dans trois langues). D=
e
l'une l'autre, la taille de la clef et la taille des intituls vari=
ent.

Jusque l, tout va bien, la cration est instantane par une proc=
dure
CreeTabListe qui cre la table dans la base de donnes externe et la =

table lie dans la base courante, avec les champs aux tailles fournies =

en arguments. Ensuite je cherche, avec la mme procdure, crer=
le
formulaire de saisie, et c'est l que a se gte.

J'ai cr dans la base courante (la base frontale) un formulaire
frmListe, qui doit servir de modle.

J'excute le code suivant :

Set Frm = CreateForm(CurrentDb().Name, "frmListe")
strNomForm = Frm.Name
DoCmd.Save acForm, Frm.Name
DoCmd.Close acForm, Frm.Name
DoCmd.Rename "frm" + nomListe, acForm, strNomForm

Le formulaire est bien cr sous le nom "frm" + nomListe (le nom de l=
a
liste tant fourni en argument de la procdure), mais il est vide.

Bien entendu, le formulaire frmListe contient quatre champs de saisie
texte avec les tiquettes associes, et les deux boutons standard de =

base, OK et Annuler, avec le code pour fermer le formulaire, avec ou
sans sauvegarde. Exactement pareil si, dans Outils/Options, catgorie
Formulaires/Etats, je mets "frmListe" comme modle de formulaires.

Me suis-je tromp quelque part ? Va-t-il falloir choisir entre coder la=

cration des contrles un par un, ou les refaire la main (ou par =

copier/coller) chaque table de classe liste ?

a se passe sous Access 2003 SP2, Windows XP Pro (SP2 aussi je suppose,=

je n'ai pas trouv confirmation dans msinfo32).
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #6380881
Salut,

"Gloops" D
[...]
J'exécute le code suivant :

Set Frm = CreateForm(CurrentDb().Name, "frmListe")
strNomForm = Frm.Name
DoCmd.Save acForm, Frm.Name
DoCmd.Close acForm, Frm.Name
DoCmd.Rename "frm" + nomListe, acForm, strNomForm

Le formulaire est bien créé sous le nom "frm" + nomListe (le nom de la
liste étant fourni en argument de la procédure), mais il est vide.

Bien entendu, le formulaire frmListe contient quatre champs de saisie
texte avec les étiquettes associées, et les deux boutons standard de
base, OK et Annuler, avec le code pour fermer le formulaire, avec ou
sans sauvegarde. Exactement pareil si, dans Outils/Options, catégorie
Formulaires/Etats, je mets "frmListe" comme modèle de formulaires.
------------

L'argument "modèle de formulaire" ne fait qu'utiliser les couleurs,
fonts et autres propriétés du formulaire indiqué...
en aucun cas il n'hérite des controles qu'il pourrait contenir.

Si tu cherche as créer un nouveau formulaire basé sur un modèle,
y compris les contrôles etc. utilise plutôt la méthode "CopyObject"

docmd.CopyObject ,"NewForm",acForm,"FrmListe"

Si j'ai bien compris ta question... ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Gloops
Le #6335241
3stone a écrit, le 12/11/2007 21:43 :
L'argument "modèle de formulaire" ne fait qu'utiliser les couleurs,
fonts et autres propriétés du formulaire indiqué...
en aucun cas il n'hérite des controles qu'il pourrait contenir.

Si tu cherche as créer un nouveau formulaire basé sur un modèle,
y compris les contrôles etc. utilise plutôt la méthode "CopyObjec t"

docmd.CopyObject ,"NewForm",acForm,"FrmListe"

Si j'ai bien compris ta question... ;-)



Oui, effectivement, c'est bien comme ça que j'ai fini par faire et ça
marche.
Je ne vois ta réponse qu'aujourd'hui, désolé.

Publicité
Poster une réponse
Anonyme