Bonjour,
Je suis étudiant en métallurgie et actuellement en stage dans un laboratoire "Qualité Matériaux". Je ne suis donc pas un spécialiste de VBA.
Une partie de mon travail consiste à améliorer leur base de donnée, développée sous Access 97 (N.B. : la version qui m'est fourni est Access 2007). Celle-ci permet notamment de récupérer des données d'une machine de traction.
Une des améliorations, doit permettre en fonction du choix, effectué dans une liste déroulante "Echantillonable" (les choix sont : oui/non), de remplir automatiquement des champs d'une table "donnees" avec des informations sur les essais de traction à effectuer.
Je récupère donc la valeur de la liste déroulante "Echantillonable" (soit 0 soit -1), appartenant au formulaire actif "IDENTIFICATION" et en fonction de la valeur, je souhaite écrire différentes valeurs dans le champ "Essai_traction" de la table (c'est une table liée) "donnees"
Voici le code que j'ai écrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub Echantillonable_Change() Dim db As Database Dim rs As Recordset Dim transit As Single transit = Me!Echantillonable.Value If transit = 0 Then Set db = CurrentDb() Set rs = db.OpenRecordset("donnees") rs![Essai_traction] = "E1" rs.AddNew rs.Update Else Set db = CurrentDb() Set rs = db.OpenRecordset("donnees") rs![Essai_traction] = "E2" rs.AddNew rs.Update End If End Sub
Mon problème est le suivant :
Quand je sélectionne une des valeurs dans la liste déroulante il m'indique la phrase suivante :
Erreur d'exécution "3020"
Update ou CancelUpdate effectué sans appeler AddNew ni Edite
Et quand le clique sur Débogage il me surligne en jaune rs![Essai_traction] =
et m'indique : rs![Essai_traction] = Null
Pouvez-vous m'apporter votre aide ?
Je vous remercie
Partager