Impossible de mettre à jour le Recorset
Richard (un autre!)
-
claire -
claire -
Bonjour à tous.
Moi aussi, j'ai un souci et je commence à peine dans Access2000.
Imaginons une société qui ait 3 agences principales (a,b,c) et chacune d'entre-elles, 4 points de vente secondaires(a1,a2...c3,c4). On a un champ effectifpdv qui représente... l'effectif du point de vente dans la table "points de vente". On cherche, en accédant à l'enregistrement a1 ou a2, ou a3, à afficher le total de l'effectif de a, c'est à dire l'effectif de a1 + l'effectif de a2...
J'ai créé pour cela une requête avec un champ de regroupement (tout les points de vente qui dépendent de l'agence a) et un champ de somme des effectifs. J'ai une zone dans mon formulaire "points de vente" dont la source est la requete que je viens de décrire.
Il est alors impossible de mettre à jour les autres données à partir du formulaire "points de vente". Message "impossible de mettre à jour le recordset" en bas de la fenêtre Access.
Question : pourquoi?
Question : comment faire?
Merci à tous les cerveaux!
Moi aussi, j'ai un souci et je commence à peine dans Access2000.
Imaginons une société qui ait 3 agences principales (a,b,c) et chacune d'entre-elles, 4 points de vente secondaires(a1,a2...c3,c4). On a un champ effectifpdv qui représente... l'effectif du point de vente dans la table "points de vente". On cherche, en accédant à l'enregistrement a1 ou a2, ou a3, à afficher le total de l'effectif de a, c'est à dire l'effectif de a1 + l'effectif de a2...
J'ai créé pour cela une requête avec un champ de regroupement (tout les points de vente qui dépendent de l'agence a) et un champ de somme des effectifs. J'ai une zone dans mon formulaire "points de vente" dont la source est la requete que je viens de décrire.
Il est alors impossible de mettre à jour les autres données à partir du formulaire "points de vente". Message "impossible de mettre à jour le recordset" en bas de la fenêtre Access.
Question : pourquoi?
Question : comment faire?
Merci à tous les cerveaux!
16 réponses
-
Bien que ce soit un vieux message j'ai trouvé la solution pour ma part et vu que ce post arrive en bonne position j'ai juste changé dans mon sous formulaire le type de recordset :
Feuille rép.dyn.(MAJ globale)
Et ça a marché.
++ PUPLES -
Tu as un formulaire basé sur une requête.
Dans ton formulaire, il y a un (ou plusieurs) champ(s) dont la source est liée à ta requête.
Si tu as d'autres champs, mais qui ne font pas partie de la requête sur laquelle est basée le formulaire, alors tu ne peux pas les mettre à jour...
C'est plus clair ? ou alors j'ai pas compris ton problème ! :-)
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Moi aussi je vois votre discussion assez tardivement, et un grand merci à Puples pour sa réponse très pertinente: le "Feuille rép.dyn.(MAJ globale)" débuggue tout.
Claire -
Salut,
ton formulaire, tu l'as créé comment :
- ex-nihilo ?
- en te servant d'un assistant et donc basé sur une table/requête ?
Si c'est le deuxième cas, alors, il peut y avoir problème...
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Bonjour,
C'est pas ex-nihilo :
j'ai créé le formulaire à partir d'une requête qui appelle les champs d'une table "Décisions" (champ: Décision.*), plus la requête de calcul du total des effectifs, dans laquelle je choisis d'afficher le champ SommedeEffectifs.
A quel genre de problème fais tu allusion?
Merci (déjà pour une réponse!)
Richard.
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je pense que, comme le formulaire est rattaché à une source, tous les champs qui y sont présents (à moins d'être indépendants) sont prêts à mettre à jour les données... c'est-à-dire, le champ de la requête, les autres ne sont rattachés à rien, ce qui peut expliquer le message d'erreur
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Bingo! J'ai compris.
J'ai essayé de prendre la requête de somme des effectifs en modification, ajouter un à un les champs de latable "Décisions" : là, je doit choisir une opération (j'ai choisi "premier", même si ça donne pas quelque chose de cohérent). j'enregistre le tout et j'en fait un formulaire instantané que... je ne peux toujours pas modifier!
Bon, reste t'il quelque chose à essayer? -
Une requête "somme" ne te permettra jamais de modifier quoi que ce soit dans ACCESS...
Il faut baser ton formulaire sur une requête "visualisation"...
Tu souhaites faire quoi, au juste ?
afficher les sommes ?
modifier des données ?
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Ben... les 2.
Voilà : on doit mettre à jour les données concernant le point de vente b1 par exemple - d'où, un formulaire qui repésente la table "Décisions", avec la possibilité de dire "il faut 3 bureaux", "on va mettre un bureau d'accueil" etc...
Pour prendre une décision, on veut afficher comme renseignement le total des effectifs de b1 à b4, mais c'est juste pour aider à prendre la décision.
Si on veut travailer sur le point de vente b2, on va naturellement afficher la même chose en total des effectifs, mais on va pouvoir modifier les données spécifiques au point de vente b2.
Je sais, c'est pas forcément évident...
Y a de la patience dans l'air de ta part!
-
-
Donc, un formulaire avec une liste déroulante qui permet de choisir le point de vente.
Des zones dépendantes du choix précédent qui sont "mise à jourables"
Une zone indépendante qui affiche le résultat de la requête somme qui est la même quel que soit le point de vente choisi (si j'ai bien lu).
C'est tout !
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Eh ben, vas-y ! ;-)))
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Si tu veux, tu peux m'envoyer ta base (zippée) à l'adresse suivante :
denis[point]mail[point]list[chez]free[point]fr
Si bien entendu, il n'y a pas de données sensibles, je verrai ce que je peux faire...
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Voilà, c'est fait. J'ai quand même pris le temps de l'alléger.
Merci à toi.
Richard -
Pour moi, il y quelques problèmes de conception dans ta base :
la table agencesprincipales possède un champ 'totaleffectifagence'
la table définitionagence ne possède pas de champ 'effectif'
Comment arrives-tu à calculer la somme des effectifs des agences dépendant d'une agence principale (ayant le même codagprincipal) dans ce cas ?
Il faut savoir qu'access est très bien dans la gestion automatique des liens entre les tables et formulaires, mais ceci au prix d'une conception initiale relativement bien structurée (je n'ôte rien à ton mérite, mais je te mets en garde ;-))
Je veux pas que le CA y ferme, ma femme bosse à Greencam :-)
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Oui pour les 2 remarques.
Explication :
le champ TotalEffAgence de la table EffectifAgence est quelque chose que j'avais essayé (mise à jour en dynamique, mais ça coince aussi) ; je ne m'en sers pas et on peut le virer, et dans la requete aussi.
si tu ouvres la requête en modif, il y a 3 tables concernées : agencesprincipales, definitionagence et effectif agence qui me permettent de faire la liaison entre les agences principales et l'effectif des points de vente. L'effectif du point de vente est calculé dans le formulaire effectifagence (par somme) et mis à jour dans la table par une requête mise à jour.
Je prends le codeagprincipale de ma table definitionagence comme critère pour chercher tous les enregistements correspondants, je fais la somme des valeurs des champs totaleffpdv, et c'est tout.
Et c'est cette somme que j'affiche dans le formmulaire Apositionner
Si ça te dis, on peut se joindre par tél? -
Oui, c'est vrai, j'ai fini par voir ce champ, mais mon post était déjà parti !
J'ai beau tourner dans tous les sens, je n'arrive rien à faire ressortir, que ce soit avec ta méthode, ou avec la mienne (sous-formulaires +VBA).
Je pense, mais SGDG, qu'access doit se prendre les pieds dans le tapis avec les relations 1-1, qui ont la même clé, et donc théoriquement ne devraient pas être dans des tables séparées... mais c'est le cas, et ça ne devrait pas poser physiquement de problème. Il doit y avoir une option quelconque pour interdire la MAJ, chargée avec le filtre du form 'A Positionner par NCA', mais je ne sais pas où... ou alors, il déduit cette impossibilité de la façon dont sont liés les forms...
Désolé, mais je ne peux plus t'aider...
Je suis quand même preneur d'une explication, si tu la trouves :-)
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
OK.
Ta remarque concernant les relations un à un est juste, toutefois, les renseignements contenus dans chaque table n'ont vraiment rien à faire avec ceux d'autre tables.
Sauf que j'ai trouvé quelque chose qui fonctionne! (ça chauffe parfois mieux le week-end!) : on prend cette fichue requête en modification, on en fait un formulaire instantané "FormulaireCalculTotalEffectif" (avec une macro de rafraichissement sur "activé"). On prend le formulaire "Apositionner" et on insère une zone de sous formulaire avec le nouveau formulaire comme source et ...ça marche!
Je suppose que le sous formulaire est devenu "indépendant" et que ça ne bloque plus les données.
Je n'ai pas d'autre explication.
Je souhaite vivement te remercier pour les idées et le temps que tu y a passé et je citerai JC Bellamy (www.jcbellamy.com).
"La connaissance s'accroit quand on la partage".
Richard. -
mais j'ai le meme soucis mais sa ne marche toujours pas!!!!! snif
moi a partir dun formulaire je choisi une activité un lieu et une période
grace a ces choix!!! il ma'affiche dans mon sous formulaire toutes les reponses!!!!!
Or sur ce sous formulaire je ne peut pas modifier un champs!!!
il me marque mise à jour de recordset impossible!!!!
comment faire svp!!!!!!!!!!!