Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bouton de commande vers un formulaire

12 réponses
Avatar
Louis
Bonjour,

j'ai un form "contact" regroupant les info des mes contacts, un de mes
champs est code_contact. J'ai un autre form "suivi_contact" qui regroupe
plusieurs champs dont notammant code_contact.

J'ai créé un bouton de commande dans "contact" qui m'ouvre le form
"suivi_contact".
Je voudrais que ce bouton de commande m'ouvre "suivi_contact" en m'affichant
un nouvel enregistrement avec le champ code_contact deja rempli (de la valeur
du code_contact du form "contact" bien sur).

Merci,
Louis

10 réponses

1 2
Avatar
Eric
Bonjour,

(pas testé)

Sur l'évènement clic du bouton, passes des arguments d'ouverture
(OpenArgs) du genre:

DoCmd.OpenForm "suivi_contact", , , , acFormAdd, , Me.Code_Contact

et sur l'évènement d'ouverture(ou chargement) du formulaire suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub

Bonjour,

j'ai un form "contact" regroupant les info des mes contacts, un de mes
champs est code_contact. J'ai un autre form "suivi_contact" qui regroupe
plusieurs champs dont notammant code_contact.

J'ai créé un bouton de commande dans "contact" qui m'ouvre le form
"suivi_contact".
Je voudrais que ce bouton de commande m'ouvre "suivi_contact" en m'affichant
un nouvel enregistrement avec le champ code_contact deja rempli (de la valeur
du code_contact du form "contact" bien sur).

Merci,
Louis


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

Avatar
Louis
Eric,

Bonjour,

(pas testé)

Sur l'évènement clic du bouton, passes des arguments d'ouverture
(OpenArgs) du genre:

DoCmd.OpenForm "suivi_contact", , , , acFormAdd, , Me.Code_Contact


J'ai donc utilisé l'assistant de creation de bouton de commande. J'ai
modifié comme tu me l'as suggéré :

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub

(Mon form "suivi_contact" s'appelle en fait "Follow_up_form" et CODE_CONTACT
est bien en majuscule).

Mais j'ai un message d'erreur "incompatibilité de type", est ce que tu sais
pourquoi?


et sur l'évènement d'ouverture(ou chargement) du formulaire suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub



Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc placé
à la suite de la commande precedente, dans le l'éditeur visual basic. Est ce
OK?

Avatar
Jessy Sempere [MVP]
Bonjour

Je pense que l'argument OpenArgs doit retourner une valeur de type texte.

Si ton code_contact est de type numérique essais en mettant :
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Clng(Me.OpenArgs)
End If
End Sub

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"Louis" a écrit dans le message de news:



Eric,

Bonjour,

(pas testé)

Sur l'évènement clic du bouton, passes des arguments d'ouverture
(OpenArgs) du genre:

DoCmd.OpenForm "suivi_contact", , , , acFormAdd, , Me.Code_Contact


J'ai donc utilisé l'assistant de creation de bouton de commande. J'ai
modifié comme tu me l'as suggéré :

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub

(Mon form "suivi_contact" s'appelle en fait "Follow_up_form" et
CODE_CONTACT
est bien en majuscule).

Mais j'ai un message d'erreur "incompatibilité de type", est ce que tu
sais
pourquoi?


et sur l'évènement d'ouverture(ou chargement) du formulaire suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub



Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc
placé
à la suite de la commande precedente, dans le l'éditeur visual basic. Est
ce
OK?



Avatar
Louis
Bonjour Jessy,

mon code_contact est bien de type texte.

Merci,
Louis


Bonjour

Je pense que l'argument OpenArgs doit retourner une valeur de type texte.

Si ton code_contact est de type numérique essais en mettant :
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Clng(Me.OpenArgs)
End If
End Sub

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"Louis" a écrit dans le message de news:



Eric,

Bonjour,

(pas testé)

Sur l'évènement clic du bouton, passes des arguments d'ouverture
(OpenArgs) du genre:

DoCmd.OpenForm "suivi_contact", , , , acFormAdd, , Me.Code_Contact


J'ai donc utilisé l'assistant de creation de bouton de commande. J'ai
modifié comme tu me l'as suggéré :

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub

(Mon form "suivi_contact" s'appelle en fait "Follow_up_form" et
CODE_CONTACT
est bien en majuscule).

Mais j'ai un message d'erreur "incompatibilité de type", est ce que tu
sais
pourquoi?


