Problemes enregistrement structure lors d'un ajout de valeur dans un menu deroulant
2 réponses
cothonx
Bonjour,
J'utilise cette procedure (ci-apres) donn=E9e en son temps par Mr.
Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le
formulaire, la liste se met bien =E0 jour et l'on peut selectionner la
valeur que l'on vient d'ajouter dans la liste deroulante.
Mais si je ferme et r=E9-ouvre le formulaire les valeurs ajout=E9es
precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des
ajout de valeurs sans utiliser une table li=E9e
Merci pour votre aide
C@th@nx
Code source
----------------------------------------------------------------------------=
----------------------------------------------------------------------------=
----
Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As
Integer)
If AjoutValeur(NouvelleValeur) Then
Suite =3D acDataErrAdded
Else
Suite =3D acDataErrContinue
End If
End Sub
Private Function AjoutValeur(NouvelleValeur As String) As Boolean
On Error Resume Next
AjoutValeur =3D False
If Me.ActiveControl.RowSourceType <> "Value List" Then
Exit Function
End If
If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf &
_
"Voulez-vous l'ajouter ?", vbYesNo, NouvelleValeur & ":
Valeur
inconnue") _
=3D vbYes Then
Me.ActiveControl.RowSource =3D Me.ActiveControl.RowSource & ";"
_
& NouvelleValeur
AjoutValeur =3D True
Else
Me.ActiveControl.Undo
End If
End Function
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien
Bonjour,
J'utilise cette procedure (ci-apres) donnée en son temps par Mr. Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le formulaire, la liste se met bien à jour et l'on peut selectionner la valeur que l'on vient d'ajouter dans la liste deroulante. Mais si je ferme et ré-ouvre le formulaire les valeurs ajoutées precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des ajout de valeurs sans utiliser une table liée
Merci pour votre aide
@nx
Code source ------------------------------------------------------------------------------------------------------------------------------------------------------------ Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As Integer) If AjoutValeur(NouvelleValeur) Then Suite = acDataErrAdded Else Suite = acDataErrContinue End If End Sub Private Function AjoutValeur(NouvelleValeur As String) As Boolean On Error Resume Next AjoutValeur = False If Me.ActiveControl.RowSourceType <> "Value List" Then Exit Function End If If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf & _ "Voulez-vous l'ajouter ?", vbYesNo, NouvelleValeur & ": Valeur inconnue") _ = vbYes Then Me.ActiveControl.RowSource = Me.ActiveControl.RowSource & ";" _ & NouvelleValeur AjoutValeur = True Else Me.ActiveControl.Undo End If End Function
Salut,
Si ta zone de liste est alimentée par une liste de valeurs et non par une requete, je pense qu'il te faut sauvegarder le formulaire lorsque tu le quitte. Docmd.Close acForm,,acSaveYes Sinon il faut enregistrer la nouvelle valeur dans la table qui contient les données de ta liste. Currentdb.execute "Insert [LaTable] ([LeChamp)) values ('" & LaNouvelleValeur & "';" 'Si Nouvelle valeur est alpha ou Currentdb.execute "Insert [LaTable] ([LeChamp)) values (" & LaNouvelleValeur & ";" 'Si Nouvelle valeur est numérique @+
Bonjour,
J'utilise cette procedure (ci-apres) donnée en son temps par Mr.
Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le
formulaire, la liste se met bien à jour et l'on peut selectionner la
valeur que l'on vient d'ajouter dans la liste deroulante.
Mais si je ferme et ré-ouvre le formulaire les valeurs ajoutées
precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des
ajout de valeurs sans utiliser une table liée
Merci pour votre aide
C@th@nx
Code source
------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As
Integer)
If AjoutValeur(NouvelleValeur) Then
Suite = acDataErrAdded
Else
Suite = acDataErrContinue
End If
End Sub
Private Function AjoutValeur(NouvelleValeur As String) As Boolean
On Error Resume Next
AjoutValeur = False
If Me.ActiveControl.RowSourceType <> "Value List" Then
Exit Function
End If
If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf &
_
"Voulez-vous l'ajouter ?", vbYesNo, NouvelleValeur & ":
Valeur
inconnue") _
= vbYes Then
Me.ActiveControl.RowSource = Me.ActiveControl.RowSource & ";"
_
& NouvelleValeur
AjoutValeur = True
Else
Me.ActiveControl.Undo
End If
End Function
Salut,
Si ta zone de liste est alimentée par une liste de valeurs et non par
une requete, je pense qu'il te faut sauvegarder le formulaire lorsque tu
le quitte.
Docmd.Close acForm,,acSaveYes
Sinon il faut enregistrer la nouvelle valeur dans la table qui contient
les données de ta liste.
Currentdb.execute "Insert [LaTable] ([LeChamp)) values ('" &
LaNouvelleValeur & "';" 'Si Nouvelle valeur est alpha
ou
Currentdb.execute "Insert [LaTable] ([LeChamp)) values (" &
LaNouvelleValeur & ";" 'Si Nouvelle valeur est numérique
@+
J'utilise cette procedure (ci-apres) donnée en son temps par Mr. Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le formulaire, la liste se met bien à jour et l'on peut selectionner la valeur que l'on vient d'ajouter dans la liste deroulante. Mais si je ferme et ré-ouvre le formulaire les valeurs ajoutées precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des ajout de valeurs sans utiliser une table liée
Merci pour votre aide
@nx
Code source ------------------------------------------------------------------------------------------------------------------------------------------------------------ Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As Integer) If AjoutValeur(NouvelleValeur) Then Suite = acDataErrAdded Else Suite = acDataErrContinue End If End Sub Private Function AjoutValeur(NouvelleValeur As String) As Boolean On Error Resume Next AjoutValeur = False If Me.ActiveControl.RowSourceType <> "Value List" Then Exit Function End If If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf & _ "Voulez-vous l'ajouter ?", vbYesNo, NouvelleValeur & ": Valeur inconnue") _ = vbYes Then Me.ActiveControl.RowSource = Me.ActiveControl.RowSource & ";" _ & NouvelleValeur AjoutValeur = True Else Me.ActiveControl.Undo End If End Function
Salut,
Si ta zone de liste est alimentée par une liste de valeurs et non par une requete, je pense qu'il te faut sauvegarder le formulaire lorsque tu le quitte. Docmd.Close acForm,,acSaveYes Sinon il faut enregistrer la nouvelle valeur dans la table qui contient les données de ta liste. Currentdb.execute "Insert [LaTable] ([LeChamp)) values ('" & LaNouvelleValeur & "';" 'Si Nouvelle valeur est alpha ou Currentdb.execute "Insert [LaTable] ([LeChamp)) values (" & LaNouvelleValeur & ";" 'Si Nouvelle valeur est numérique @+
cothonx
On 14 mai, 08:24, Fabien wrote:
Bonjour,
J'utilise cette procedure (ci-apres) donnée en son temps par Mr. Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le formulaire, la liste se met bien à jour et l'on peut selectionner la valeur que l'on vient d'ajouter dans la liste deroulante. Mais si je ferme et ré-ouvre le formulaire les valeurs ajoutées precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des ajout de valeurs sans utiliser une table liée
Merci pour votre aide
@nx
Code source ------------------------------------------------------------------------ ------------------------------------------------------------------------- ----------- Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As Integer) If AjoutValeur(NouvelleValeur) Then Suite = acDataErrAdded Else Suite = acDataErrContinue End If End Sub Private Function AjoutValeur(NouvelleValeur As String) As Boolean On Error Resume Next AjoutValeur = False If Me.ActiveControl.RowSourceType <> "Value List" Then Exit Function End If If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf & _ "Voulez-vous l'ajouter ?", vbYesNo, Nouvelle Valeur & ": Valeur inconnue") _ = vbYes Then Me.ActiveControl.RowSource = Me.ActiveControl.RowSourc e & ";" _ & NouvelleValeur AjoutValeur = True Else Me.ActiveControl.Undo End If End Function
Salut, Si ta zone de liste est alimentée par une liste de valeurs et non par une requete, je pense qu'il te faut sauvegarder le formulaire lorsque tu le quitte. Docmd.Close acForm,,acSaveYes Sinon il faut enregistrer la nouvelle valeur dans la table qui contient les données de ta liste. Currentdb.execute "Insert [LaTable] ([LeChamp)) values ('" & LaNouvelleValeur & "';" 'Si Nouvelle valeur est alpha ou Currentdb.execute "Insert [LaTable] ([LeChamp)) values (" & LaNouvelleValeur & ";" 'Si Nouvelle valeur est numérique @+- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci pour votre reponse
C'est une liste de valeur et j'ai essaye la technique d'enregistrer le formulaire mais sans succes.> Docmd.Close acForm,,acSaveYes Il prend en compte le changement tant que le formulaire est ouvert mais des que je le ferme,et que j'enregistre le formulaire, les données ajoutées dans le "RowSource" n'apparaissent plus la fois suivante quand le formulaire s'ouvre. C'est assez troublant car il faudrait que j'arrive a enregistrer la nouvelle structure du formulaire mais je pense que l'enregistrement ne marche pas tant que le formulaire est actif, donc on se mord la queue.
Dois-je enregistrer les datas dans une variable public et faire les modifs en mode creation, puis enregistrer ? Je ne connais pas la procedure
Merci pour vore aide
@nx
On 14 mai, 08:24, Fabien <UrbaniakFabienx...@Neuf.fr> wrote:
Bonjour,
J'utilise cette procedure (ci-apres) donnée en son temps par Mr.
Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le
formulaire, la liste se met bien à jour et l'on peut selectionner la
valeur que l'on vient d'ajouter dans la liste deroulante.
Mais si je ferme et ré-ouvre le formulaire les valeurs ajoutées
precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des
ajout de valeurs sans utiliser une table liée
Merci pour votre aide
C@th@nx
Code source
------------------------------------------------------------------------ ------------------------------------------------------------------------- -----------
Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As
Integer)
If AjoutValeur(NouvelleValeur) Then
Suite = acDataErrAdded
Else
Suite = acDataErrContinue
End If
End Sub
Private Function AjoutValeur(NouvelleValeur As String) As Boolean
On Error Resume Next
AjoutValeur = False
If Me.ActiveControl.RowSourceType <> "Value List" Then
Exit Function
End If
If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf &
_
"Voulez-vous l'ajouter ?", vbYesNo, Nouvelle Valeur & ":
Valeur
inconnue") _
= vbYes Then
Me.ActiveControl.RowSource = Me.ActiveControl.RowSourc e & ";"
_
& NouvelleValeur
AjoutValeur = True
Else
Me.ActiveControl.Undo
End If
End Function
Salut,
Si ta zone de liste est alimentée par une liste de valeurs et non par
une requete, je pense qu'il te faut sauvegarder le formulaire lorsque tu
le quitte.
Docmd.Close acForm,,acSaveYes
Sinon il faut enregistrer la nouvelle valeur dans la table qui contient
les données de ta liste.
Currentdb.execute "Insert [LaTable] ([LeChamp)) values ('" &
LaNouvelleValeur & "';" 'Si Nouvelle valeur est alpha
ou
Currentdb.execute "Insert [LaTable] ([LeChamp)) values (" &
LaNouvelleValeur & ";" 'Si Nouvelle valeur est numérique
@+- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci pour votre reponse
C'est une liste de valeur et j'ai essaye la technique d'enregistrer le
formulaire mais sans succes.> Docmd.Close acForm,,acSaveYes
Il prend en compte le changement tant que le formulaire est ouvert
mais des que je le ferme,et que j'enregistre le formulaire,
les données ajoutées dans le "RowSource" n'apparaissent plus la fois
suivante quand le formulaire s'ouvre.
C'est assez troublant car il faudrait que j'arrive a enregistrer la
nouvelle structure du formulaire mais je pense que l'enregistrement ne
marche pas
tant que le formulaire est actif, donc on se mord la queue.
Dois-je enregistrer les datas dans une variable public et faire les
modifs en mode creation, puis enregistrer ?
Je ne connais pas la procedure
J'utilise cette procedure (ci-apres) donnée en son temps par Mr. Raymond :-)
Probleme : cela marche tres bien tant que l'on reste dans le formulaire, la liste se met bien à jour et l'on peut selectionner la valeur que l'on vient d'ajouter dans la liste deroulante. Mais si je ferme et ré-ouvre le formulaire les valeurs ajoutées precedement n'apparaisse plus
Quelqu'un peut m'aider ou m'indiquer une autre maniere de faire des ajout de valeurs sans utiliser une table liée
Merci pour votre aide
@nx
Code source ------------------------------------------------------------------------ ------------------------------------------------------------------------- ----------- Private Sub Liste0_NotInList(NouvelleValeur As String, Suite As Integer) If AjoutValeur(NouvelleValeur) Then Suite = acDataErrAdded Else Suite = acDataErrContinue End If End Sub Private Function AjoutValeur(NouvelleValeur As String) As Boolean On Error Resume Next AjoutValeur = False If Me.ActiveControl.RowSourceType <> "Value List" Then Exit Function End If If MsgBox("Cette valeur ne figure pas dans la liste." & vbCrLf & _ "Voulez-vous l'ajouter ?", vbYesNo, Nouvelle Valeur & ": Valeur inconnue") _ = vbYes Then Me.ActiveControl.RowSource = Me.ActiveControl.RowSourc e & ";" _ & NouvelleValeur AjoutValeur = True Else Me.ActiveControl.Undo End If End Function
Salut, Si ta zone de liste est alimentée par une liste de valeurs et non par une requete, je pense qu'il te faut sauvegarder le formulaire lorsque tu le quitte. Docmd.Close acForm,,acSaveYes Sinon il faut enregistrer la nouvelle valeur dans la table qui contient les données de ta liste. Currentdb.execute "Insert [LaTable] ([LeChamp)) values ('" & LaNouvelleValeur & "';" 'Si Nouvelle valeur est alpha ou Currentdb.execute "Insert [LaTable] ([LeChamp)) values (" & LaNouvelleValeur & ";" 'Si Nouvelle valeur est numérique @+- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci pour votre reponse
C'est une liste de valeur et j'ai essaye la technique d'enregistrer le formulaire mais sans succes.> Docmd.Close acForm,,acSaveYes Il prend en compte le changement tant que le formulaire est ouvert mais des que je le ferme,et que j'enregistre le formulaire, les données ajoutées dans le "RowSource" n'apparaissent plus la fois suivante quand le formulaire s'ouvre. C'est assez troublant car il faudrait que j'arrive a enregistrer la nouvelle structure du formulaire mais je pense que l'enregistrement ne marche pas tant que le formulaire est actif, donc on se mord la queue.
Dois-je enregistrer les datas dans une variable public et faire les modifs en mode creation, puis enregistrer ? Je ne connais pas la procedure