Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème ajout avec NotInList dans une zone de liste modifiable

4 réponses
Avatar
Jean-Marc
Salut à toutes et à tous,

Je sais qu'il y a de la littérature sur le sujet, mais je n'ai toujours pas
trouvé la réponse à ma question. Sans doute une mauvaise recherche, aussi
une redirection ferait mon affaire si vous n'avez pas le temps de m'explique
la solution.

Voici les données connues (Le problème est expliqué plus bas) :
Un formulaire reprend des points qui sont dans la table PP.
Dans le formulaire, un sous formulaire lié à une table intermédiaire pour
faire un lien un a plusieurs avec une table de Secteurs (parce que
différents points peuvent être dans un secteur, mais aussi un point peut se
retrouver dans plusieurs secteurs, s'il est à la frontière de ces secteurs).
Pour choisir un point, j'ai une zone de liste modifiable dont :
source de contrôle : vide
Nom : NrPP
Origine source : Table/Requête
Contenu : SELECT [PP].[NrPoint] FROM PP;
Valeur par défaut : [NrPoint]
Limité à liste : Oui
Après MAJ :
Private Sub NrPP_AfterUpdate()
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[NrPoint] = " & Str(Me![NrPP])
Me.Bookmark = rs.Bookmark
End Sub
Sur absence dans liste :
Private Sub NrPP_NotInList(NewData As String, Response As Integer)
If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des PP ?",
_
vbYesNo + vbQuestion + vbDefaultButton2, "Ajout")
= vbYes Then
DoCmd.RunSQL "INSERT INTO PP ( NrPoint ) SELECT """ & NewData &
""";"
Response = acDataErrAdded
Else
Response = acDataErrContinue
NrPP.Undo
End If
End Sub

Le problème, ou plutôt leS problèmeS (toujours lors de l'ajout d'un nouveau
point, donc NotInList) :
1. Lorsque je met un numéro de point qui n'existe pas encore, je reçois bien
mon message demandant si je veux l'ajouter. Si je cliques sur oui, je reçois
un nouveau message me disant
"Vous allez ajouter 1 ligne(s).
Dès que vous aurez cliqué sur oui, il ne vous sera pas possible d'utiliser
la commande Annuler pour supprimer les modifications.
Êtes-vous sûr de vouloir ajouter les lignes sélectionnées ?"
Je voudrais supprimer l'affichage de ce message.

2. Lorsque j'ajoute un point et que j'ai cliqué sur oui pour les 2 messages,
le point est effectivement créé, mais je suis sur le premier enregistrement
(dixit "boutons de déplacement"). Si je me déplace dans les points avec la
zone de liste modifiable, les déplacements sont corrects sauf pour le
nouveau point qui retourne toujours au premier enregistrement. A risque de
me répéter, mais je veux être clair, si le 1er point est le point 10, que je
suis sur le 25 et que je crée le 44. Quand je cliquerai sur 44, la liste
affichera 44 mais je serai sur le premier enregistrement. Si je choisi 10,
je suis sur le premier enregistrement aussi (ce qui est correct). Le nouveau
point (44) ne prendra sa place dans la liste qu'une fois le formulaire fermé
et réouvert.

Comment puis-je régler ça ?

Merci de vos z'avis z'avisés,
Jean-Marc

4 réponses

Avatar
3stone
Salut,

"Jean-Marc"

[...]
| Sur absence dans liste :
| Private Sub NrPP_NotInList(NewData As String, Response As Integer)
| If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des PP ?",
| _
| vbYesNo + vbQuestion + vbDefaultButton2, "Ajout")
| = vbYes Then
| DoCmd.RunSQL "INSERT INTO PP ( NrPoint ) SELECT """ & NewData & """;"


remplace par :

CurrentDb.Execute "INSERT INTO PP ( NrPoint ) SELECT """ & NewData & """;"



| Response = acDataErrAdded
| Else
| Response = acDataErrContinue
| NrPP.Undo
| End If
| End Sub
|
|
| 2. Lorsque j'ajoute un point et que j'ai cliqué sur oui pour les 2 messages,
| le point est effectivement créé, mais je suis sur le premier enregistrement
| (dixit "boutons de déplacement"). Si je me déplace dans les points avec la
| zone de liste modifiable, les déplacements sont corrects sauf pour le
| nouveau point qui retourne toujours au premier enregistrement. A risque de
| me répéter, mais je veux être clair, si le 1er point est le point 10, que je
| suis sur le 25 et que je crée le 44. Quand je cliquerai sur 44, la liste
| affichera 44 mais je serai sur le premier enregistrement. Si je choisi 10,
| je suis sur le premier enregistrement aussi (ce qui est correct). Le nouveau
| point (44) ne prendra sa place dans la liste qu'une fois le formulaire fermé
| et réouvert.
|
| Comment puis-je régler ça ?


Faire un Me.Requery après l'insertion...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Jean-Marc
Bonjour Pierre,

J'ai repris le code qui est sur ton site (dont tu m'avais donné l'adresse
dans un autre post il y a qq jours).
Le problème du message m'avertissant qu'un enregistrement va être ajouté est
résolu par ton code, mais le problème qui fait que j'ai 2 points sur
l'enregistrement 1 (dans les boutons de déplacement d'enregistrement)
persiste et je ne peux pas mettre de Me.Requery parce que si j'en mets un,
il boucle le message de demande si je veux ajouter la valeur (je ne sais pas
si il boucle juste le message ou toute la procédure).

Je voulais joindre la bdd test car elle ne pèse pas lourd (un zip de 39Kb)
et qu'il est souvent plus facile de voir directement que de se faire
explique un pbl, mais il semblerait que les pièces jointes soient bloquées
sur le forum.

Merci,
Jean-Marc

"3stone" a écrit dans le message de news:

Salut,

"Jean-Marc"

[...]
| Sur absence dans liste :
| Private Sub NrPP_NotInList(NewData As String, Response As Integer)
| If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des PP
?",
| _
| vbYesNo + vbQuestion + vbDefaultButton2,
"Ajout")
| = vbYes Then
| DoCmd.RunSQL "INSERT INTO PP ( NrPoint ) SELECT """ & NewData
& """;"


remplace par :

CurrentDb.Execute "INSERT INTO PP ( NrPoint ) SELECT """ & NewData
& """;"



| Response = acDataErrAdded
| Else
| Response = acDataErrContinue
| NrPP.Undo
| End If
| End Sub
|
|
| 2. Lorsque j'ajoute un point et que j'ai cliqué sur oui pour les 2
messages,
| le point est effectivement créé, mais je suis sur le premier
enregistrement
| (dixit "boutons de déplacement"). Si je me déplace dans les points avec
la
| zone de liste modifiable, les déplacements sont corrects sauf pour le
| nouveau point qui retourne toujours au premier enregistrement. A risque
de
| me répéter, mais je veux être clair, si le 1er point est le point 10,
que je
| suis sur le 25 et que je crée le 44. Quand je cliquerai sur 44, la liste
| affichera 44 mais je serai sur le premier enregistrement. Si je choisi
10,
| je suis sur le premier enregistrement aussi (ce qui est correct). Le
nouveau
| point (44) ne prendra sa place dans la liste qu'une fois le formulaire
fermé
| et réouvert.
|
| Comment puis-je régler ça ?


Faire un Me.Requery après l'insertion...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
3stone
Salut,

"Jean-Marc"
[...]
| Je voulais joindre la bdd test car elle ne pèse pas lourd (un zip de 39Kb)
| et qu'il est souvent plus facile de voir directement que de se faire
| explique un pbl, mais il semblerait que les pièces jointes soient bloquées
| sur le forum.

On ne joint pas de fichier sur les forum... (sauf les groupes son et lumières ;-)


Si tu avais été lire nos conseils comme souvent répété ici, tu aurais
pris connaissance de ceci :
http://www.mpfa.info/articles.php?lng=fr&pg=3


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Jean-Marc
Salut Pierre,

En effet, je ne connaissais pas cette page. Je me souviens que tu m'avais
déjà bien aidé il y a +/- 2 ans et je sais que j'avais dû t'envoyer la bdd,
mais sans doute était-ce par email.
J'ai donc mis la bdd à l'adresse suivante : http://cjoint.com/?gnvUyoxWhg

J'ai plusieurs questions mais je pense qu'il serait mieux de les traiter une
par une dans le but de la simplicité de lecture sur le forum, et pour ne pas
écœurer les bonnes âmes qui ont la bonne volonté de m'aider.

Merci,
Jean-Marc


"3stone" a écrit dans le message de news:

Salut,

"Jean-Marc"
[...]
| Je voulais joindre la bdd test car elle ne pèse pas lourd (un zip de
39Kb)
| et qu'il est souvent plus facile de voir directement que de se faire
| explique un pbl, mais il semblerait que les pièces jointes soient
bloquées
| sur le forum.

On ne joint pas de fichier sur les forum... (sauf les groupes son et
lumières ;-)


Si tu avais été lire nos conseils comme souvent répété ici, tu aurais
pris connaissance de ceci :
http://www.mpfa.info/articles.php?lng=fr&pg=3


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/