OVH Cloud OVH Cloud

Actualisation d'une liste déroulante

3 réponses
Avatar
C15
Bonjour à tous et toutes,

J'ai un table T Clients dans laquelle j'ai une liste déroulante (NomVille)
pour sélectionner une ville existant dans une table T Villes.
Le CP est directement mis à jour par le code :
Me.CP=Me.NomVille.Column(1)

Si la ville à saisir n'existe pas dans la ComboList, j'ai mis en place une
procédure sur double clic permettant d'ouvrir un formulaire basé sur la T
Villes pour saisir le nom de la nouvelle ville et son CP.
Après la saisie, grâce à un bouton sur le F Villes, je reviens dans le
formulaire principal et actualise la Combo, où apparait alors la nouvelle
ville qu'il faut ensuite sélectionner, le CP s'actualisant automatiquement.

Cette procédure "aller retour" entre les 2 formulaires est réalisée par un
groupe de macros dont le code converti est le suivant :

>>>>
'------------------------------------------------------------
' M_nouvelle_ville_saisir_ville
'
'------------------------------------------------------------
Function M_nouvelle_ville_saisir_ville()
On Error GoTo M_nouvelle_ville_saisir_ville_Err

DoCmd.OpenForm "F villes", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acForm, "F villes", acNewRec
DoCmd.Save acForm, "F villes"


M_nouvelle_ville_saisir_ville_Exit:
Exit Function

M_nouvelle_ville_saisir_ville_Err:
MsgBox Error$
Resume M_nouvelle_ville_saisir_ville_Exit

End Function


'------------------------------------------------------------
' M_nouvelle_ville_actualiser
'
'------------------------------------------------------------
Function M_nouvelle_ville_actualiser()
On Error GoTo M_nouvelle_ville_actualiser_Err

DoCmd.Close acForm, "F villes"
DoCmd.SelectObject acForm, "F tous clients", False
DoCmd.GoToControl "NomVille"
DoCmd.Requery "NomVille"


M_nouvelle_ville_actualiser_Exit:
Exit Function

M_nouvelle_ville_actualiser_Err:
MsgBox Error$
Resume M_nouvelle_ville_actualiser_Exit

End Function
>>>

Comment pourrait-on aller un peu plus loin dans cette procédure pour que la
ville nouvellement saisie soit automatiquement sélectionnée dans la liste
déroulante ?

Merci de votre aide.

A+

C15

3 réponses

Avatar
Raymond [mvp]
Bonjour.

tu peux faire comme indiqué ci-dessous:
j'ai volontairemenrt enlevé la gestion des erreurs pour simplifier et aider
à la compréhension. ce qu'il faut c'est ouvrir ton formulaire de saisie des
communes en add pour éviter de se positionner sur un nouvel enregistrement
et en acdialog pour attendre le retour.

' dans le formulaire de saisie du client "F tous clients"
'-----------------------------------------
Function M_nouvelle_ville_saisir_ville()
' mettre en dialogue pour pouvoir tester le retour
DoCmd.OpenForm "F villes", , , , acFormAdd, acDialog
Me.NomVille.SetFocus
Me.NomVille.Dropdown
Exit Function
End Function

'--------------------------------------------
' dans le formulaire de saisie de la commune "F villes"
'--------------------------------------------
Function M_nouvelle_ville_actualiser()
Forms("F tous clients")("NomVille").Requery
Forms("F tous clients")("NomVille") = "nouvellevaleur"
DoCmd.Close acForm, Me.Name
End Function

N'oublie pas qu'il existe des tables (voir mon site) avec toutes les
communes de france et leur code postal ce qui évite ce genre de
manipulation.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"C15" <Mé a écrit dans le message de
news:40a1c5e7$0$314$
Bonjour à tous et toutes,

J'ai un table T Clients dans laquelle j'ai une liste déroulante (NomVille)
pour sélectionner une ville existant dans une table T Villes.
Le CP est directement mis à jour par le code :
Me.CP=Me.NomVille.Column(1)

Si la ville à saisir n'existe pas dans la ComboList, j'ai mis en place une
procédure sur double clic permettant d'ouvrir un formulaire basé sur la T
Villes pour saisir le nom de la nouvelle ville et son CP.
Après la saisie, grâce à un bouton sur le F Villes, je reviens dans le
formulaire principal et actualise la Combo, où apparait alors la nouvelle
ville qu'il faut ensuite sélectionner, le CP s'actualisant
automatiquement.


Cette procédure "aller retour" entre les 2 formulaires est réalisée par un
groupe de macros dont le code converti est le suivant :


'------------------------------------------------------------




' M_nouvelle_ville_saisir_ville
'
'------------------------------------------------------------
Function M_nouvelle_ville_saisir_ville()
On Error GoTo M_nouvelle_ville_saisir_ville_Err

DoCmd.OpenForm "F villes", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acForm, "F villes", acNewRec
DoCmd.Save acForm, "F villes"


M_nouvelle_ville_saisir_ville_Exit:
Exit Function

M_nouvelle_ville_saisir_ville_Err:
MsgBox Error$
Resume M_nouvelle_ville_saisir_ville_Exit

End Function


'------------------------------------------------------------
' M_nouvelle_ville_actualiser
'
'------------------------------------------------------------
Function M_nouvelle_ville_actualiser()
On Error GoTo M_nouvelle_ville_actualiser_Err

DoCmd.Close acForm, "F villes"
DoCmd.SelectObject acForm, "F tous clients", False
DoCmd.GoToControl "NomVille"
DoCmd.Requery "NomVille"


M_nouvelle_ville_actualiser_Exit:
Exit Function

M_nouvelle_ville_actualiser_Err:
MsgBox Error$
Resume M_nouvelle_ville_actualiser_Exit

