Bonjour,
Je rencontre un problème de chargement d'un recordset à partir d'une requête Access (2003 SP2).
Voici mon code (basique ...) :
Mais je bloque à la ligne MoveFirst avec l'erreur suivante :
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 ' Déclaration connexion Dim CONX As New ADODB.Connection Set CONX = CurrentProject.Connection ' Déclaration recorset Dim RecordsetConfig As New ADODB.Recordset RecordsetConfig.ActiveConnection = CONX ' Chargement du recordset avec une requête Access : TPEexportConfig Dim SQL As String SQL = "select * from TPEexportConfig" RecordsetConfig.Open SQL, CONX, adOpenDynamic RecordsetConfig.MoveFirst Do Until RecordsetConfig.EOF = True ' insertion en base pour chaque enregistrement DoCmd.RunSQL "INSERT INTO ConfigTPE (NumTPE,IdEltConf,Version) VALUES (" & RecordsetConfig.Fields(0) & ", 1 ,'" & RecordsetConfig.Fields(1) & "');", True RecordsetConfig.MoveNext Loop RecordsetConfig.Close
Et si je ne mets pas mon RecordsetConfig.MoveFirst je ne rentre pas dans la boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 erreur d'exécution '3021' BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé
Ce qui m'étonne c'est qu'en passant via DAO je n'avais pas ce pb.
En revanche si ma variable SQL s'appuie sur une table Access (et non plus une requête Access), je rentre dans ma boucle (bon après j'ai de gros pb de perfs dont je parlerai après ...)
Quelqu'un voit-il mon erreur ?
D'avance merci de l'aide de quiconque pour le grand débutant VBA que je suis.
Partager