Bonjour,
J’ai créé une commande de transmission des informations contenues dans mon formulaire Access vers Word, et cela fonctionne mais je rencontre quelques difficultés : cela ne fonctionne qu’une seule fois ensuite je dois ressortir du formulaire pour entrer à nouveau avant d'expoter sinon le prg s’arrête sur la saisie des données avec le message suivant « Erreur d’exécution 3021 : aucun enregistrement en cours ».
Je dois préciser que le formulaire est fait à partir d’une table, et c'est le sous formulaire qui contient la requête "rs meeting". Mais je ne pense pas que le problème vienne de là.
J’ai plutôt l’impression que le prg « edit » le recordset, va jusqu’à la fin avec le Do While not EOF, et pour le second ne réinitialise pas le recordset mais considère qu’il est déjà à la fin du recodset.
J'ai essayé de rajouter les instructions suivantes :
rs.Close
Set rs=Nothing
après le "Loop",
et : sfmeeting.Form.Requery
AVANT Set rs = sfmeeting.Form.Recordset
Peut-être pouvez-vous m’éclairer ? Je joins à ce message le code dans le fichier Access:
Merci d’avance pour votre aide
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 Private Sub agenda_Click() Dim strcode As String Dim rs As DAO.Recordset Dim wd As Word.Application Dim intNbLignes As Integer Dim cheminagendatemp As String Dim agendatemporaire As String Dim newagenda As String Dim dateric As Date Dim strmeeting As String dateric = Date strmeeting = Meeting.Value 'instanciation de word Set wd = New Word.Application 'ouverture document trame cheminagendatemp = chemin & "\08 - Templates\" agendatemporaire = "Agenda RIC TEMPLATE.doc" wd.Documents.Open FileName:=cheminagendatemp & agendatemporaire, ReadOnly:=True 'inscription de la date dans le document word wd.ActiveDocument.Bookmarks("Date").Range.Text = dateric intNbLignes = 1 'récupération des infos liste des projets 'sous forme d'un recordset 'sfmeeting.Form.Requery Set rs = sfmeeting.Form.Recordset 'parcours du recordset de sfmeeting Do While Not rs.EOF 'inscription du code dans le document word 'nouvelle ligne wd.Documents(agendatemporaire).Tables(2).Rows.Add intNbLignes = intNbLignes + 1 'Ecriture sur cette nouvelle Ligne wd.ActiveDocument.Tables(2).Cell(intNbLignes, 2).Range.Text = rs.Fields("Code Projet").Value wd.ActiveDocument.Tables(2).Cell(intNbLignes, 3).Range.Text = rs.Fields("Project").Value & " - " & rs.Fields("Credit in m").Value & "M " wd.ActiveDocument.Tables(2).Cell(intNbLignes, 4).Range.Text = rs.Fields("Last gate").Value rs.MoveNext Loop 'rs.Close Set rs = Nothing ' enregistrement du document word newagenda = "agenda" & Minute(Time) & Second(Time) & ".doc" wd.Documents(agendatemporaire).SaveAs FileName:=chemin & "\01 - RIC à partir de février 2007\" & newagenda ' fermeture du document word wd.Documents(newagenda).Close 'wd.Documents(agendatemporaire).Activatewd.Documents.Open FileName:=cheminagendatemp & agendatemporaire _ ', ReadOnly:=True 'destruction de l'objet wd wd.Quit Set wd = Nothing 'Forms("formulaire_meeting").CloseButton End Sub
Partager