OVH Cloud OVH Cloud

passer de formulaire feuille à formulaire formulaire

24 réponses
Avatar
francoise
Bonjour,
Grand merci à 3stone qui m'a aidé dans un message précédent, pour lequel je
n'ai pourtant pas été clair dans ma demande...
Je souhaite passer d'un double clic sur le champ d'un enregistrement, d'un
mode feuille à un mode formulaire sur le même enregistrement.
Le code donné par 3 stone
Set frm2 = New Form_NomDuFormulaire
frm2.Visible = True
frm2.caption = "Second " & "NomDuFormulaire"
frm2.setfocus


fonctionne, mais renvoie au 1er enregistrement au
lieu de rester sur celui pointé dans le mode feuille.
Désolé pour cette insistance...

Merci d'avance

10 réponses

1 2 3
Avatar
francoise
Merci Eric et Pierre,
Malgré les conseils d'Eric, ça bute toujours à la même erreur de signets..
à n'y rien comprendre...
Y aurait il quelque chose en amont qui bloquerait ???

"Eric" a écrit dans le message de news:
u2$
Bonjour Françoise,

Met un DoEvents avant frm2.Bookmark = Me.Bookmark. Il faut, je pense, au
systeme le temps de créer les signets sur la nouvelle présentation du
formulaire
...
frm2.SetFocus
DoEvents
frm2.Bookmark = Me.Bookmark
DoCmd.RunCommand acCmdFormView ' passage en form formulaire
...


Ca marche ?

Bonjour Pierre,

Cela devient désespéré :
J'ai renommé mon formulaire (saisiefeuille)
J'ai suivi tes conseils
et je bute sur l'incontournable erreur de signet 3159..
Puisses tu encore avoir de la patience...
Voici la copie du code ;

Module general :

Option Compare Database
Public frm2 As Form_Saisiefeuille

Code sur évenement :
Private Sub nom_DblClick(Cancel As Integer)
Set frm2 = New Form_Saisiefeuille
frm2.Visible = True
frm2.Caption = "Second" & "Form_choix"
frm2.SetFocus
frm2.Bookmark = Me.Bookmark

End Sub


"3stone" a écrit dans le message de news:


re,

"francoise"
| Voici le code qu j'ai saisi dans le formulaire Feuille
|
| Private Sub nom_DblClick(Cancel As Integer)
| Set frm2 = New Form_Saisie_formulaire
| "c'est le nom du nouveau formulaire que j'ouvre en mode formulaire
deuis




le

| formulaire appelé [saisie en feuille]
| (est ce la la confusion??, une nouvelle instance = le meme formulaire
en



| affichage different? alors que j'ouvre un autre formulaire ???


comment ca ?? tu ouvre un "autre" formulaire ???

La demande originale était :
"a passer en mode formulaire pour ce même nom"

je t'ai donc suggéré d'ouvrir une seconde instance de ton formulaire
(un clone, si tu préfère...)

En faisant exactement ce que je t'ai indiqué, pas de problème !

| Set frm2 = New Form_Saisie_formulaire

Non !! Puisque tu ouvre une seconde instant de [saisie en


feuille]

A passage, quel drôle de nom pour un formulaire...

tu devrais donc faire

Set frm2 = New [Form_Saisie en feuille]



| frm2.Visible = True
| frm2.Caption = "Second" & "Form_choix"


et le caption sert à donner un nouveau nom


| frm2.SetFocus
| DoCmd.RunCommand acCmdDatasheetView
| (cette commande ci dessus renvoie t'elle un mode affichage en feuille
?)



| frm2.Bookmark = Me.Bookmark


Si je récapitule depuis le bédut ;-)

' Déclarer un objet Form dans un module général
Public frm2 As Form_NomDuFormulaire

' sur clic de ton champ

Set frm2 = New Form_NomDuFormulaire
frm2.Visible = True
frm2.caption = "Second " & "Ce que tu veux"
frm2.setfocus
frm2.Bookmark = Me.Bookmark


MAIS :
"NomDuFormulaire" sera à chaque fois le même nom évidement !!!

et si ce nom contient des espaces (toujours déconseillé)
il faut écrire :

[Form_Nom Du Formulaire]



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/







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




Avatar
3stone
re francoise,

"francoise"
| Malgré les conseils d'Eric, ça bute toujours à la même erreur de signets..
| à n'y rien comprendre...
| Y aurait il quelque chose en amont qui bloquerait ???


