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 :

Recopier valeur d'un champs dans toutes les lignes d'une requête


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Recopier valeur d'un champs dans toutes les lignes d'une requête
    Bonjour,

    Dans une requête, j'utilise un filtre numérique pour identifier des lignes reliées à un même projet.
    Lorsque je ferme mon projet, j'aimerais que la date de fin de projet soit recopiée dans toutes les lignes correspondantes.
    Est-il possible d'avoir quelque chose du genre:
    Nom requête = R_x
    Avec comme colonnes : Nom_Projet | Description | Date_Fin

    Code VBA sur Après mise à jour de la date de fin de projet, recopier la valeur "Date_Fin" dans toutes les lignes de la requête.

    Mon problème actuel est que la date de fin s'inscrit uniquement dans ma première ligne de ma requête.

    Merci.

    Laurent.

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    On ne met pas à jour les données d'une requete mais les données de la table sélectionnées dans la requete.
    Une fois cela dit, il est plus facile de comprendre la problématique.

    Sur quel critère sont sélectionnés les enregistrements qui doivent être mis à jour ?
    Tu peux donc ensuite utiliser une requete de type Mise à jour pour modifier la valeur dans le champ correspondant (ici Date de Fin)
    Ou le faire via VBA par une instruction :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE NomTable SET Champ = Valeur WHERE Critere
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Bonjour Jeannot45,

    J'ai réussi à faire fonctionner ma requête mise à jour.
    Merci pour ton aide.
    J'ai juste un autre problème. J'essaie d'ajouter la même procédure pour recopier un champs texte, mais à chaque fois j'ai une fenêtre qui apparaît et qui me demande d'entrer une valeur de paramètre.
    Ci-dessous ma requête. Le champs qui pose problème est le champs Commentaires.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_Master SET T_Master.CE_Statut = [Formulaires]![F_Consultation]![SF_Consultation].[Formulaire]![Modifiable247], T_Master.CE_Raison_du_report = [Formulaires]![F_Consultation]![SF_Consultation].[Formulaire]![Modifiable251], T_Master.CE_Raison_Annulation = [Formulaires]![F_Consultation]![SF_Consultation].[Formulaire]![Modifiable253], T_Master.Commentaires = [Formulaires]![SF_Consultation]![me].[Texte249]
    WHERE (((T_Master.Clé_Regroupement)=[Formulaires]![F_Consultation]![Tbo_ID]));
    La mise à jour est-elle possible uniquement sur des valeurs numériques? Le champs commentaires est paramétré à Texte Long dans ma table.

    Merci.

    Laurent.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonsoir,
    c'est la syntaxe pour le sous-formulaire qui n'est pas correct pour ce champ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T_Master.Commentaires = [Formulaires]![SF_Consultation]![me].[Texte249]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T_Master.Commentaires = [Formulaires]![SF_Consultation]![Formulaire].[Texte249]
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Bonjour tee_grandbois,

    Je viens de modifier pour ceci, mais j'ai toujours la fenêtre qui s'affiche et me demande d'entrer une valeur de paramètre Formulaires!SF_Consultation!Formulaire.Texte249.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_Master SET T_Master.CE_Statut = [Formulaires]![F_Consultation]![SF_Consultation].[Formulaire]![Modifiable247], T_Master.CE_Raison_du_report = [Formulaires]![F_Consultation]![SF_Consultation].[Formulaire]![Modifiable251], T_Master.CE_Raison_Annulation = [Formulaires]![F_Consultation]![SF_Consultation].[Formulaire]![Modifiable253], T_Master.Commentaires = [Formulaires]![SF_Consultation]![Formulaire].[Texte249]
    WHERE (((T_Master.Clé_Regroupement)=[Formulaires]![F_Consultation]![Tbo_ID]));
    Est-ce dû au contenu du champs, qui est du texte et non pas un chiffre.
    Pour les champs modifiable247 et 253, ce sont des clés étrangères, qui renvoient une valeur numérique. Çà fonctionne bien pour ces 2 champs là, mais quand j'essaie d'ajouter le champs commentaires qui n'est pas une valeur numérique de clé étrangère, il me demande d'entrer une valeur de paramètre.

    C'est bizarre.

    Merci pour ton aide.

    Laurent.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Petit update!

    Ça vient de fonctionner.
    J'avais une macro pour lancer la requête mise à jour qui nécessitait d'être modifiée.
    Je ne suis pas familier avec ça, et j'avais recopié sans être trop sûr de comprendre.
    Bref, j'ai modifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery "Requête2", acViewNormal, acEdit
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery "Requête2"
    Et ça a fonctionné.

    Merci beaucoup.
    Bonne journée.

    Laurent.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonsoir,
    super.
    N'oublie pas le bouton
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. [2008R2] Modifier un champ dans toutes les tables d'une BD
    Par SINFOGD dans le forum Développement
    Réponses: 5
    Dernier message: 28/10/2014, 14h33
  2. ajouter un champ dans toutes les tables
    Par silene dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2012, 17h33
  3. Réponses: 8
    Dernier message: 10/01/2012, 17h44
  4. [AC-97] Remplir "vite" un champ dans tout les records.
    Par Jazz_ dans le forum Modélisation
    Réponses: 3
    Dernier message: 30/07/2010, 12h37
  5. Réponses: 6
    Dernier message: 19/02/2007, 14h34

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