Rechercher : dans
Par :

VBA Access ouvrir 1 form à partir d'1 autre

Dernière réponse le 26 jui 2007 à 08:02:06 bambi8511, le 25 jui 2007 à 14:57:45 
 Signaler ce message aux modérateurs

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 !

Configuration: Windows XP
Internet Explorer 6.0

1

 Jacques, le 26 jui 2007 à 08:02:06

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.

Répondre à Jacques
Collection CommentÇaMarche.net