Bonjour, dans le cadre d'une participation à une association, je viens de récupérer une base access à faire évoluer, elle contient du code vba mais je dois avouer que je ne suis vraiment pas un expert !
Actuellement, je cherche à résoudre un bug (qui n'en est pas vraiment un je pense). Je souhaite supprimer plusieurs enregistrements à la fois. La base permet de gérer le budget de l'association, dont les rentrées d'argent (la vente d'objets vendus), et chaque objet a un prix qui peut évoluer chaque année. dans le formulaire relatif à l'objet, lorsque l'utilisateur clique sur le bouton Suppression, je souhaite que les enregistrements sur l'objet soient effacés d'un seul clic (mais pas l'objet, seulement ceux relatifs à l'année et le chiffre des ventes à l'année).
Actuellement, la formule utilisée est:
DoCmd.RunCommand acCmdDeleteRecord
Avec une boucle (For i=0 to 14 / Next i) pour que l'opération soient répétée sur tous les enregistrement concernant les 15 années de la vie de l'objet. L'ennui, c'est que lorsqu'on clique sur le bouton suppression, le message suivant s'affiche: Erreur 3021 Aucun enregistrement en cours. L'assistant de débuggage affiche que DoCmd.RunCommand acCmdDeleteRecord est en cause. Par ailleurs, un seul enregistrement est supprimé (celui correspondant à i=0). Et si on veut supprimer les suivants, il faut cliquer à nouveau sur le bouton de suppression (et donc effacer les enregistrements un par un).
Je pense que le code est correct mais le problème doit venir de la version D'Access. En utilisant Access 2003, le problème ne se présente pas, tout est effacé correctement. Mais l'association dispose de la version 2002 d'access et ne peut la faire passer en 2003. Existe-t-il un code pour effectuer cette opération sous Access 2002.
J'espère que mon explicatione est assez claire. Si ce n'est pas le cas et que vous souhaitez m'aider, n'hésitez pas à me poser des questions supplémentaire.
Merci
Vinzom
Partager