End Function





Comment pourrait-on aller un peu plus loin dans cette procédure pour que
la

ville nouvellement saisie soit automatiquement sélectionnée dans la liste
déroulante ?

Merci de votre aide.

A+

C15









Avatar
C15
Bonsoir Raymond,

Merci de ta réponse.
Cependant 2 remarques:
1 La fonction à mettre dans le formulaire F Villes, après la saisie de la
nouvelle ville ne marche pas.
Elle inscrit "nouvelle ville" dans la liste déroulante du F tous clients
et, si la nouvelle ville a bien été ajoutée dans la T villes, elle
n'apparait pas dans la Combo.

2 Ta base Villes/Cp est très intéressante et j'ai rajoutée toutes ces
villes françaises à ma T villes.
Cependant la procédure que je cherche à mettre en place est toujours
nécessaire car j'ai des "clients" étrangers.

Merci encore de ta coopération.

C15



"Raymond [mvp]" a écrit dans le message de
news:uEuIWP$
Bonjour.

tu peux faire comme indiqué ci-dessous:
j'ai volontairemenrt enlevé la gestion des erreurs pour simplifier et
aider

à la compréhension. ce qu'il faut c'est ouvrir ton formulaire de saisie
des

communes en add pour éviter de se positionner sur un nouvel enregistrement
et en acdialog pour attendre le retour.

' dans le formulaire de saisie du client "F tous clients"
'-----------------------------------------
Function M_nouvelle_ville_saisir_ville()
' mettre en dialogue pour pouvoir tester le retour
DoCmd.OpenForm "F villes", , , , acFormAdd, acDialog
Me.NomVille.SetFocus
Me.NomVille.Dropdown
Exit Function
End Function

'--------------------------------------------
' dans le formulaire de saisie de la commune "F villes"
'--------------------------------------------
Function M_nouvelle_ville_actualiser()
Forms("F tous clients")("NomVille").Requery
Forms("F tous clients")("NomVille") = "nouvellevaleur"
DoCmd.Close acForm, Me.Name
End Function

N'oublie pas qu'il existe des tables (voir mon site) avec toutes les
communes de france et leur code postal ce qui évite ce genre de
manipulation.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"C15" <Mé a écrit dans le message de
news:40a1c5e7$0$314$
Bonjour à tous et toutes,

J'ai un table T Clients dans laquelle j'ai une liste déroulante
(NomVille)


pour sélectionner une ville existant dans une table T Villes.
Le CP est directement mis à jour par le code :
Me.CP=Me.NomVille.Column(1)

Si la ville à saisir n'existe pas dans la ComboList, j'ai mis en place
une


procédure sur double clic permettant d'ouvrir un formulaire basé sur la
T


Villes pour saisir le nom de la nouvelle ville et son CP.
Après la saisie, grâce à un bouton sur le F Villes, je reviens dans le
formulaire principal et actualise la Combo, où apparait alors la
nouvelle


ville qu'il faut ensuite sélectionner, le CP s'actualisant
automatiquement.


Cette procédure "aller retour" entre les 2 formulaires est réalisée par
un


groupe de macros dont le code converti est le suivant :


'------------------------------------------------------------




' M_nouvelle_ville_saisir_ville
'
'------------------------------------------------------------
Function M_nouvelle_ville_saisir_ville()
On Error GoTo M_nouvelle_ville_saisir_ville_Err

DoCmd.OpenForm "F villes", acNormal, "", "", acEdit, acNormal
DoCmd.GoToRecord acForm, "F villes", acNewRec
DoCmd.Save acForm, "F villes"


M_nouvelle_ville_saisir_ville_Exit:
Exit Function

M_nouvelle_ville_saisir_ville_Err:
MsgBox Error$
Resume M_nouvelle_ville_saisir_ville_Exit

End Function


'------------------------------------------------------------
' M_nouvelle_ville_actualiser
'
'------------------------------------------------------------
Function M_nouvelle_ville_actualiser()
On Error GoTo M_nouvelle_ville_actualiser_Err

DoCmd.Close acForm, "F villes"
DoCmd.SelectObject acForm, "F tous clients", False
DoCmd.GoToControl "NomVille"
DoCmd.Requery "NomVille"


M_nouvelle_ville_actualiser_Exit:
Exit Function

M_nouvelle_ville_actualiser_Err:
MsgBox Error$
Resume M_nouvelle_ville_actualiser_Exit

End Function





Comment pourrait-on aller un peu plus loin dans cette procédure pour que
la

ville nouvellement saisie soit automatiquement sélectionnée dans la
liste


déroulante ?

Merci de votre aide.

A+

C15













Avatar
Raymond [mvp]
il y a de quoi se perdre avec tous les noms qui se ressemblent dans ton
appli.
si tu veux tu peux me passer ta base par mail en zip obligatoire en enlevant
XYZ. dans l'adresse et je n'aurais pas le problème de mélange de noms.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"C15" <Mé a écrit dans le message de
news:40a27d83$0$306$
Bonsoir Raymond,

Merci de ta réponse.
Cependant 2 remarques:
1 La fonction à mettre dans le formulaire F Villes, après la saisie de
la

nouvelle ville ne marche pas.
Elle inscrit "nouvelle ville" dans la liste déroulante du F tous
clients

et, si la nouvelle ville a bien été ajoutée dans la T villes, elle
n'apparait pas dans la Combo.

2 Ta base Villes/Cp est très intéressante et j'ai rajoutée toutes ces
villes françaises à ma T villes.
Cependant la procédure que je cherche à mettre en place est toujours
nécessaire car j'ai des "clients" étrangers.

Merci encore de ta coopération.

C15