Bonjour à tous,
J'utilise pour la 1ère fois les objets ADO pour accéder à une table sous VBA / Access et je suis confronté à un problème (je suppose) de syntaxe.
Voici la partie de code incriminé :
L'obet FIND utilisé dans la ligne de commentaire fonctionne très bien.
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 'Mise à jour enregistrement With RecSet ' LA LIGNE SUIVANTE FONCTIONNE ' .Find "[CleGarantie]=6" Inter = CleDetail ' LA LIGNE SUIVANTE DONNE L'ERREUR : '3001' .Find "[CleGarantie] = [Inter] " If .EOF Then MsgBox "Erreur lecture sur Garantie - Clé : " & CleDetail Exit Sub End If .Fields("Magasin") = Forms![Ecritures Modification].Libelle .Fields("Libelle") = Me!Libellé .Fields("DateDebGarantie") = Forms![Ecritures Modification]!DateTransac .Update End With
Par contre la ligne où j'utilise FIND en chargeant la clé de recherche avec une variable ne fonctionne pas.
L'erreur est : Erreur d'excécution '3001' :
Les arguments sont de type incorrest, en dehors des limites autorisées ou en conflit les unes avec les autres.
Au moment de l'exécution la variable INTER = 6 et est définie en type LONG comme la clé [CleGarantie].
C'est certainement un problème de notation.
J'ai essayé les différents cas suivants :
.Find "[CleGarantie] = [Inter] "
.Find "[CleGarantie] = Inter "
.Find "[CleGarantie] = 'Inter' "
Je vous remercie par avnce de tous renseignements à ce sujet.
Salutations et remerciements par avance.
Partager