Requete Update problème !

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,

Je suis nouveau sur le forum j'espère que je poste bien au bon endroit !

Alors je vous montre un bout de code (le contexte ne me semble pas très important pour ma question masi si besoin je le detaillerai)
Pour info quand même, projectnumber est de type intger; dans ma table Correspondances, champ1 est de type intger et champ2 est de type OUI/NON

Private Sub updateEdit()

Dim i As Integer

For i = 0 To DMax("projectNumber", "Projet")
If Me![sfmTestListeProjet]![ProjectNumber] = i Then
CurrentDb.Execute "Update Correspondances Set champ2 = True WHERE champ1 = " + i
End If
Next i
End Sub

Le problème c'est que j'ai une erreur de type Erreur d'execution 13 : Incompatibilité de type.

J'ai testé avec
CurrentDb.Execute "Update Correspondances Set champ2 = True WHERE champ1 = 1"
Et ça marche sans problème.

Je ne comprend pas ce qui ne vas pas. Si quelqu'un pouvait m'aider je serais très reconnaisssant.

Merçi d'avance


A voir également:

6 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 714
 
Bonjour,

CurrentDb.Execute "Update Correspondances Set champ2 = True WHERE champ1 ='" & i & "';"
1
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Juste à propose de cette structure, elle marche très bien pour i INTEGER. Cependant elle ne marche pas pour les String, j'ai essayé diférentes combinaisons sans succès. Y a-t-il aussi une syntaxe simple de la forme précédente ?
0
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup f894009, ta syntaxe marche à merveille, mais je ne peut pas en dire autant de mon code. J'aimerais que mon code a chaque i, parcourt tous les Me![sfmTestListeProjet]![ProjectNumber]. Or la des qu'il en trouve 1, il s'arrête. J'ai l'impression que pour parcourir tous mes projectNumber qui sont dans mon sousformulaire il faut que je pâsse par un recoidset.

Est ce bien le cas ? Si oui comment dois je m'y prendre (j'ai tenté quelques trucs mais j'ai vraiment du mal avec les recordsets...) . OU y a-t-il une autre solution ?

Merci d'avance !
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 714
 
Bonjour,

Me![sfmTestListeProjet]![ProjectNumber] est-ce un champ de formulaire ??? Comment est rempli ce formulaire
0
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
En fait c'est bon , je m'y prenais super mal pour parcourir mon sous formulaire. Voila mon nouveau code

Private Sub caseSelected()

    Dim i As Integer
    Dim rsProj As DAO.Recordset
    Set rsProj = Me.sfmCorrespondanceProjet.Form.Recordset

    Do While Not rsProj.EOF
        i = rsProj("ProjectNumber")
        CurrentDb.Execute "Update Correspondances Set champ2 = True WHERE champ1 =  " & i & ";"
        rsProj.MoveNext
    Loop

End Sub

Le problème de ce code c'est que je l'appelle sur le clique d'un bouton. Il m'update le sous fomulaire relié à la table Correspondances, mais les case a cocher ne se cochent pas automatiquement. C'est assez étrange, il faut que je passe ma souris sur la case pour qu'elle se coche (sans cliker).
Quelqu'un serait me dire pourquoi et comment réparer ça ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 714
 
Re,

il faut rafraichir l'affichage de votre formulaire a la fin de votre boucle.
0
jujubas Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merçi f894009 pour ton aide tout marche à merveille.
0