Requete avec variable

Résolu
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans mon code VBA j'aimerais utiliser une requete qui contient une variable. Je vous montre le code de la fonction


Private Sub updateCases()

    Dim i As String
    Dim rsProj As DAO.Recordset
    Set rsProj = Me.sfmListeComponentsUsed.Form.Recordset
    Do While Not rsProj.EOF
        i = rsProj("referenceNumber")
       CurrentDb.Execute "Update Components Set choix = True WHERE referenceNumber =' " & i & "' ;"
        rsProj.MoveNext
    Loop
End Sub


Vous vous en doutez ça ne marche pas j'ai une incompatibilité de type. Cette structure marche pour i Integer, quelqu'un serait comment faire pour i String ?

Merci d'avance !

2 réponses

blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

referencenumber est de quel type ? Car s'il est numérique, il n'y a pas besoin de simple-quote. Mais dans ce cas, i doit être décrit en numérique (entier long, par exemple).
0
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
referenceNumber est un string
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Tu as deux "referencenumber' : celui de la table que tu veux mettre à jour et celui qui est renvoyé par le recordset (champ du formulaire que tu es en train de parcourir). Sont-ils de même type ?

Si tu remplaces ton i dans ton .execute directement par rsProj("referenceNumber"), ça dit quoi ?

Pourrais-tu voir si un i = cstr(i) avant ton .execute provoque quelque chose de plus (message d'erreur ?).
0
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bon blux et merçi beaucoup j'ai réussi à trouver la solution (grâce à toi), un des deux reference number n'était pas du bon type (string) et la syntaxe que j'ai utlisé marche finalement.
0