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 :

InputBox pour remplir un champ dans TOUS les enregistrements filtrés [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 102
    Points : 72
    Points
    72
    Par défaut InputBox pour remplir un champ dans TOUS les enregistrements filtrés
    Bonjour à tous.
    Ce que je souhaite semble assez simple mais je n'arrive pas à trouver mon bonheur dans les discussions que j'ai regardées.

    J'ai un formulaire avec un champ "filtre" et un champ "truc".
    Je voudrais un code qui remplisse automatiquement le champ "truc" dans TOUS les enregistrements préalablement filtrés, avec une valeur rentrée via une inputbox.

    Suis-je assez clair ?

    Merci de votre aide.

  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
    Bonsoir,

    C'est possible en utilisant le RecordSet du formulaire filtré et en le parcourant.
    Sur l'évènement Sur click d'un bouton, on peut avoir un code du genre :

    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
    Private Sub btnmajtruc_Click()
    Dim valtruc As String
    valtruc = InputBox("Donner la nouvelle valeur !")
    If Len(valtruc) > 0 Then
        With Me.Recordset
            If .RecordCount > 0 Then
                .MoveFirst
                While Not .EOF
                    .Edit
                    ![Truc] = valtruc
                    .Update
                    .MoveNext
                Wend
            End If
        End With
    End If
    End Sub
    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
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 102
    Points : 72
    Points
    72
    Par défaut
    Super, c'est ce que je voulais.
    Juste un petit perfectionnement : si le recordset a beaucoup d'enregistrements (c'est souvent mon cas), la macro prends du temps. N'est-il pas possible d'éviter l'effet "stroboscopique" des enregistrements qui défilent, comme dans Excel avec Application.ScreenUpdating = False ?

    Merci.

  4. #4
    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,

    C'est le souci dans la mise à jour en visuel du Recordset d'un formulaire (surtout quand on a beaucoup de données).
    Essaies d'utiliser la méthode Echo pour neutraliser ce scintillement.

    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

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur (improvisé) de base de données
    Inscrit en
    Décembre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur (improvisé) de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2014
    Messages : 102
    Points : 72
    Points
    72
    Par défaut
    Ouaiiiiis, génial !

    En plus ça rend presque instantanée l'exécution de la macro ! C'est vraiment tout bénèf : avant le processus était très ralenti par l'affichage d'une image dans un champ OLE de mon formulaire.

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/01/2015, 13h16
  2. [AC-2007] Copie d'un champ dans tous les enregistrements (même champ)
    Par toumack dans le forum IHM
    Réponses: 6
    Dernier message: 26/09/2009, 23h31
  3. Pb pour remplir un champs dans un état.
    Par pedrolahn dans le forum IHM
    Réponses: 9
    Dernier message: 09/01/2009, 16h46
  4. Réponses: 4
    Dernier message: 18/08/2008, 15h11
  5. Réponses: 9
    Dernier message: 01/02/2007, 11h36

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