A tout hasard...
Quelle version d'Access utilise tu ?
Tu n'as pas d'erreur de compilation du code, ailleurs ?
Quel est la source du formulaire ?
Une table ? une requête paramètrées ?
Tu as une clé primaire ?...
il fait froid dehors ? ;-)



Eric :
Tu as ou tu peux recréer l'exemple sans problème ?



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Eric
Bonjour Pierre et Françoise,

Je viens de créer une bd dans laquelle il y a 2 exemples avec le code.
J'ai simplifié l'ouverture. Un form Entree propose le choix entre les 2
exemples (Macro AutoExec).

La base est zippée et ici : http://cjoint.com/?bDsVKTMxOn

PS : Si ça peut être utile, voila ma démarche :
1er cas: Un formulaire Mode feuille de données et sur clic d'un nom
Affichage en mode Formulaire de la nouvelle instance. Mais comme le
formulaire initial est par défaut en feuille de données, la nouvelle
instance créée s'affiche en mode formulaire Continu ce qui n'est pas
très pratique. Mais *pas* de problème de Signet.

2eme cas : Pour pouvoir afficher la nouvelle instance en mode formulaire
simple, j'ai procédé comme suit :
a-Création du Form en mode Colonne
b-création d'un autre formulaire ne comportant qu'un bouton de commande
et sur clic de celui-ci, ouverture du 1er en mode acFormDS c'est à
dire en feuille de données.
*Meme code* que dans le 1er exemple et là sur Double-clic sur le nom,
j'ai l'erreur 3159 *Erreur de signet*. Pour contourner l'erreur, un
DoEvents a suffi.


re francoise,

"francoise"
| Malgré les conseils d'Eric, ça bute toujours à la même erreur de signets..
| à n'y rien comprendre...
| Y aurait il quelque chose en amont qui bloquerait ???


A tout hasard...
Quelle version d'Access utilise tu ?
Tu n'as pas d'erreur de compilation du code, ailleurs ?
Quel est la source du formulaire ?
Une table ? une requête paramètrées ?
Tu as une clé primaire ?...
il fait froid dehors ? ;-)



Eric :
Tu as ou tu peux recréer l'exemple sans problème ?





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

Avatar
3stone
Salut Eric,

"Eric"
| Je viens de créer une bd dans laquelle il y a 2 exemples avec le code.
| J'ai simplifié l'ouverture. Un form Entree propose le choix entre les 2
| exemples (Macro AutoExec).
|
| La base est zippée et ici : http://cjoint.com/?bDsVKTMxOn
|
| PS : Si ça peut être utile, voila ma démarche :
| 1er cas: Un formulaire Mode feuille de données et sur clic d'un nom
| Affichage en mode Formulaire de la nouvelle instance. Mais comme le
| formulaire initial est par défaut en feuille de données, la nouvelle
| instance créée s'affiche en mode formulaire Continu ce qui n'est pas
| très pratique. Mais *pas* de problème de Signet.
|
| 2eme cas : Pour pouvoir afficher la nouvelle instance en mode formulaire
| simple, j'ai procédé comme suit :
| a-Création du Form en mode Colonne
| b-création d'un autre formulaire ne comportant qu'un bouton de commande
| et sur clic de celui-ci, ouverture du 1er en mode acFormDS c'est à
| dire en feuille de données.
| *Meme code* que dans le 1er exemple et là sur Double-clic sur le nom,
| j'ai l'erreur 3159 *Erreur de signet*. Pour contourner l'erreur, un
| DoEvents a suffi.


Merci pour le test !

La méthode est donc valide et devrai fonctionner pour Francoise.
Mais bon, est elle nécessaire et utile...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
francoise
Grand merci pour votre patience...
Ca marche impeccable..
Dans les propriétés du formulaire, j'avais un tri qui venait contrarier les
signets;
Des que je l'ai enlevé, ça a marché...
Merci encore pour votre grande aide...
Durs les debutants....

Bonne soirée

"3stone" a écrit dans le message de news:
#
re francoise,

"francoise"
| Malgré les conseils d'Eric, ça bute toujours à la même erreur de
signets..

| à n'y rien comprendre...
| Y aurait il quelque chose en amont qui bloquerait ???


