Bonjour,
voilà un morceau de code que me permets de remplir une table Access avec des donnés provenant d'une base IBM AS400:
Mon problème est-ce qu'il prend trop de temps pour être exécuté (environ 30mn).
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 Set Cmd400.ActiveConnection = Con400 Cmd400.CommandText = UCase(Trim(textSQL)) Set Rs400 = Nothing Set Rs400 = Cmd400.Execute() While Not Rs400.EOF For colCount = 0 To Rs400.Fields.Count - 1 If Rs400.Fields(colCount).ActualSize = -1 Then text400 = Null Else val400 = Rs400.Fields(colCount).Value text400 = val400 End If If colCount = 0 Then Set rs = New ADODB.Recordset rs.ActiveConnection = CurrentProject.Connection rs.Source = "SELECT * FROM [telephones_bis]" rs.CursorType = adOpenDynamic rs.LockType = adLockOptimistic rs.Open rs.AddNew rs.Fields(colCount).Value = text400 rs.Update rs.Close If Not IsNull(text400) Then tit = CLng(text400) Else tit = 0 End If Else Set rs = New ADODB.Recordset rs.ActiveConnection = CurrentProject.Connection rs.Source = "SELECT * FROM [telephones_bis] WHERE CLIENTE=" & tit rs.CursorType = adOpenDynamic rs.LockType = adLockOptimistic rs.Open If Not rs.EOF Then rs.MoveLast rs.Fields(colCount).Value = text400 rs.Update End If rs.Close End If Next colCount Rs400.MoveNext Wend Set Rs400 = Nothing Con400.Close
La même requête, si au lieu de remplir la table Access, j'utilise pour remplir un tableau Excel, est faite en environ 1mn.
Je crois qui ça doit avoir un rapport avec la connexion ADO qui j'utilise pour remplir la table Access.
Est-ce que quelqu'un connaît une façon un peu plus légére de remplir ma table Access?
Merci d'avance pour toute aide...
Partager