[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes Access des débutants - Problèmes Access des débutants


actif  Sujet n° 383  Zone de liste déroulante & actualisation

le 22/07/2010 : 21:52
par Polux

Anonyme

visiteur

Bonsoir Pierre,

J'ai un formulaire qui à 4 zones de listes déroulantes pour rechercher des enregistrement spécifiques dans un formulaire.

Depuis peux grâce à tes précieux conseils sur le Forum - Problèmes liés aux codes du site - Sujet n°362 j'ai rajouté deux champs:

  1. Utilisateur
  2. DateMiseAjour

A l'aide du code:

Code :
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.DateMiseAjour = Date
Me.Utilisateur = CurrentUser
End Sub

Ce qui me permet un contrôle sur la date et l'utilisateur qui a mis les données à jour.  l

Ce code est placé sur les propriété du formulaire "Avant Maj" et depuis j'ai régulièrement le message du style:

Code :
Erreur d'exécution'-2147352567 (80020009)'
Update ou CancelUpdate effectué sans appeler AddNew ni Edit.

lors de l'utilisation de mes liste déroulantes.

 Je suppose qu'il ne s'agit que d'une manipulation d'actualisation des données mais où et comment ?... y

Ci-dessous le style de code que j'ai pour mes 4 listes sur après MAJ:

Code :
Private Sub Modifiable11_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[N° CLIENT] = " & Str(Nz(Me![Modifiable11], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Merci d'avance et bonne soirée ! k
Ecrire à Polux   Poster une réponse  Haut

[]   

DébutPrécédent [ 1 2 ] SuivantFin
Réponse n° 1
--------
le 22/07/2010 : 22:23
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation :

Ce code est placé sur les propriété du formulaire "Avant Maj"

 
Et si tu places cela dans l'événement "Après mise à jour" ?  l

PS: Pour la mise à jour des listes, tu places le requrey "Sur entrée" de la liste.
 
Code :
Private Sub lstNomClient_Enter()
lstNomClient.Requery
End Sub
 
Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 2
--------
le 23/07/2010 : 07:43
par Polux

Anonyme

visiteur

Bonjour Pierre,

Voilà j'ai probablement dû faire une bêtise supplémentaire car après modification sur le formulaire lorsque je vais sur le sélecteur d'enregistrement et que j'essaye de passer au suivant mes deux champs "utilisateur" & "DateMiseAjour sont actualisé mais je reste bloqué sur l'enregistrement et n'arrive plus à passer au suivant ?.....

J'ai donc maintenant en propriétés du formulaire sur après MAJ:

Code :
Private Sub Form_AfterUpdate()
Me.Utilisateur = CurrentUser
Me.test = Now
End Sub

Et sur les 4 listes j'ai placé le code du style:

Code :
Private Sub Modifiable11_Enter()
Modifiable11.Requery
End Sub
Ou est le hic ?..... Encore merci d'avance !!!
Ecrire à Polux   Poster une réponse  Haut
Réponse n° 3
--------
le 23/07/2010 : 18:38
par 3Stone

Anonyme

Administrateur

Bonjour,

Oublie les listes maintenant, il n'y a pas de problème si elles se mettent bien à jour...

Pour le code, le problème est différent:
 
Code :
Private Sub Form_AfterUpdate()
Me.Utilisateur = CurrentUser
Me.test = Now
End Sub
 
En fait, il faut d'abord choisir ce que tu veux sauvegarder:
  • Uniquement celui qui crée l'enregistrement
  • Chacun qui crée ou modifie un enregistrement
Quant au blocage, tu dois avoir un autre code qui traîne dans ce formulaire, non?
Car le code présenté ici ne peut pas bloquer le formulaire...

Cordialement,
Pierre(3stone)

  Poster une réponse  Haut
Réponse n° 4
--------
le 23/07/2010 : 23:32
par Polux

Anonyme

visiteur

Bonsoir Pierre,

Citation : Pierre

Oublie les listes maintenant, il n'y a pas de problème si elles se mettent bien à jour...

Ok, j'ai résolu provisoirement le problème car il y a pas mal de code dans les propriété de ce formulaires et pour simplifier j'ai provisoirment tout effacé !

Il ne me reste plus que:

Code :
Private Sub Form_AfterUpdate()
Me.Utilisateur = CurrentUser
Me.test = Now
End Sub
Et le bloquage est malheureusement toujours présent...? y Dès que j'encode une donnée dans un champ et que j'essaye de passer à l'enregistement suivant à l'aide du sélecteur d'enregistrement, le click a pour effet de compléter les donnée de mon champ test & Utilisateur. Si je re-click pour essayer de passer au suivant rien n'y fait... Par-contre si je presse la touche "Esc" et re-click sur le sélecteur je passe à l'enregistrement suivant. J'ai déplacé ce même code sur BeforeUpdate et là tout fonctionne parfaitement ! sinon pour:  
Citation : Pierre

En fait, il faut d'abord choisir ce que tu veux sauvegarder:
Uniquement celui qui crée l'enregistrement
Chacun qui crée ou modifie un enregistrement

Dans un 1er temp je rejoins la deuxième proposition à savoir le dernier utilisateur qui a créer ou modifier l'enregistrement avec la date de cette modification.

Et dans un second temp j'aurais bien voulu avoir uniquement une date dans un autre champ à laquelle l'enregistrement a été créer pour la 1ère fois.

Merci d'avance !

Ecrire à Polux   Poster une réponse  Haut
Réponse n° 5
--------
le 25/07/2010 : 01:51
par 3Stone

Anonyme

Administrateur

Salut,

Pas facile de suivre tout cela k

Pour le code, modifie le ainsi, pour voir...

 
Code :
Private Sub Form_AfterUpdate()
Me.Utilisateur = CurrentUser
Me.test = Now
Me.Dirty = False
End Sub
 
Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 6
--------
le 25/07/2010 : 11:41
par Polux

Anonyme

visiteur

Bonjour Pierre,

Avec ce code là après modifictaion des donnée d'un enregistrement lorsque j'essaie de passer au suivant j'ai le message suivant:

Erreur d'exécution:2115. La macro ou la fonction attribuée à la propriété 'Avant Maj' ou 'Valide si' pour ce champ empêche ms-access d'enregistrer les données dans le champ.

Merci beaucoup !

Ecrire à Polux   Poster une réponse  Haut
Réponse n° 7
--------
le 25/07/2010 : 14:48
par 3Stone

Anonyme

Administrateur

Citation :

La macro ou la fonction attribuée à la propriété 'Avant Maj' ou 'Valide si' pour ce champ empêche ms-access d'enregistrer les données dans le champ.

 
Et, qu'est ce que tu as sur "Avant lise à jour" ou le "Valide si" ??

Le problème vient définitivement du fait que tu as du code douteux dans tous les coins et qu'il est difficile de savoir ce qui interfère.

Le "Me.Dirty = False" ne fait que sauver l'enregistrement. Cela ne devrait pas créer de problème puisque tu es sur l'après mise à jour du formulaire.

Je suis très (trop) occupé pour le moment, sinon je dirais bien de m'envoyer le monstre pour que je lui tâte le pouls y

Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 8
--------
le 25/07/2010 : 15:58
par Polux

Anonyme

visiteur

Bonjour Pierre,

Je souhaite t'informer que pour moi il n'y acune urgence à trouver la solution à ce problème mais que malgré tout cela me ferait plaisir de pouvoir utiliser ce code qui avait fait l'objet d'une longue discussion sur Forum - Problèmes liés aux codes du site - Sujet n°362. Sans qui tout celà ne sera pas perdu puisque cela m'aura quand même permis de m'instruire d'avantage et apprendre qu'il y avait des mots réservés à Access à n'utiliser en aucuns cas du style "Date". n

Soit, j'ai créer une nouvelle base avec comme table:

N° du type NuméroAuto / Utilisateur / DateMaj / Encodage

Puis j'ai créer un formulaire sur base de cette table et en propriétés de formulaires j'ai ajouté le code:

Code :
Private Sub Form_AfterUpdate()
Me.Utilisateur = CurrentUser
Me.DateMaj = Date
Me.Dirty = False
End Sub

Et le problème persiste avec le même message:

Erreur d'exécution:2115. La macro ou la fonction attribuée à la propriété 'Avant Maj' ou 'Valide si' pour ce champ empêche ms-access d'enregistrer les données dans le champ.

Alors que ici, je suis certain de ne plus avoir de code douteux qui puisse interférer....k

Quoi qu'il advienne, je te remercie pour ton professionnalisme à trouver des solutions provenant de tous les internautes s'intéressant de près ou de loin à access ainsi que toute ta patience et ton courage !

Peut-être d'autres visiteurs pourrons m'apporter la solution ou que peut-être tu auras un autre forum aussi performant que le tiens à me proposer ?.... Bien que je doute....l (J'ai déjà cherché et reviens toujours ICI k)

Je te souhaite une excellente fin de week-end ainsi qu'une agréable semaine ! l

Ecrire à Polux   Poster une réponse  Haut
DébutPrécédent [ 1 2 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut