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

  1. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
     
    referenceNumber est un string
    0
    1. blux Messages postés 5036 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. 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