Bonjour,
Grâce au tuto "Communication entre access et excell" qui décrit la fonction "TransfertExcelAutomation", je transfére les tables de ma base dans différents fichiers excell (1 par table, chacun portant le nom de la table).
Ca fonctionne bien sauf que la fonction s'arrête après avoir exporté les 7 premières tables. Le déboggeur mets en fluo la ligne suivante :
Je ne vois pas pourquoi ça stoppe ainsi. il n'y a pas de variables particulières dans cette table.
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 For Each oTbl In oDb.TableDefs Set rec = oDb.OpenRecordset(oTbl.Name, dbOpenSnapshot) 'Initialisations Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.ADD 'Ajouter une feuille de calcul Set xlSheet = xlBook.Worksheets.ADD xlSheet.Name = CStr(oTbl.Name) ' le titre ' écriture dans la cellule de ligne 1 et de colonne 1 xlSheet.Cells(1, 1) = "Export de la table Access" & oTbl.Name ' les entetes ' .Fields(Index).Name renvoie le nom du champ For J = 0 To rec.Fields.Count - 1 xlSheet.Cells(2, J + 1) = rec.Fields(J).Name ' Nous appliquons des enrichissements de format aux cellules With xlSheet.Cells(2, J + 1) .Interior.ColorIndex = 15 .Interior.Pattern = xlSolid .Borders(xlEdgeBottom).LineStyle = xlContinuous .Borders(xlEdgeBottom).weight = xlThin .Borders(xlEdgeBottom).ColorIndex = xlAutomatic .HorizontalAlignment = xlCenter End With Next J ' recopie des données à partir de la ligne 3 I = 3 Do While Not rec.EOF For J = 0 To rec.Fields.Count - 1 ' .Fields(Index).Type renvoie le type du champ ' si c'est un Texte (dbText) nous insérons "'" pour ' qu'il soit reconnu par Excel comme du Texte If rec.Fields(J).Type = dbText Then xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J) Else xlSheet.Cells(I, J + 1) = rec.Fields(J) End If Next J I = I + 1 rec.MoveNext Loop ' code de fermeture et libération des objets Chemin = Application.CurrentProject.Path & "\BackupBD\" & oTbl.Name & "-" & Format(Now, "mm-dd-yyyy") & ".xls" xlBook.SaveAs Chemin xlApp.Quit rec.Close Next oTbl
En regardant le contenu de différentes varaibles, je vois que CStr(oTbl.Name) contient le nom MSysAccessObjects (une table temporaire je suppose)
Quant à moi je suppose que si ça bloque c'ets que le format de l'info contenu dans les champs access ne doit pas être compatible avec ceux d'excell....
Une idée ou une piste de solution?
Merci
Partager