et sur l'évènement d'ouverture(ou chargement) du formulaire suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub



Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc
placé
à la suite de la commande precedente, dans le l'éditeur visual basic. Est
ce
OK?








Avatar
Eric
re,

Pour ce qui concerne la procédure d'ouverture, et en plus de la remarque
de Jessy, tu ouvres le formulaire Follow_up_form en mode design, tu fais
afficher la fenêtre des propriétés du formulaire en cliquant avec le
bouton droit de la souris sur le carré à l'intersection des règles
verticale et horizontale. Tu cliques ensuite sur l'onglet Evènement,
choisis sur Ouverture et cliques sur les 3 points en bout de ligne (...)
Sélectionnes alors Procédure évènementielle et tu colles le code entre
Private Sub Form_Open(Cancel As Integer) et End Sub.


...

et sur l'évènement d'ouverture(ou chargement) du formulaire suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub




Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc placé
à la suite de la commande precedente, dans le l'éditeur visual basic. Est ce
OK?


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


Avatar
Louis
Bonjour,

j'ai toujours ce message d'erreur "incompatibilité de type". Le code pour le
bouton de commande est:

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub


Le CODE_CONTACT et bien de type texte.

Avez vous une idée?

Merci
Louis



re,

Pour ce qui concerne la procédure d'ouverture, et en plus de la remarque
de Jessy, tu ouvres le formulaire Follow_up_form en mode design, tu fais
afficher la fenêtre des propriétés du formulaire en cliquant avec le
bouton droit de la souris sur le carré à l'intersection des règles
verticale et horizontale. Tu cliques ensuite sur l'onglet Evènement,
choisis sur Ouverture et cliques sur les 3 points en bout de ligne (...)
Sélectionnes alors Procédure évènementielle et tu colles le code entre
Private Sub Form_Open(Cancel As Integer) et End Sub.


...

et sur l'évènement d'ouverture(ou chargement) du formulaire suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub




Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc placé
à la suite de la commande precedente, dans le l'éditeur visual basic. Est ce
OK?


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





Avatar
Eric
Bonjour,

Hormis le fait que j'aurais écrit la commande
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT


comme suit (4 virgules après stDocName) :
DoCmd.OpenForm stDocName, , , , acFormAdd, , Me.CODE_CONTACT

