IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

MAJ d'un champ dans une boucle [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 273
    Points : 126
    Points
    126
    Par défaut MAJ d'un champ dans une boucle
    Bonjour,

    Je cherche à modifier un champ dans mon code une fois le PDF créé

    Mon champ est 'FLAG' qui est par défaut à 0 (False)
    Mon but est de remplacer la valeur par -1 (True) une fois la facture PDF créée

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    ' Ouvrir la table qui contient les données
        Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT FOURNISSEUR, CARTOUCHE, MAIL, Avoir, FLAG FROM [T_Import PUB]", dbOpenSnapshot)
     
     
        'Génération des visuels
        GenZIPImportPUB
     
        ' Parcourir toute la liste
        While Not rst.EOF
        AvoirPUB = rst.Fields("Avoir")
        FLAGnon = rst.Fields("FLAG")
     
            If FLAGnon = 0 Then
     
                If AvoirPUB = 0 Then
     
                ' Construction du fichier FACTURE à un emplacement précis
                strFichierPDF = repertoiregroupmail & "Facture(s) " & rst("CARTOUCHE") & " " & rst("FOURNISSEUR") & " " & Format(Date, "dd.mm.yyyy") & ".pdf"
     
                ' Construire le filtre
                strFiltre = "[FOURNISSEUR] = """ & rst("FOURNISSEUR") & """" & "And [Avoir] = 0"
     
                ' Imprimer l'état en le filtrant sur le Nom du Fournisseur
                PrintAsPDF strFichierPDF, strEtat, strFiltre
     
                ' Mise à jour du FLAG à -1
                UPDATE rst.Fields("FLAG") = -1
    J'ai essayé plusieurs cas de figure avec UPDATE mais j'ai toujours un message d'erreur
    Je pense que j'utilise mal cette fonction ou alors il faut utiliser une autre syntaxe ???

    Merci pour votre aide
    Cdt

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 548
    Points
    24 548
    Par défaut
    Bonjour,
    Syntaxe très originale.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                ' Mise à jour du FLAG à -1
                UPDATE rst.Fields("FLAG") = -1
    Update est un méthode de la classe DAO.recordset.

    Tu dois déjà commencer par APPRENDRE l'objet recordset avant de le manipuler.

    https://warin.developpez.com/access/...=partie_5#L5-4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT FOURNISSEUR, CARTOUCHE, MAIL, Avoir, FLAG FROM [T_Import PUB]", dbOpenSnapshot)
    Attention aussi à la signification des dbOpen, ils ont un sens précis et donc une utilité. Là tu es en lecture seule. C'est incompatible avec une modification.


    Cordialement,

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 273
    Points : 126
    Points
    126
    Par défaut
    Bonjour LOUFAB,

    Et merci pour tes commentaires
    Je viens de les consulter à l'instant et entretemps j'ai fait de nouvelles recherches et tests, et j'ai trouvé ma solution
    Je la partage pour tous ceux que ça pourrait intéresser

    Pour info, je souhaitais mettre dans mon champ FLAG (Oui/Non) un OUI dès que j'avais imprimé ma facture ou mon avoir en PDF en fonction du strFiltre
    Je devais récupérer la valeur de FOURNISSEUR dans une variable déclarée en début de Fonction ==> Dim FRS as String

    Voilà donc le code que j'ai mis pour cette action et qui fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ' Mise à jour du FLAG à -1
        DoCmd.RunSQL ("update [T_Import PUB] SET FLAG=-1 where FOURNISSEUR = '" & FRS & "' and Avoir=0")
    Belle journée à tous
    Cdt

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 548
    Points
    24 548
    Par défaut
    Si ça te facilite la compréhension tu peux aussi utiliser une requête de mise à jour.

    Je ne te l'ai pas proposé car tu étais parti sur du DAO.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 13/04/2015, 10h18
  2. récupération du nom d'un champs dans une boucle for
    Par tarmo57 dans le forum Débuter
    Réponses: 1
    Dernier message: 07/09/2012, 07h41
  3. copier plusieurs champs dans une boucle php avec javascript
    Par groskanel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/08/2010, 14h47
  4. Récupérer plusieurs champs dans une boucle
    Par poustiquette dans le forum Langage
    Réponses: 3
    Dernier message: 16/04/2010, 09h17
  5. Créer dans une boucle x champs de texte
    Par zaknaou dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 04/04/2008, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo