Famille de systèmes de gestion de bases de données relationnelles Microsoft conçus pour être faciles à utiliser.
oui le code VBA du formulaire.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
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
Famille de systèmes de gestion de bases de données relationnelles Microsoft conçus pour être faciles à utiliser.
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.
oui le code VBA du formulaire.
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. :-(
@+
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é.
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.
@+
Je n'ai pas besoin des données.
La table seule ne me sera d'aucun secours, il faut que je teste l'ensemble.
Les recordsets il y en a dans chaque formulaire et états. Le resume next ne sert à rien vu le comportement du pas-à-pas que tu as décris.
Je suis étonné pour le centrage, je pense à un mauvais réglage.