VBA Access ouvrir 1 form à partir d'1 autre
bambi8511
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
M.A.X.I.M.E. -
M.A.X.I.M.E. -
Bonjour,
J'apprends à coder en VBA sous Access, et ne connais presque rien à l'informatique encore moins au code... alors votre aide me serait très précieuse !
En deux mots, ce que je cherche à obtenir :
j'ai un formulaire, qui me permet d'ouvrir d'autres formulaires
j'ai créé une zone de liste déroulante (avec des noms de ville) avec à côté un bouton de commande appelé "Rechercher"
je voudrais que, lorsque je sélectionne une ville dans la zone de liste déroulante, puis que je clique sur le bouton de commande, la macro ouvre le formulaire "ville" au niveau du bon enregistrement (celui que j'ai sélectionné dans la liste déroulante)
Et c'est là que ça bloque !
Voici mes bouts de code :
- celui-là fonctionne, car j'ai marqué directement le nom du fonds :
Private Sub Commande28_Click()
DoCmd.OpenForm "ville", acNormal, , "nomville = 'BLAH'", acReadOnly, acWindowNormal
End Sub
- mais quand je remplace le nom du fonds par un bout de code qui va requêter le texte sélectionné dans la case de la liste déroulante (comme ci-dessous), ça ne marche plus. Le formulaire "ville" s'ouvre sur le premier enregistrement et non pas celui que je veux :
Private Sub Commande28_Click()
DoCmd.OpenForm "ville", acNormal, , , acReadOnly, , "nomville = '" & Modifiable26.Value & "'"
End Sub
- autre tentative, autre résultat : j'ai positionné mon code qui va chercher l'info dans la case de liste déroulante non pas au niveau de l'argument ArgOuverture, mais plutôt au niveau de l'argument ConditionWhere :
Private Sub Commande28_Click()
DoCmd.OpenForm "ville", acNormal, , "nomville = 'Modifiable26.Value'", acReadOnly
End Sub
Dans ce cas-ci, le résultat est encore pire : le formulaire ville semble s'ouvrir, mais en fait, c'est juste une fenêtre complètement vide.
Merci d'avance de votre aide si vous avez une petite idée !
J'apprends à coder en VBA sous Access, et ne connais presque rien à l'informatique encore moins au code... alors votre aide me serait très précieuse !
En deux mots, ce que je cherche à obtenir :
j'ai un formulaire, qui me permet d'ouvrir d'autres formulaires
j'ai créé une zone de liste déroulante (avec des noms de ville) avec à côté un bouton de commande appelé "Rechercher"
je voudrais que, lorsque je sélectionne une ville dans la zone de liste déroulante, puis que je clique sur le bouton de commande, la macro ouvre le formulaire "ville" au niveau du bon enregistrement (celui que j'ai sélectionné dans la liste déroulante)
Et c'est là que ça bloque !
Voici mes bouts de code :
- celui-là fonctionne, car j'ai marqué directement le nom du fonds :
Private Sub Commande28_Click()
DoCmd.OpenForm "ville", acNormal, , "nomville = 'BLAH'", acReadOnly, acWindowNormal
End Sub
- mais quand je remplace le nom du fonds par un bout de code qui va requêter le texte sélectionné dans la case de la liste déroulante (comme ci-dessous), ça ne marche plus. Le formulaire "ville" s'ouvre sur le premier enregistrement et non pas celui que je veux :
Private Sub Commande28_Click()
DoCmd.OpenForm "ville", acNormal, , , acReadOnly, , "nomville = '" & Modifiable26.Value & "'"
End Sub
- autre tentative, autre résultat : j'ai positionné mon code qui va chercher l'info dans la case de liste déroulante non pas au niveau de l'argument ArgOuverture, mais plutôt au niveau de l'argument ConditionWhere :
Private Sub Commande28_Click()
DoCmd.OpenForm "ville", acNormal, , "nomville = 'Modifiable26.Value'", acReadOnly
End Sub
Dans ce cas-ci, le résultat est encore pire : le formulaire ville semble s'ouvrir, mais en fait, c'est juste une fenêtre complètement vide.
Merci d'avance de votre aide si vous avez une petite idée !
A voir également:
- VBA Access ouvrir 1 form à partir d'1 autre
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Ouvrir fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
5 réponses
Bonjour,
Je pense que c'est la syntaxe que vous recherchez.
Elle est à créer sur l'évènement sur click (Ce n'est qu'un exemple) derrière un bouton
Dim StDocName As String
Dim StLinkCriteriA As String
StDocName = "Formulaire à ouvrir"
StLinkCriteriA = "[champLié_1]=" & Me![champlié_2]
DoCmd.OpenForm StDocName, , , StLinkCriteriA
Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
Je pense que c'est la syntaxe que vous recherchez.
Elle est à créer sur l'évènement sur click (Ce n'est qu'un exemple) derrière un bouton
Dim StDocName As String
Dim StLinkCriteriA As String
StDocName = "Formulaire à ouvrir"
StLinkCriteriA = "[champLié_1]=" & Me![champlié_2]
DoCmd.OpenForm StDocName, , , StLinkCriteriA
Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
Hubert REEVES.
Dim stDocName As String
Dim StLinkCriteriA As String
stDocName = "nomduformulaire"
StLinkCriteriA = "[clé]=" & [clé].Value
' -------ouverture du formulaire en lecture seule-----------
DoCmd.OpenForm stDocName, , , StLinkCriteriA, acFormReadOnly
ce devrait vous aider
Cordialement
Dim StLinkCriteriA As String
stDocName = "nomduformulaire"
StLinkCriteriA = "[clé]=" & [clé].Value
' -------ouverture du formulaire en lecture seule-----------
DoCmd.OpenForm stDocName, , , StLinkCriteriA, acFormReadOnly
ce devrait vous aider
Cordialement
Et pour plusieurs conditions (un nom et prenom définit) comme ci-dessous...
Private Sub Commande30_Click()
DoCmd.OpenForm "inserer_contact", acNormal, , "prenom =" & Me!prenom And "nom=" & Me!nom, acReadOnly, acWindowNormal
End Sub
... une erreur est retournée. Alors qu'avec 1 seule condition il n'y a pas de probleme. Qu'en pensez-vous ?
Private Sub Commande30_Click()
DoCmd.OpenForm "inserer_contact", acNormal, , "prenom =" & Me!prenom And "nom=" & Me!nom, acReadOnly, acWindowNormal
End Sub
... une erreur est retournée. Alors qu'avec 1 seule condition il n'y a pas de probleme. Qu'en pensez-vous ?
J'ai trouvé une solution:
Private Sub Commande30_Click()
Dim id_region As Single
Dim id_eleve As Single
id_region = Forms!form1!id_region
id_eleve = Forms!form1!id_eleve
DoCmd.OpenForm "Eleve", acNormal, , "id_region =" & id_region & " and id_eleve=" & id_eleve, acReadOnly, acWindowNormal
End Sub
Mais je recontre un nouveau probleme c'est que je ne peut pas modifier le formulaire qui s'ouvre, est-ce dû à un des parametres de l'instruction DoCmd.OpenForm ?...
Merci de votre aide...
Private Sub Commande30_Click()
Dim id_region As Single
Dim id_eleve As Single
id_region = Forms!form1!id_region
id_eleve = Forms!form1!id_eleve
DoCmd.OpenForm "Eleve", acNormal, , "id_region =" & id_region & " and id_eleve=" & id_eleve, acReadOnly, acWindowNormal
End Sub
Mais je recontre un nouveau probleme c'est que je ne peut pas modifier le formulaire qui s'ouvre, est-ce dû à un des parametres de l'instruction DoCmd.OpenForm ?...
Merci de votre aide...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question