erreur exécution '3020' dans Access office 2010

Anonyme
2013-09-18T08:59:40+00:00

Bonjour,

Lorsque j'exécute une fonction comprenant addnew ou edit se terminant pas update dans Access office 2010  j'ai cette erreur '3020' qui me dit que je n'ai pas addnew ou edit.

Cette erreur se produit dans Access office 2010 ou office 2013.

Par contre, cette erreur ne se produit pas dans Access Office XP.

Mystère, aucune des réponses que j'ai pu glaner n'ont été satisfaisantes jusque maintenant.

D'avance merci pour votre aide.

@+

Guy FALESSE

Microsoft 365 et Office | Access | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

64 réponses

  1. Anonyme
    2013-09-19T08:17:17+00:00

    Salut Loufab,

    Tout marche bien, merci pour les lignes inutiles, mais, je reçois l'erreur '440' qui me dit:

    Update ou cancelUpdate effectué sans addnew ni edit.

    ? où est l'erreur?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2013-09-18T20:06:51+00:00

    Salut loufab,

    Merci pour ta réponse et ta patience.:-)

    Franchement, je ne savais pas qu'il y avait autant de choses inutiles dans cette fonction.

    Je vais essayer de dormir cette nuit :-)

    Dès demain, je teste toutes tes corrections.

    Bonne nuit et à demain.

    Fguy

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2013-09-18T18:55:30+00:00

    Tu n'as pas répondu à ma question, bien que je connaisse d'avance la réponse.

    Il n'est jamais trop tard pour apprendre. Une pile (dans le sens empilement) est l'ensemble des formulaires ouvert dans l'ordre chrono.

    Forms(0) étant le premier ouvert.

    Idem pour les états avec Reports(0).

    En 9 lignes :

    Public Function NouvelleFactureMe()     'Totalement inutile !!!     'rstFact ne sert pas donc maBD non plus     'Rep est u string alors que tu y stocke un long     'Dim rstFact As Recordset, maBD As Database, Rep As String     'meF ne sert pas non plus puisque le formulaire une fois ouvert     '  est dans la pile des formulaire (forms())     'meCL n'est pas utilisé et s'il l'était il serait dans la pile des     '  formulaire comme FacturesExMeca     'Dim meF As Form, meCL As Form     'Set maBD = CurrentDb          'ici beaucoup de lignes inutiles     'Rep = MsgBox("Est-ce bien une nouvelle facture" & vbLf & vbLf & _     '    "MECANIQUE" & vbLf & vbLf & _     '    "que vous voulez créer ?", vbQuestion + vbDefaultButton1 + vbYesNo, "Contrôle type facture")     'If Rep = vbNo Then     '    Exit Function     'End If     'alors que     If vbNo = MsgBox("Est-ce bien une nouvelle facture" & vbLf & vbLf & _         "MECANIQUE" & vbLf & vbLf & _         "que vous voulez créer ?", vbQuestion + vbDefaultButton1 + vbYesNo, "Contrôle type facture") Then Exit Function     'suffit largement '-------------------------------------------------------------------     'Pourquoi utiliser cette table ?     'Set rstFact = maBD.OpenRecordset("Facturation", dbOpenDynaset)     'With rstFact         'If .RecordCount > 0 Then             'DoCmd.OpenForm "FacturesExMeCa"             DoCmd.OpenForm "FacturesExMeCa", acNormal, "", "", acAdd, acNormal             'Set meF = Forms![FacturesExMeCa]             'Le formulaire est dans la pile autant l'utiliser             With Forms.FacturesExMeCa             .Numfact = DMax("numfact", "facturation") + 1             .[NCL] = Forms.Clients![NCL]  'ici tu utilises bien la pile !!!             .[Nom] = Forms.Clients![Nom]             .TF = "FME"             .NFactLettre = "FME" & .Numfact             .Cadre48.Visible = False                      'End If     End With '--------------------------------------------------------------------     'Set maBD = Nothing    ' Set rstFact = Nothing     'Set meF = Nothing End Function

    Honnêtement il ne s'agit pas d'un bug ni d'une régression mais d'une simple correction d'un mauvais comportement.

    Pour l'anecdote un client me donnait l'exemple d'une de ces applications qui fonctionnait' selon lui, parfaitement en ACCESS 2.0, il utilisait un bug du moteur de base de données pour écraser les n° auto, et d'un autre coté il pestait contre ACCESS et Microsoft parce qu'il était obligé de réparer sa base régulièrement.

    Commençons par utiliser correctement le produit avant d'y voir des bugs partout.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2013-09-18T17:28:07+00:00

    Le problème est-il résolu ?

    L'objet est déjà en mémoire, dans la pile Forms, pourquoi faire une copie en mémoire dans un nouvel objet et ainsi encombrer inutilement la mémoire juste pour faire une affectation de valeurs ?

     

    Être mécontent juste pour ça c'est un peu excessif non ? Surtout quand on voit toutes les avancées du produit (triggers, éditeur de macro, nouvelle présentation des boutons...) depuis la version XP.

     

    Cordialement,

     

    Merci de ta réponse.

    Comme je l'ai dit, je ne suis pas un expert en la matière;

    Alors, les nom objet et pile ne signifient rien pour moi.

    Avec le code que j' ai fourni, pourraient-tu faire des copié collé avec un commentaire.

    Ce serait chouette.

    Je suis assez mécontent, parce que j'ai fait acheter ce logiciel à un ami et il ne servira que ce programme, je n'avais pas prévu ce genre d'erreur.

    Évidemment, je ne suis pas fâché sur les gens comme toi qui faites votre possible pour nous dépanner.

    Mais n'y a -t-il pas moyen de contacter Microsoft, parce que c'est tout de même ne aberration de trouver un message disant qu'il faut employer edit ou addnew alors que c'est en toutes lettres dans le programme et que cela fonctionne parfaitement en l'état dans Access XP.

    Je me répète bien sûr mais je râle un peu.

    Merci d'avance :-)

    @+

    Fguy

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2013-09-18T16:18:32+00:00

    Le problème est-il résolu ?

    L'objet est déjà en mémoire, dans la pile Forms, pourquoi faire une copie en mémoire dans un nouvel objet et ainsi encombrer inutilement la mémoire juste pour faire une affectation de valeurs ?

    Être mécontent juste pour ça c'est un peu excessif non ? Surtout quand on voit toutes les avancées du produit (triggers, éditeur de macro, nouvelle présentation des boutons...) depuis la version XP.

    Cordialement,

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire