Passer la valeur d'un control en paramètre

Le
SweetEd
Bonjour,

Je voudrais sélectionner une date en ouvrant un formulaire contenant un
calendrier, ceci à partir d'un formulaire contenant un control onglet.

Jusque là c bon mais pour retourner la date dans le formulaire appelant,
j'obtiens une erreure "2465" disant que le champ transferré n'existe pas.
J'ai bien entendu, vérifié l'orthographe du champ, comme de mon formulaire
appellant.

Ce code est adapté d'un livre présentant des exemples de bases access 2003:


Private Sub Retourner_Click()

Dim intI As Integer
Dim ChampSélect As String

If Not IsNull(Me.OpenArgs) Then
'Idenfifier le champ
intI = InStr(1, Me.OpenArgs, "!", vbTextCompare)
If intI <> 0 Then
ChampSélect = Mid(Me.OpenArgs, intI + 1)

'Affecter la date au champ passé en argument
Forms(FormulaireAppellant)(ChampSélect) = Me!Calend01.Value
End If
End If
'Fermer le Formulaire
DoCmd.Close
End Sub

Dans mon formulaire appellant, j'ai ce code sur un bouton de commande
"ChxDate", avec un control text "ChpATransf" où s'affiche la date retournée:

Private Sub ChxDate_Click()
'Ouvre le formulaire calendrier situé dans le formulaire "FormulCalend" en
passant comme param le champ ChpATransf

DoCmd.OpenForm "FormulCalend", acNormal, , , , , "FormulCalend!ChpATransf"

End Sub


Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #6276441
Bonsoir.

le OpenForm me semble erroné: tu ouvres le formulaire FormulCalend en lui
passant "FormulCalend" comme nom de formulaire appelant.
essaie de remplacer :
DoCmd.OpenForm "FormulCalend", acNormal, , , , , "FormulCalend!ChpATransf"
par
DoCmd.OpenForm "FormulCalend", acNormal, , , , , Me.Name & "!ChpATransf"

bien laisser me.name pour que le nom soit toujours exact si tu décidais un
jour de renommer le formulaire.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"SweetEd" news:
| Bonjour,
|
| Je voudrais sélectionner une date en ouvrant un formulaire contenant un
| calendrier, ceci à partir d'un formulaire contenant un control onglet.
|
| Jusque là c bon mais pour retourner la date dans le formulaire appelant,
| j'obtiens une erreure "2465" disant que le champ transferré n'existe pas.
| J'ai bien entendu, vérifié l'orthographe du champ, comme de mon formulaire
| appellant.
|
| Ce code est adapté d'un livre présentant des exemples de bases access
2003:
|
|
| Private Sub Retourner_Click()
|
| Dim intI As Integer
| Dim ChampSélect As String
|
| If Not IsNull(Me.OpenArgs) Then
| 'Idenfifier le champ
| intI = InStr(1, Me.OpenArgs, "!", vbTextCompare)
| If intI <> 0 Then
| ChampSélect = Mid(Me.OpenArgs, intI + 1)
|
| 'Affecter la date au champ passé en argument
| Forms(FormulaireAppellant)(ChampSélect) = Me!Calend01.Value
| End If
| End If
| 'Fermer le Formulaire
| DoCmd.Close
| End Sub
|
| Dans mon formulaire appellant, j'ai ce code sur un bouton de commande
| "ChxDate", avec un control text "ChpATransf" où s'affiche la date
retournée:
|
| Private Sub ChxDate_Click()
| 'Ouvre le formulaire calendrier situé dans le formulaire "FormulCalend" en
| passant comme param le champ ChpATransf
|
| DoCmd.OpenForm "FormulCalend", acNormal, , , , , "FormulCalend!ChpATransf"
|
| End Sub
|
|
| Merci.
SweetEd
Le #6276431
Merci Raymond pour ta réponse mais j'obtiens toujours ce fichu message et
cette erreure "Impossible de trouver le champ 'ChpATransf' que vous avez
indiqué....".
Comment alors faire passer directement (CàD sans taper le nom du formulaire
appelant) dans le code retour?
....
Forms(????)(ChampSélect) = Me!Calend01.Value

