Posez votre question Signaler

VBA Access ouvrir 1 form à partir d'1 autre

bambi8511 1Messages postés 25 juillet 2007Date d'inscription - Dernière réponse le 25 févr. 2011 à 13:30
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 !
Lire la suite 

VBA Access ouvrir 1 form à partir d'1 autre »

5 réponses
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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...
Ajouter un commentaire
Réponse
+0
moins plus
Solution trouvée:

Il faut remplacer acReadOnly par rien

DoCmd.OpenForm "Eleve", acNormal, , "id_region =" & id_region & " and id_eleve=" & id_eleve, , acWindowNormal

M.A.X.I.M.E.
Ajouter un commentaire
Ce document intitulé « VBA Access ouvrir 1 form à partir d'1 autre » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?