je pense que l'erreur se trouve dans la procédure Open du formulaire
Follow_up_form. Es-tu sûr que le champ CODE_CONTACT de *ce* formulaire
(dans la table/requête sous-jacente s'entend) est bien de type Texte ?
Car si mes souvenirs sont bons, tu peux stocker ce que tu veux comme
variable dans OpenArgs (Texte, date, valeur numérique ...)
La seule contrainte est le fait que quand tu rappelles le contenu
d'OpenArgs, tu récupères une chaine de caractères comme l'avait fait
remarqué Jessy.

Bonjour,

j'ai toujours ce message d'erreur "incompatibilité de type". Le code pour le
bouton de commande est:

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub


Le CODE_CONTACT et bien de type texte.

Avez vous une idée?

Merci
Louis




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

Avatar
Jessy Sempere [MVP]
Bonjour

Ok mais quel code as-tu placé sur l'événement "sur ouverture" du formulaire
:
"Follow_up_form" ?

Ensuite, sur quelle donnée est basé ce formulaire, est-ce les même que ton
formulaire qui contient le bouton de commande ?

En fait, vu que tu dis que ta donnée est de type texte, essais de mettre
dans le formulaire "Follow_up_form", il code suivant :

Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Cstr(Me.OpenArgs)
End If
End Sub

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Louis" a écrit dans le message de news:

Bonjour,

j'ai toujours ce message d'erreur "incompatibilité de type". Le code pour
le
bouton de commande est:

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub


Le CODE_CONTACT et bien de type texte.

Avez vous une idée?

Merci
Louis



re,

Pour ce qui concerne la procédure d'ouverture, et en plus de la remarque
de Jessy, tu ouvres le formulaire Follow_up_form en mode design, tu fais
afficher la fenêtre des propriétés du formulaire en cliquant avec le
bouton droit de la souris sur le carré à l'intersection des règles
verticale et horizontale. Tu cliques ensuite sur l'onglet Evènement,
choisis sur Ouverture et cliques sur les 3 points en bout de ligne (...)
Sélectionnes alors Procédure évènementielle et tu colles le code entre
Private Sub Form_Open(Cancel As Integer) et End Sub.


...

et sur l'évènement d'ouverture(ou chargement) du formulaire
suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub




Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc
placé
à la suite de la commande precedente, dans le l'éditeur visual basic.
Est ce
OK?


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







Avatar
Louis
Bonjour Eric,

Bonjour,

Hormis le fait que j'aurais écrit la commande
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT


comme suit (4 virgules après stDocName) :
DoCmd.OpenForm stDocName, , , , acFormAdd, , Me.CODE_CONTACT


J'ai donc rajouté une virgule, il ne m'indique plus de message d'erreur de
type mais affiche le message d'erreur suivant:"erreur d'execution...
impossible d'attribuer une valeur a cet objet", quand j'active le debogage il
met en surbrillance la ligne Me.CODE_CONTACT = Me.OpenArgs.


je pense que l'erreur se trouve dans la procédure Open du formulaire
Follow_up_form. Es-tu sûr que le champ CODE_CONTACT de *ce* formulaire
(dans la table/requête sous-jacente s'entend) est bien de type Texte ?


Oui je confirme CODE_CONTACT est bien de type texte

Car si mes souvenirs sont bons, tu peux stocker ce que tu veux comme
variable dans OpenArgs (Texte, date, valeur numérique ...)
La seule contrainte est le fait que quand tu rappelles le contenu
d'OpenArgs, tu récupères une chaine de caractères comme l'avait fait
remarqué Jessy.

Bonjour,

j'ai toujours ce message d'erreur "incompatibilité de type". Le code pour le
bouton de commande est:

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub


Le CODE_CONTACT et bien de type texte.

Avez vous une idée?

Merci
Louis




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




Avatar
Louis
Bonjour Jessy


Bonjour

Ok mais quel code as-tu placé sur l'événement "sur ouverture" du formulaire
:
"Follow_up_form" ?


Le code sur ouverture est celui d'Eric:

Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.CODE_CONTACT = Me.OpenArgs
End If
End Sub


Ensuite, sur quelle donnée est basé ce formulaire, est-ce les même que ton
formulaire qui contient le bouton de commande ?


Ce formulaire follow_up_form et l'autre ont que le champ code_contact de
commun, je rentre manuellement les autres champs de follow_up_form.

En fait, vu que tu dis que ta donnée est de type texte, essais de mettre
dans le formulaire "Follow_up_form", il code suivant :

Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Cstr(Me.OpenArgs)
End If
End Sub



J'ai les memes types d'erreur que precedement:
-Si je ne rajoute pas la vrigule que propose Eric j'ai le message
"incompatibilité de type"
Si je rajoute la virgule, meme message (voir reponse precedente a eric) et
le debogueur met en surbrillance la ligne Me.code_contact = Cstr(Me.OpenArgs)


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Louis" a écrit dans le message de news:

Bonjour,

j'ai toujours ce message d'erreur "incompatibilité de type". Le code pour
le
bouton de commande est:

Private Sub Commandefollowup_Click()
On Error GoTo Err_Commandefollowup_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Follow_up_form"
DoCmd.OpenForm stDocName, , , acFormAdd, , Me.CODE_CONTACT

Exit_Commandefollowup_Click:
Exit Sub

Err_Commandefollowup_Click:
MsgBox Err.DESCRIPTION
Resume Exit_Commandefollowup_Click

End Sub


Le CODE_CONTACT et bien de type texte.

Avez vous une idée?

Merci
Louis



re,

Pour ce qui concerne la procédure d'ouverture, et en plus de la remarque
de Jessy, tu ouvres le formulaire Follow_up_form en mode design, tu fais
afficher la fenêtre des propriétés du formulaire en cliquant avec le
bouton droit de la souris sur le carré à l'intersection des règles
verticale et horizontale. Tu cliques ensuite sur l'onglet Evènement,
choisis sur Ouverture et cliques sur les 3 points en bout de ligne (...)
Sélectionnes alors Procédure évènementielle et tu colles le code entre
Private Sub Form_Open(Cancel As Integer) et End Sub.


...

et sur l'évènement d'ouverture(ou chargement) du formulaire
suivi_contact
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.code_contact = Me.OpenArgs
End If
End Sub




Je ne vois pas tellement ou est l'évènement d'ouverture, je l'ai donc
placé
à la suite de la commande precedente, dans le l'éditeur visual basic.
Est ce
OK?


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












1 2