Bonjour à tous,

je vous sollicite car je ne comprend pas l'erreur que j'obtiens lors du débogage de mon application dans Visual Studio :

Voici le contexte :
J'ai une base de donnée SQLServer 2019, voici ma chaine de connexion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
        Gestion.Cn = New ADODB.Connection
        '***
        Gestion.Cn.ConnectionString = "Provider=sqloledb;Data Source=XXX;Initial Catalog=YYY;User ID=ZZZ;Password=WWW"
        '***
        Gestion.Cn.Open()
Je fait des ouvertures de RecordSet imbriquée : voir ligne 28
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
        MyString = "SELECT * FROM Reunions WHERE DateReunion='" & Gestion.DateProno & "' ORDER BY NumReunion"
        '***
        Gestion.RReunion = New ADODB.Recordset
        With Gestion.RReunion
            .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
            .LockType = ADODB.LockTypeEnum.adLockOptimistic
            .Open(MyString, Gestion.Cn, , , ADODB.CommandTypeEnum.adCmdText)
        End With
        Gestion.RReunion.MoveFirst()
        '***
        Do
            ...
            MyString = "SELECT * FROM Courses WHERE NumGeny='" & Gestion.RReunion.Fields("NumGeny").Value & "' ORDER BY NumCourse"
            Gestion.RCourses = New ADODB.Recordset
            With Gestion.RCourses
                .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
                .LockType = ADODB.LockTypeEnum.adLockOptimistic
                .Open(MyString, Gestion.Cn, , , ADODB.CommandTypeEnum.adCmdText)
            End With
            Gestion.RCourses.MoveFirst()
            Do
                .... 
                MyString = "SELECT * FROM Chevaux WHERE NumGeny='" & Gestion.RReunion.Fields("NumGeny").Value & "' and NumCourse=" & Gestion.RCourses.Fields("NumCourse").Value & " ORDER BY numero"
                Gestion.RChevaux = New ADODB.Recordset
                With Gestion.RChevaux
                    .CursorType = ADODB.CursorTypeEnum.adOpenKeyset
                    .LockType = ADODB.LockTypeEnum.adLockOptimistic
                    .Open(MyString, Gestion.Cn, , , ADODB.CommandTypeEnum.adCmdText)  ' <<<<<<<<<<<<<<<<<<<<< ICI >>>>>>>>>>>>>>>>>>
                End With
                Gestion.RChevaux.MoveFirst()
                Do
                    ...
                    Gestion.RChevaux.MoveNext()
                Loop Until Gestion.RChevaux.EOF
                Gestion.RChevaux.Close()
                Gestion.RChevaux = Nothing
                Gestion.RCourses.MoveNext()
            Loop Until Gestion.RCourses.EOF
            Gestion.RCourses.Close()
            Gestion.RCourses = Nothing
            Gestion.RReunion.MoveNext()
        Loop Until Gestion.RReunion.EOF
        Gestion.RReunion.Close()
        Gestion.RReunion = Nothing
        Gestion.Cn.Close()
        Gestion.Cn = Nothing
Le 1er cycle complet se passe normalement.
RecordSet RChevaux - MyString = "SELECT * FROM Chevaux WHERE NumGeny='8821499999' and NumCourse=3 ORDER BY numero".
Cette même requête dans DBeaver, retourne le résultat suivant :
Nom : image_2022-08-26_095838484.png
Affichages : 298
Taille : 42,4 Ko
Le 2ème cycle plante.
RecordSet RChevaux - MyString = "SELECT * FROM Chevaux WHERE NumGeny='8821499999' and NumCourse=4 ORDER BY numero".
Cette même requête dans DBeaver, retourne le résultat suivant :
Nom : image_2022-08-26_100025453.png
Affichages : 276
Taille : 58,6 Ko

Voici le message d'erreur que Visual Studio me renvoit :
Nom : image_2022-08-26_100216321.png
Affichages : 274
Taille : 79,8 Ko

Je ne vois pas à quoi fait référence le message d'erreur :
System.Runtime.InteropServices.COMException*: 'Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres.'
Merci de votre aide, Tchicken.