Requete avec variable

Résolu
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

  1. Modérateur
    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).
    1. referenceNumber est un string
      1. Modérateur
        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 ?).
      2. 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.