Bonjour a tous, je souhaite afficher, dans un MsgBox, le contenu d'une table grace a recordset.
Dans Access, je vois bien qu'elle est correctement remplie mais je tombe sur une erreur d'execution 3021 :
BOF ou EOF est egal à true ou
l'enregistrement actuel a été supprimé. L'opération demandé necessite un
enregistrement actuel.
Voici le code :
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 1.Private Sub Form_Current() 2. 3.Dim strConnect, strConnect2 As String 4.Dim strsql As String 5.Dim dbCPTA As adodb.Connection 6.Dim dbCPTA2 As adodb.Connection 7. 8.'declaration des recordsets 9.Dim rst As New adodb.Recordset 10.Dim rst2 As New adodb.Recordset 11. 12.'ouverture + connection au DSN "MyDSN" 13.strConnect = "DSN=MyDSN" 14.Set dbCPTA = New adodb.Connection 15.dbCPTA.Open strConnect 16. 17.'ouverture + connection à la BDD 18.Set dbCPTA2 = New adodb.Connection 19.strConnect2 = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Demo\toto.accdb;" 20.dbCPTA2.Open strConnect2 21. 22.'reset de la table T_TEST 23.DoCmd.SetWarnings False 24.DoCmd.RunSQL "DELETE * FROM T_TEST" 25.DoCmd.SetWarnings True 26. 27.'récupération des champs necessaires dans le recordset 28.rst.Open "SELECT F_ARTICLE.AR_REF As n_ref ,F_ARTICLE.AR_DESIGN As n_design FROM F_ARTICLE", dbCPTA, adOpenDynamic, adLockOptimistic 29. 30.'boucle d'insertion des valeurs du recordset dans la table vide T_TEST 31.While Not (rst.EOF) 32. strsql = "INSERT INTO T_TEST (REF,DESIGN) VALUES ('" & rst(0) & "', '" & rst(1) & "')" 33. dbCPTA2.Execute (strsql) 34. rst.MoveNext 35.Wend 36. 37.'récupération des champs de T_TEST dans un autre recordset 38.rst2.Open "SELECT T_TEST.REF,T_TEST.DESIGN FROM T_TEST", dbCPTA2, adOpenDynamic, adLockOptimistic 39. 40.'boucle d'affichage et de test de la table T_TEST 41.While Not (rst2.EOF) 42. MsgBox "REF : " & rst2(0) & " DESIGN :" & rst2(1) & "." 43. rst.MoveNext 44.Wend 45. 46.'fermeture du recordset 47.rst.Close 48.'fermeture de la connexion au DSN 49.dbCPTA.Close 50.'suppression de l'objet dbCPTA 51.Set dbCPTA = Nothing 52. 53.'fermeture du recordset 54.rst2.Close 55.'fermeture de la connexion à la BDD 56.dbCPTA2.Close 57.'suppression de l'objet dbCPTA2 58.Set dbCPTA2 = Nothing 59. 60. 61.MsgBox "fin" 62. 63.End Sub
Partager