[]
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° 9
--------
le 17/08/2010 : 00:20
par 3Stone

Anonyme

Administrateur

Bonjour,

Les champs Utilisateur et DateMaj font partie de la source du formulaire ?
Dans ce cas, tu places le code sur "avant mise à jour" du formulaire wink
 
Code :
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.Utilisateur = CurrentUser
Me.DateMaj = Date
End Sub
 
Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 10
--------
le 22/08/2010 : 19:53
par Polux

Anonyme

visiteur

Bonsoir Pierre et avant tout merci de m'accorder un peus de ton temps....

Voilà, si je pense que effectivement mes champs Utilisateur et DateMaj font partie de la source du formulaire puisqu'ils font partie de ma table client qui est en source du formulaire.

Si je place le code sur "avant mise à jour" du formulaire celui-ci répond correctement pour autant que je n'utilise pas mes menu déroulants pour changer d'enregistrement....

Si après modification d'un enregistrement j'essaye de passer à un autre enregistrement à l'aide d'un de mes 4 menus déroulant j'en reviens au point de départ comme sité comme problème dans l'énoncé de se sujet, à savoir un message d'erreur du type:

Citation : Alain

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

Je joins ci-dessous un détails de la totalité des codes de ce formulaire:

Mes 4 menus déroulants sont:

  1. Modifiable11
  2. Modifiable17
  3. Modifiable76
  4. Modifiable166
Code :
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.datemiseajour = Date
Me.Utilisateur = CurrentUser
End Sub
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
Private Sub Modifiable11_Enter()
Modifiable11.Requery
End Sub
Private Sub Modifiable166_Enter()
Modifiable166.Requery
End Sub
Private Sub Modifiable17_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[N° CLIENT] = " & Str(Nz(Me![Modifiable17], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub Modifiable17_Enter()
Modifiable17.Requery
End Sub
Private Sub Modifiable76_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[N° CLIENT] = " & Str(Nz(Me![Modifiable76], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub Modifiable166_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[N° CLIENT] = " & Str(Nz(Me![Modifiable166], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub Modifiable76_Enter()
Modifiable166.Requery
End Sub
Merci et bonne soirée !!!
Ecrire à Polux   Poster une réponse  Haut
Réponse n° 11
--------
le 24/08/2010 : 00:52
par 3Stone

Anonyme

Administrateur

Bonjour,

Pour mieux comprendre la construction, je te propose de faire usage de ceci.

Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 12
--------
le 24/08/2010 : 22:04
par 3Stone

Anonyme

Administrateur

Bonsoir,

Le fichier joint est... vide d

Si possible, zippe la base avant l'envoi et regarde la taille que fait le fichier.

Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 13
--------
le 25/08/2010 : 13:37
par 3Stone

Anonyme

Administrateur

Bonjour,

Ok, bien recu.

Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 14
--------
le 25/08/2010 : 14:34
par 3Stone

Anonyme

Administrateur

Bonjour,

J'ai rapidement jeté un oeil... et quel oeil s
A la vue "du" formulaire, j'ai été convaincu d'avoir déjà vu !

En fait, la base tourne autour d'une seule table, la table "Clients".
Cette table est un véritable fourre-tout d
On y trouve des champs "Date de commande", "1A livrer le", "A livrer leF", "Dernière date de commande", etc.

Le tout représente pas moins de 188 champs, dont une volée de cases à cocher... ce qui est toujours une mauvaise indication !!!!

Je me demande sincèrement comment tu fais pour t'y retrouver, et je plains les utilisateurs k

Je regarderai un peu mieux dès que j'ai un (long) instant, mais déjà, je peux te dire que ce n'est pas une "base" (et je suis persuadé de déjà l'avoir dit).
Une telle construction n'est pas gérable. Même les (quelques) relations possibles n'étaient pas définies.

J'ajouterai encore que tu dois savoir on se trouvent mes articles sur la normalisation  et la modélisation d'une base... tu te dois de lire cela avec attention et conviction. Toute autre tentative serait vaine...

Cordialement,
Pierre(3stone)
  Poster une réponse  Haut
Réponse n° 15
--------
le 03/09/2010 : 11:28
par Polux

Anonyme

visiteur

Bonjour Pierre,

Avant tout, excuse moi pour la réponse tardive suite à une panne matériel de mon pc....

Voilà, sinon il vrai que je m'attendais à une réaction de ce genre....e

Citation : Pierre

J'ai rapidement jeté un oeil... et quel oeil

Oui je sais, je sais je sais, comme dirait jean gabin.... A l'époque où j'ai construit cette base je venais de microsoft works et avait besoins de vite vite quelque chose de plus efficace et me suis mis à Ms access sans aucune connaissance de la normalisation n'y même de quoi que ce soit... Je me suis alors précipité sur des livres et construit à taton....

Citation : Pierre

et je suis persuadé de déjà l'avoir dit

Oui, c'est vrai....k

Je dois dire que actuellement suite à cette précipitation je suis limité dans certaines actions mais que principalement la base complète qui comprends une trentaine de tables fonctionne tant bien que mal et m'apporte suffisament de satisfaction que pour ne pas tout jetter à la poubelle et recommencer....

D'autant plus que même après m'être imprégner de tes articles sur la normalisation et modélisation je penses que je serait encore fort indécis quant à la bonne constructions des tables et relations.... Pas que l'article soit mal fait, que du contraire mais qu'il faut je crois pas mal de pratique et d'expérience que pour pouvoir mettre tout celà en pratique... De plus la reconstruction n'est malheureusement pas une tâche qui puisse se faire rapidement et je ne pocède actuellement pas le temps que pour m'investir une fois de plus...

Voilà, après toutes ces explications que je me devais de te donner j'espère que tu souhaiteras encore bien vouloir m'assister dans cette base plus que périeuse j'en conviens et en suis bien conscient

Je dois aussi dire que suite à ceci:

Citation : Pierre

En fait, la base tourne autour d'une seule table, la table "Clients".

C'est que ma table client était la première table que j'ai réalisé mais que la base comprends aussi comme dit précédemment beaucoup d'autres tables beaucoup mieux structurées du style:

  • Garantie machines
  • Machines de locations
  • Réparations
  • Pièces réparations

Etc... Toutes ces tables ne traites que d'un seul sujet et ne sont heureusement pas aussi fourre-tout que ma table client l

Voilà sinon pour revenir sur le sujet:

Citation : Pierre

Je regarderai un peu mieux dès que j'ai un (long) instant

Si tu pouvais me trouver la solution pour la bonne utilisation de mes listes déroulantes celà me ferait grand grand plaisirs !!!

Je te souhaite une excelente journée et comme d'habitude te remercie d'avance !!!

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