Requête Update

Résolu/Fermé
gaudian Messages postés 62 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 12 septembre 2007 - 24 juil. 2007 à 13:24
gaudian Messages postés 62 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 12 septembre 2007 - 26 juil. 2007 à 09:39
Bonjour,

Je souhaiterai modifier un enregistrement dans une colonne sans modifier les autres
Voici mon bout de code

Set DB1 = DBEngine(0)(0)
  Set RS1 = DB1.OpenRecordset("03_req_Resultat_1") 'Permet d'utiliser les enregistrements de tb_Resultat_1
  Set RS2 = DB1.OpenRecordset("04_req_SauvegardeTemporaire") 'Permet d'obtenir le n° Opération Transfert
  Set RS3 = DB1.OpenRecordset("02_ReqPourResultat") 'REQUETE A MODIFIER 'Requête qui en fonction de l'operation depotage prend la date la plus ancienne
  
  RS1.MoveFirst   'tb_Resultat_1
  RS2.MoveFirst   'tb_SauvegardeTemporaire
  
  'RS1
  MsgBox (Trim(RS1.Fields("NumOperationTransfert")))
  'RS2
  MsgBox (Trim(RS2.Fields("NumOperationTransfert")))
  
  Do Until RS2.EOF
      Do Until RS1.EOF
          'Si le  N°opération de tb_Resultat_1 <> N°opération de tb_SauvegardeTemporaire
          If Trim(RS1.Fields("NumOperationTransfert")) = Trim(RS2.Fields("NumOperationTransfert")) Then
                  'On ajoute :
                      'Non : si l'operation transfert non exclus
                      'Oui : si l'operation transfert exclus
                  SQL = "UPDATE tb_Resultat_1 SET recoup_used = 'oui' " & _
                        "WHERE (" & Trim(RS1.Fields("NumOperationTransfert")) = Trim(RS2.Fields("NumOperationTransfert")) & ")"

  
                  DoCmd.SetWarnings False
                  DoCmd.RunSQL SQL
  
                  'Ensuite on passe à l'enregistrement suivant
                  RS1.MoveNext
          ElseIf Trim(RS1.Fields("NumOperationTransfert")) <> Trim(RS2.Fields("NumOperationTransfert")) Then
                  SQL = "UPDATE tb_Resultat_1 SET recoup_used = 'non'" & _
                        "WHERE (" & Trim(RS1.Fields("NumOperationTransfert")) <> Trim(RS2.Fields("NumOperationTransfert")) & ")"
  
                  DoCmd.SetWarnings False
                  DoCmd.RunSQL SQL
  
                  'On passe à l'enregistrement suivant
                  RS1.MoveNext
          End If
      Loop
      RS1.MoveFirst
      RS2.MoveNext
  Loop
  
  RS2.Close
  RS1.Close


Ma variable SQl prend la valeur "Vrai" et un message d'erreur me dit qu'il attend soit un SELECT, UPDATE, etc.

Aidez moi à trouver et/ ou à corriger mon erreur, merci d'avance
A voir également:

3 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 juil. 2007 à 15:15
Bonjour,

Dans tes requêtes Update, les comparateurs de la clause WHERE ne sont pas inclus dans la chaine de caractère : il faut que tu remplaces = par &"="& et <> par &"<>"&

Xavier
0
gaudian Messages postés 62 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 12 septembre 2007 3
24 juil. 2007 à 16:16
c'est bon pour cela mais maintenant il modifie 2 fois mes enregistrements cela vient des 2 boucles DO

Mais je ne sais pas comment faire pour parcourir tous les enregistrements de 2 tables
la 1ère contient :
-NumOperationTransfert
la 2ème contient :
-NumOperationTransfert
- et plein d'autres enregistrements

Je souhaite comparer les 2 NumOperationTransfert si les deux NumOperationTransfert sont identique je meet oui sinon je met non

Peux tu m'aider
0
gaudian Messages postés 62 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 12 septembre 2007 3
26 juil. 2007 à 09:39
problème résolu
0