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

Trier par : Les plus récents
  1. Anonyme
    2013-09-23T07:32:10+00:00

    Je ne vois rien de problèmatique.

    Ton office est à jour ?

    En dernier ressort je peux regarder l'appli dans son ensemble si tu veux.

    Pour le centrage regarde la faq DEVELOPPEZ.COM, le procédure y est.

    De mémoire, il faut mettre la propriété Centrer à oui, et que le Maximize ne soit pas activé.

    Salut loufab,

    Je ne peux pas de passer l'application, ce n'est pas que je ne veux pas, mais il y a des données confidentielles, c'est un garage.

    Je peux peut-être t'envoyer la table facturation, avec quelques enregistrements, ce serait plus facile.

    Mais comment faire?

    Mon office est le SP2.

    Donc, en réalité ce que cette "histoire" de erreur '3020' qui finalement s'applique aux recordsets et on n'en a pas,.

    On ne sait pas passer outre, j'ai fait un on error resume next, ce qui n'a rien arrangé.

    Dans développez.com, il ne dit pas la marche à suivre pour les formulaires, enfin, je ne l'ai pas vu.

    Les fonctions, je les ai vues et installées comme expliqué,  j'ai fait le bouton comme indiqué et le formulaire ne bouge pas.

    Parce que c'est vraiment moche le formulaire collé en haut à gauche et avoir l'écran vide à droite où on ne sait rien bouger, avec le .mdb on savait le faire.

    Bon, maintenant, je dois partir et ne reviens qu'en début d'après-midi.

    Merci encore pour le temps que tu passes sur mes problèmes.

    @+

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

    0 commentaires Aucun commentaire
  2. Anonyme
    2013-09-23T06:50:34+00:00

    Je ne vois rien de problèmatique.

    Ton office est à jour ?

    En dernier ressort je peux regarder l'appli dans son ensemble si tu veux.

    Pour le centrage regarde la faq DEVELOPPEZ.COM, le procédure y est.

    De mémoire, il faut mettre la propriété Centrer à oui, et que le Maximize ne soit pas activé.

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2013-09-22T11:08:51+00:00

    oui le code VBA du formulaire.

    Private Sub Form_Current()

    'Me.Caption = "Facture au nom de " & Forms!Clients![Nom]

    If Me![ImpRem] = -1 Then

        Me!Commande46.Visible = True

        Me!Image55.Visible = True

    End If

    End Sub

    =========================================

    Private Sub Form_Open(Cancel As Integer)

    Me.Caption = "Facture au nom de " & Forms!Clients![Nom]

    If Me![TF] = "FEX" Then

        Me![PCBENUM].Enabled = True

        Me![Montant pcbe].Enabled = True

    End If

    If Me![TF] = "FCA" Then

        Me![Cadre48].Visible = True

    ElseIf Me![TF] = "FEX" Then

        Me![Cadre48].Visible = False

    ElseIf Me![TF] = "FME" Then

        Me![Cadre48].Visible = False

    End If

    If Me![Remarque] = -1 Then

        Me![Commande46].Visible = True

    End If

    End Sub

    =============================================

    Private Sub Form_Close()

        DoCmd.OpenForm "clients", acNormal, "", "[NCL] = [Forms]![FacturesExMeCa]![NCL]"

    End Sub

    ==============================================

    Private Sub Form_Unload(Cancel As Integer)

    Dim FME As Form, maBD As Database, rstVentilation As Recordset

    Dim critere, vBookmark As Variant

    Set maBD = CurrentDb

    Set rstVentilation = maBD.OpenRecordset("Ventilation", dbOpenDynaset)

    Set FME = Forms![FacturesExMeCa]

    critere = "Numfact= " & FME![Numfact]

    If IsNull(Me![Date facture]) Then

        Beep

        MsgBox "Vous avez omis la date !", vbCritical, "Date facture"

        DoCmd.CancelEvent

        Me![Date facture].SetFocus

    End If

    With rstVentilation

        If .RecordCount = 0 Then

            .AddNew

            !Numfact = FME![Numfact]

            !NfactLettre = FME![NfactLettre]

            !DateFacture = FME![Date facture]

            !NCL = FME![NCL]

            !NomFamille = FME![Nom]

            !TotAccessoires = FME![SousFacture]![SommeMtAccessoires]

            !TotBatteries = FME![SousFacture]![SommeMtBatteries]

            !TotPneus = FME![SousFacture]![SommeMtPneus]

            !TotHuiles = FME![SousFacture]![SommeMtHuiles]

            !QtéHuiles = FME![SousFacture]![SommeQtéHuiles]

            !QtéPneus = FME![SousFacture]![SommeQtéPneus]

            !QtéBatteries = FME![SousFacture]![SommeQtéBatt]

            !MO = FME![MO]

            !RemiseTotale = FME![SousFacture]![RemiseTotale]

            !TotalTVA = FME![TotalTVA]

            If FME![Taux TVA] = 0.21 Then

               ![Base6%] = 0

               ![Base21%] = FME![base%]

            ElseIf FME![Taux TVA] = 0.06 Then

               ![Base21%] = 0

               ![Base6%] = FME![base%]

            End If

            !MontantAPayer = FME![Texte20]

            .Update

            .Close

    ElseIf .RecordCount > 0 Then

            .MoveFirst

            .FindFirst critere

            If .NoMatch Then

                .AddNew

                !Numfact = FME![Numfact]

                !NfactLettre = FME![NfactLettre]

                !DateFacture = FME![Date facture]

                !NCL = FME![NCL]

                !NomFamille = FME![Nom]

                !TotAccessoires = FME![SousFacture]![SommeMtAccessoires]

                !TotBatteries = FME![SousFacture]![SommeMtBatteries]

                !TotPneus = FME![SousFacture]![SommeMtPneus]

                !TotHuiles = FME![SousFacture]![SommeMtHuiles]

                !QtéHuiles = FME![SousFacture]![SommeQtéHuiles]

                !QtéPneus = FME![SousFacture]![SommeQtéPneus]

                !QtéBatteries = FME![SousFacture]![SommeQtéBatt]

                !MO = FME![MO]

                !RemiseTotale = FME![SousFacture]![RemiseTotale]

                !TotalTVA = FME![TotalTVA]

                If FME![Taux TVA] = 0.21 Then

                    ![Base6%] = 0

                    ![Base21%] = FME![base%]

                ElseIf FME![Taux TVA] = 0.06 Then

                    ![Base21%] = 0

                    ![Base6%] = FME![base%]

                End If

                 !MontantAPayer = FME![Texte20]

                .Update

                .Close

     ElseIf Not .NoMatch Then

            'msgbox "J'ai trouvé " & NumFact

            vBookmark = Me.Bookmark

            .Edit

           ' !NomFamille = FME![Nom]

            !NCL = FME![NCL]

            !NfactLettre = FME![NfactLettre]

            !DateFacture = FME![Date facture]

            !TotAccessoires = FME![SousFacture]![SommeMtAccessoires]

            !TotBatteries = FME![SousFacture]![SommeMtBatteries]

            !TotPneus = FME![SousFacture]![SommeMtPneus]

            !TotHuiles = FME![SousFacture]![SommeMtHuiles]

            !QtéHuiles = FME![SousFacture]![SommeQtéHuiles]

            !QtéPneus = FME![SousFacture]![SommeQtéPneus]

            !QtéBatteries = FME![SousFacture]![SommeQtéBatt]

            !MO = FME![MO]

            !RemiseTotale = FME![SousFacture]![RemiseTotale]

            !TotalTVA = FME![TotalTVA]

            If FME![Taux TVA] = 0.21 Then

               ![Base6%] = 0

               ![Base21%] = FME![base%]

            ElseIf FME![Taux TVA] = 0.06 Then

               ![Base21%] = 0

               ![Base6%] = FME![base%]

            End If

             !MontantAPayer = FME![Texte20]

            .Update

            .Close

        End If

        End If

    End With

    FME![MontantAPayer] = FME![Texte20]

    If FME!Image55.Picture <> "" Then

        FME!Image55.Visible = True

    End If

        Set FME = Nothing

        Set maBD = Nothing

        Set rstVentilation = Nothing

    End Sub

    ==========================================

    Maintenant, autre chose :-)

    Je voudrais centrer un formulaire.

    Je n'y arrive pas.

    Le seul moyen est de dire que le formulaire est indépendant, mais alors, je perds la commande compléments. :-(

    @+

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

    0 commentaires Aucun commentaire
  4. Anonyme
    2013-09-22T09:45:28+00:00

    oui le code VBA du formulaire.

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

    0 commentaires Aucun commentaire
  5. Anonyme
    2013-09-22T08:24:21+00:00

    Peux-tu poster le code qu'il y a dans le formulaire FacturesExMeCa ?

    Salut loufab,

    Veux-tu parler des codes comme dans activation ou sur ouverture ou sur fermeture?

    @+

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

    0 commentaires Aucun commentaire