bonjour a tous,
je travaille sur une base de donnée afin de déterminer la période de fonctionnement d'un appareil (i.e. le temps entre 2 interventions avec défaut constaté sur l'appareil)
je crée une table avec comme champ le n° d'appareil, la date d'intervention (il n'y a pas forcément un défaut à chauqe date : certaine sont juste des vérif' de fonctionnement), le champ défaut et un champ période vide que je veux remplir avec un module.dans ce champ période, je fais une somme cumulée depuis le dernier défaut. j'ai écrit ce code :
je me doute que c'est loin d'être parfait, mais lors de l'execution, VBA s'arrête à cette ligne
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 Sub periodesappareils() Dim db As Database Dim enrg1 As Recordset Dim enrg2 As Recordset Set db = CurrentDb Set enrg1 = db.OpenRecordset("oscillos_TablePériodes") Set enrg2 = db.OpenRecordset("oscillos_TablePériodes") enrg1.MoveFirst enrg1!période = 0 enrg2.Move (2) Do Until enrg2.EOF If enrg1!Marquage = enrg2!Marquage And Not (enrg2!défaut) Then enrg2!périodecumulée = CLng(enrg2!dateintervention - enrg1!dateintervention) + enrg1!périodecumulée End If enrg1.MoveNext enrg2.MoveNext Loop End Sub
et il m'affiche un message d'erreur de compatibilité de type.(erreur d'exécution '13') j'ai tout vérifié : ma table porte bien ce nom, les références sont à jour, tous les autres variables du openrecordset sont facultatives, bref tout semble devoir faire que ca fonctionne ! et pourtant.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set enrg1 = CurrentDb.OpenRecordset("oscillo_TablePériodes")
comble du désepoir, j'envoie une copie à un collègue qui lance le début du module (juste le openrecordset) et pour lui ca marche. il travaille avec access2002 et moi access2000.
Quelqu'un a-t-il déjà rencontré ce problème ou remarqué quelque chose qui ne va pas dans mon code?
merci d'avance pour toutes vos réponse.
4rn0_o
Partager