OVH Cloud OVH Cloud

absence dans la liste, vba

2 réponses
Avatar
Francoise B
Bonjour

J'ai dans mon formulaire "F_Fiche_Inventaire" qui est bas=E9=20
sur ma table "T_Fiche_Inventaire" une liste d=E9roulante=20
nomm=E9e "Domaine" dont sa source contr=F4le est=20
aussi "Domaine". J'aimerais que l'utilisateur puisse=20
ajouter un =E9l=E9ment =E0 cette liste si elle n'y figure pas.

J'ai mis l'=E9v=E9nement suivant sur absence dans la liste:

Private Sub Domaine_NotInList(NewData As String, Response=20
As Integer)
Dim rst As DAO.Recordset

If MsgBox("L'=E9l=E9ment [" & _
NewData & "] ne figure pas dans la liste. Voulez-vous=20
l'ajouter ?", _
vbQuestion + vbYesNo) =3D vbYes Then
' Ajouter l'=E9l=E9ment =E0 la liste
Set rst =3D CurrentDb.OpenRecordset
("T_Fiche_Inventaire")
rst.AddNew
rst!Domaine =3D NewData
rst.Update
rst.Close
Set rst =3D Nothing
End If

' Annuler le message d'erreur d'Access
Response =3D acDataErrAdded
End Sub

J'ai alors un message qui me propose de l'ajouter =E0 la=20
liste, mais un autre apparait apr=E8s me disant: Le texte=20
n'est pas un =E9l=E9ment de la liste. S=E9lectionner un =E9l=E9ment=20
de la liste ou...

Ou est mon erreur?

Merci!

2 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

Tu dois mettre dans ton If la ligne
response = acDataErrAdded

ensuite tu dois aussi dire ce que tu veux faire si la personne répond
"non" donc tu dois rajouter un truc du style :

Else
Response = acDataErrContinue

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Francoise B" a écrit dans le message
news: 0fee01c437f1$001e2c80$
Bonjour

J'ai dans mon formulaire "F_Fiche_Inventaire" qui est basé
sur ma table "T_Fiche_Inventaire" une liste déroulante
nommée "Domaine" dont sa source contrôle est
aussi "Domaine". J'aimerais que l'utilisateur puisse
ajouter un élément à cette liste si elle n'y figure pas.

J'ai mis l'événement suivant sur absence dans la liste:

Private Sub Domaine_NotInList(NewData As String, Response
As Integer)
Dim rst As DAO.Recordset

If MsgBox("L'élément [" & _
NewData & "] ne figure pas dans la liste. Voulez-vous
l'ajouter ?", _
vbQuestion + vbYesNo) = vbYes Then
' Ajouter l'élément à la liste
Set rst = CurrentDb.OpenRecordset
("T_Fiche_Inventaire")
rst.AddNew
rst!Domaine = NewData
rst.Update
rst.Close
Set rst = Nothing
End If

' Annuler le message d'erreur d'Access
Response = acDataErrAdded
End Sub

J'ai alors un message qui me propose de l'ajouter à la
liste, mais un autre apparait après me disant: Le texte
n'est pas un élément de la liste. Sélectionner un élément
de la liste ou...

Ou est mon erreur?

Merci!
Avatar
Francoise B
Ma base de donnée n'a qu'une table. Est ce que le fait que
les données de la liste déroulante ne soit pas dans une
autre table gène? J'ai inscrit les valeurs dans contenu
directement.

FB


-----Message d'origine-----
Bonjour

Tu dois mettre dans ton If la ligne
response = acDataErrAdded

ensuite tu dois aussi dire ce que tu veux faire si la
personne répond

"non" donc tu dois rajouter un truc du style :

Else
Response = acDataErrContinue

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Francoise B" a
écrit dans le message

news: 0fee01c437f1$001e2c80$
Bonjour

J'ai dans mon formulaire "F_Fiche_Inventaire" qui est basé
sur ma table "T_Fiche_Inventaire" une liste déroulante
nommée "Domaine" dont sa source contrôle est
aussi "Domaine". J'aimerais que l'utilisateur puisse
ajouter un élément à cette liste si elle n'y figure pas.

J'ai mis l'événement suivant sur absence dans la liste:

Private Sub Domaine_NotInList(NewData As String, Response
As Integer)
Dim rst As DAO.Recordset

If MsgBox("L'élément [" & _
NewData & "] ne figure pas dans la liste. Voulez-vous
l'ajouter ?", _
vbQuestion + vbYesNo) = vbYes Then
' Ajouter l'élément à la liste
Set rst = CurrentDb.OpenRecordset
("T_Fiche_Inventaire")
rst.AddNew
rst!Domaine = NewData
rst.Update
rst.Close
Set rst = Nothing
End If

' Annuler le message d'erreur d'Access
Response = acDataErrAdded
End Sub

J'ai alors un message qui me propose de l'ajouter à la
liste, mais un autre apparait après me disant: Le texte
n'est pas un élément de la liste. Sélectionner un élément
de la liste ou...

Ou est mon erreur?

Merci!



.