Bonjour à tous,
J'ai tenté d'utiliser un code trouvé dans un tutoriel mais sans succès. J'ai donc cherché une autre solution et je suis tombée sur ce post: ça fonctionne parfaitement sur mon ordi (j'ai office 2010). ça ne fonctionne pas sur l'ordi d'un collègue (office 2003). Quand je vais voir les références, on a les mêmes (à part que j'ai microsoft excel 14.0 quand il a le 11.0, idem pour microsoft access).
J'ai fait du pas à pas pour voir où ça bloquait. C'est ici:
En mode debug, la ligne jaune va sur Set rst puis passe au message d'erreur inclus dans le code "Une erreur est survenue, fermeture de la base", si je clique sur ok du message d'erreur, il réapparait, et ce des dizaines de fois (je n'ai pas compté mais je suppose que le nombre correspond au nombre de lignes de ma requête).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Set rst = qdf.OpenRecordset(dbOpenSnapshot) Worksheets("Update").Range("A2").CopyFromRecordset rst
Le code complet:
Auriez-vous une idée de pourquoi ça marche chez moi et pas chez le collègue ?
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Option Explicit Const ML_PATH = "D:\xxx\MyDB.mdb" Const ML_QUERY = "Query2011" Sub Test() Call LancementRequêteAccess End Sub Function LancementRequêteAccess() On Error GoTo Err_Function Dim oAccesS As Access.Application Dim db As DAO.Database Dim qdf As QueryDef Dim rst As DAO.Recordset Set oAccesS = CreateObject("Access.Application") oAccesS.OpenCurrentDatabase ML_PATH Set db = oAccesS.CurrentDb Set qdf = db.QueryDefs(ML_QUERY) Set rst = qdf.OpenRecordset(dbOpenSnapshot) Worksheets("Update").Range("A2").CopyFromRecordset rst Exit_Err: rst.Close: qdf.Close: db.Close oAccesS.CloseCurrentDatabase Set rst = Nothing Set qdf = Nothing Set db = Nothing Set oAccesS = Nothing Exit Function Err_Function: MsgBox "Une erreur est survenue, fermeture de la base" Resume Exit_Err End Function
Merci !
Partager