A tout hasard...
Quelle version d'Access utilise tu ?
Tu n'as pas d'erreur de compilation du code, ailleurs ?
Quel est la source du formulaire ?
Une table ? une requête paramètrées ?
Tu as une clé primaire ?...
il fait froid dehors ? ;-)



Eric :
Tu as ou tu peux recréer l'exemple sans problème ?



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
3stone
Bonsoir,

"francoise"
| Ca marche impeccable..
| Dans les propriétés du formulaire, j'avais un tri qui venait contrarier les
| signets;
| Des que je l'ai enlevé, ça a marché...


AHhhhhhh !!!!

Merci pour le retour.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
francoise
Cependant...
Mes clients s'affichent dans la liste en feuille en ordre de saisie....
Dès que je demande un tri sur la requête source de mon formulaire,
Bookmark perd la tête et revient avec son erreur...
Y aurait il un moyen d'avoir la liste, les noms classés en ordre alpha, ce
qui serait plus pratique pour l'utilisateur...???

"3stone" a écrit dans le message de news:

Bonsoir,

"francoise"
| Ca marche impeccable..
| Dans les propriétés du formulaire, j'avais un tri qui venait contrarier
les

| signets;
| Des que je l'ai enlevé, ça a marché...


AHhhhhhh !!!!

Merci pour le retour.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
Eric
Bonjour,

Au lieu d'utiliser pour ton formulaire Feuille de données la table,
bases celui-ci sur une requête où tu définis le tri sur le champ voulu.
Le plus simple, ouvres le formulaire Feuille de données (le 1er) en mode
modification. Fenêtre Propriétés|Onglet Données cliques sur les 3. (...)
au bout de la ligne Source , ca appelle le générateur de requête. Tu
fondes une requête sur la table, mets en 1er les champs servant de tri
(du principal au secondaire) puis refermes le générateur en sauvant.

Voila, ca devrait tourner

Cependant...
Mes clients s'affichent dans la liste en feuille en ordre de saisie....
Dès que je demande un tri sur la requête source de mon formulaire,
Bookmark perd la tête et revient avec son erreur...
Y aurait il un moyen d'avoir la liste, les noms classés en ordre alpha, ce
qui serait plus pratique pour l'utilisateur...???



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

Avatar
francoise
Merci Eric, pour la ténacité,
mais dès que je mets un tri, dans une requête, ça se met en erreur par le
signet.
ça ne fonctionne qu'avec l'existence de la clé primaire sur champ numauto de
la table.
pas tres confortable pour le contrôle des saisies.


"Eric" a écrit dans le message de news:
#
Bonjour,

Au lieu d'utiliser pour ton formulaire Feuille de données la table,
bases celui-ci sur une requête où tu définis le tri sur le champ voulu.
Le plus simple, ouvres le formulaire Feuille de données (le 1er) en mode
modification. Fenêtre Propriétés|Onglet Données cliques sur les 3. (...)
au bout de la ligne Source , ca appelle le générateur de requête. Tu
fondes une requête sur la table, mets en 1er les champs servant de tri
(du principal au secondaire) puis refermes le générateur en sauvant.

Voila, ca devrait tourner

Cependant...
Mes clients s'affichent dans la liste en feuille en ordre de saisie....
Dès que je demande un tri sur la requête source de mon formulaire,
Bookmark perd la tête et revient avec son erreur...
Y aurait il un moyen d'avoir la liste, les noms classés en ordre alpha,
ce


qui serait plus pratique pour l'utilisateur...???



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



Avatar
Eric
Bonjour Françoise,

Puisqu'apparemment tu changes tes critères de tri en fonction des
besoins, je pense que la solution passe par la définition d'index sur
tous les champs pouvant faire l'objet de critère de classement dans la
table sous-jacente. Je viens de faire, rapidement, un essai en modifiant
le champ de tri, celui-ci n'étant pas Index de la table et j'ai l'erreur
de signet. Renouvellement du traitement mais après avoir mis ce champ
comme Index supplémentaire de la table et là plus de problème.
Si j'ai le temps je ferai un test plus approfondi.


Merci Eric, pour la ténacité,
mais dès que je mets un tri, dans une requête, ça se met en erreur par le
signet.
ça ne fonctionne qu'avec l'existence de la clé primaire sur champ numauto de
la table.
pas tres confortable pour le contrôle des saisies.




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

1 2 3