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