Bonjour,
J'utilise le code suivant (trouvé dans la faq il me semble) pour lier mes tables à chaque lancement de la base. Comme ça prend quelques secondes, j'ai mis une progressbar :
Comme vous le voyez, je ne réussit pas à connaitre le pourcentage d'avancement du traitement, donc j'ai mis un i = i + 8, comme ça sur mon PC, la fin de la progressbar correspond a peu près à la fin du traitement. Msis en fonction des PC (le mien est super lent), je ne penses pas que ça marche tout le temps (pour certains ça s'arretera au milieu de la progressbar alors que pour d'autres la progressbar restera longtemps à 100% sans pour autant avoir fini le traitement.)
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 strChemBaseDorsal = CurrentProject.Path & "\base.mdb" Set dbf = CurrentDb dbf.TableDefs.Refresh strSQL = "SELECT strTable FROM tbl_TableAConnecter;" Set rst = dbf.OpenRecordset(strSQL) DoCmd.OpenForm "progressbar", , , stLinkCriteria i = 1 While Not rst.EOF '-------------------------------------------------- Forms!ProgressBar!barre.Min = 0 Forms!ProgressBar!barre.Max = 100 Forms!ProgressBar!barre.Value = i i = i + 8 '------------------------------------------------- ' suppression de la table On Error Resume Next DoCmd.RunSQL "DROP TABLE [" & rst("strTable") & "] ;" ' création de la liaison DoCmd.TransferDatabase acLink, "Microsoft Access", strChemBaseDorsal, acTable, rst("strTable"), rst("strTable") rst.MoveNext Wend DoCmd.Close rst.Close Set rst = Nothing DoCmd.OpenForm "frm_premier", , , stLinkCriteria
Ma question est donc la suivante : Comment connaitre l'état d'avancement dun tel traitement de liaison des table à chaque ouverture de base ?
Merci
Partager