Merci




Bonsoir.

le OpenForm me semble erroné: tu ouvres le formulaire FormulCalend en lui
passant "FormulCalend" comme nom de formulaire appelant.
essaie de remplacer :
DoCmd.OpenForm "FormulCalend", acNormal, , , , , "FormulCalend!ChpATransf"
par
DoCmd.OpenForm "FormulCalend", acNormal, , , , , Me.Name & "!ChpATransf"

bien laisser me.name pour que le nom soit toujours exact si tu décidais un
jour de renommer le formulaire.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"SweetEd" news:
| Bonjour,
|
| Je voudrais sélectionner une date en ouvrant un formulaire contenant un
| calendrier, ceci à partir d'un formulaire contenant un control onglet.
|
| Jusque là c bon mais pour retourner la date dans le formulaire appelant,
| j'obtiens une erreure "2465" disant que le champ transferré n'existe pas.
| J'ai bien entendu, vérifié l'orthographe du champ, comme de mon formulaire
| appellant.
|
| Ce code est adapté d'un livre présentant des exemples de bases access
2003:
|
|
| Private Sub Retourner_Click()
|
| Dim intI As Integer
| Dim ChampSélect As String
|
| If Not IsNull(Me.OpenArgs) Then
| 'Idenfifier le champ
| intI = InStr(1, Me.OpenArgs, "!", vbTextCompare)
| If intI <> 0 Then
| ChampSélect = Mid(Me.OpenArgs, intI + 1)
|
| 'Affecter la date au champ passé en argument
| Forms(FormulaireAppellant)(ChampSélect) = Me!Calend01.Value
| End If
| End If
| 'Fermer le Formulaire
| DoCmd.Close
| End Sub
|
| Dans mon formulaire appellant, j'ai ce code sur un bouton de commande
| "ChxDate", avec un control text "ChpATransf" où s'affiche la date
retournée:
|
| Private Sub ChxDate_Click()
| 'Ouvre le formulaire calendrier situé dans le formulaire "FormulCalend" en
| passant comme param le champ ChpATransf
|
| DoCmd.OpenForm "FormulCalend", acNormal, , , , , "FormulCalend!ChpATransf"
|
| End Sub
|
|
| Merci.





Raymond [mvp]
Le #6276421
tu peux toujours faire comme tu l'indiques:

Forms("leform")("lechamp") = Me!Calend01.Value

ça limite simplement le nombre de formulaires appelant ton calendrier.
si ça fonctionne essaie de voir l'erreur et de laisser la passage par
paramètre.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"SweetEd" news:
| Merci Raymond pour ta réponse mais j'obtiens toujours ce fichu message et
| cette erreure "Impossible de trouver le champ 'ChpATransf' que vous avez
| indiqué....".
| Comment alors faire passer directement (CàD sans taper le nom du
formulaire
| appelant) dans le code retour?
| ....
| Forms(????)(ChampSélect) = Me!Calend01.Value
|
| Merci
SweetEd
Le #6274881
Merci pour le conseil, j'avais homis les guillemets pour le nom du formulaire
appelant :)

J'ai éssayé en récupérant le nom du formulaire appelant en paramètre et ça
semble fonctionner.

1K merci.




tu peux toujours faire comme tu l'indiques:

Forms("leform")("lechamp") = Me!Calend01.Value

ça limite simplement le nombre de formulaires appelant ton calendrier.
si ça fonctionne essaie de voir l'erreur et de laisser la passage par
paramètre.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
PowerShell, une nouvelle approche de l'administration de l'environnement
Windows
http://www.comscamp.com/Tracker/Redirect.ashx?linkid_73b247-3260-4fed-861f-bb587f7ef413


"SweetEd" news:
| Merci Raymond pour ta réponse mais j'obtiens toujours ce fichu message et
| cette erreure "Impossible de trouver le champ 'ChpATransf' que vous avez
| indiqué....".
| Comment alors faire passer directement (CàD sans taper le nom du
formulaire
| appelant) dans le code retour?
| ....
| Forms(????)(ChampSélect) = Me!Calend01.Value
|
| Merci





Publicité
Poster une réponse
Anonyme