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 :

Copier la valeur d'un champ dans un autre si il est vide


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2012
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Copier la valeur d'un champ dans un autre si il est vide
    Bonjour,

    Je désire copier la valeur d'un champ (Y) vers un autre champ (X) si ce champ (X) est vide.
    Donc si X est vide mettre la valeur de Y.

    Je désire faire cela pour toute ma table.

    Et je n'y comprend rien avec les recordset...

    Merci.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Normalement ce type d'opération se fait avec une requête.
    Si tu débutes,

    1- il faut d'abord faire une requête sélection qui te permet de sélectionner les valeurs dont le champX sont vides avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_essai.CHAMPX, T_essai.ID
    FROM T_essai
    WHERE (((T_essai.CHAMPX) Is Null));
    2- ensuite tu transformes ta requête en requête mise à jour (UPDATE) pour mettre à jour les champs vides :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_essai SET T_essai.CHAMPX = [CHAMPY]
    WHERE (((T_essai.CHAMPX) Is Null));
    Et tu exécutes cette requête

    Cordialement
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Futur Membre du Club
    Homme Profil pro
    amateur
    Inscrit en
    Avril 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Canada

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Avril 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut si les deux champs dans la même table
    voici une procedure pour le faire

    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
    29
    30
    31
    32
    Sub champYVerschampX()
    Dim db As Database
    Dim rs As DAO.Recordset
     
    'ouvrir la recordset pour les valeurs de champY
    Set db = CurrentDb
    Set rs = db.OpenRecordset("select * from nomTable where nomChampY = valeurY", dbOpenDynaset)
     
    'boucle sur les enregistrements
    While Not rs.EOF
    'si type du valeurDuCle est numerique
      rs.FindFirst "[nomDuCle] = " & valeurDuCle
    ' ou si type du valeurDuCle est string
      rs.FindFirst "[nomDuCle] = '" & valeurDuCle & "'"
     'si le cle est trouvé
     If Not rs.NoMatch Then
      'si le champX est vide
      If IsNull(rs("nomChampX")) Or rs("nomChampX") = "" Then 'rs("nomChampX") = 0 si champX numerique
        rs.Edit
            rs("nomChampX") = rs("nomChampY")
        rs.Update
       End If
     End If
     rs.MoveNext
    Wend
     
      rs.Close
      Set rs = Nothing
      Set bd = Nothing
     
     
    End Sub

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/05/2016, 12h27
  2. Copier un la valeur d'un champs dans un autre
    Par nomade333 dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/04/2008, 21h44
  3. Copier le résultat d'un champ dans un autre
    Par Smurf94 dans le forum VBA Word
    Réponses: 16
    Dernier message: 02/04/2008, 11h17
  4. Copier les valeurs d'une colonne dans une autre
    Par hochimi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/07/2007, 13h14
  5. Réponses: 2
    Dernier message: 13/06/2007, 12h29

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