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

Access Discussion :

Agir sur un champ par la saisie d'un autre champ


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Par défaut Agir sur un champ par la saisie d'un autre champ
    Bonjour, je bloque sur un truc tout simple mais comme je ne maîtrise pas trop le code...
    Voilà, j'aimerais que lorsque je saisis une donnée dans le champ1 d'un formulaire et que ce champ était vide avant et bien qu'un champ2 soit automatiquement rempli. Attention, je ne veux pas que le champ2 soit rempli si on fait un simple clic dans le champ1! Il faut vraiment que le champ1 soit saisi.
    Pour le moment, j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Champ1_Enter()
    If Me.Champ1 = "" Then
    Me.Champ2 = "Saisi le " & Date
    End If
    End Sub
    Mais rien ne se passe lorsque je rentre quelque chose dans le champ1! Ce qui est sans doute normal car je saisis quelque chose entre temps!
    Merci de votre aide!

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,
    Essaie plutôt sur l'évènement "Sur perte focus".

  3. #3
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Essaie de placer ton code sur la propriété Après MAJ.

    Et je ne suis pas sûr d'avoir très bien compris. Pourquoi fais-tu un test pour savoir si le champ1 n'était pas renseigné au préalable ?

    Bonne journée.

    Domi2

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Par défaut
    Bonne question! A la base en fait, j'aimerais que ce champ2 se mette à jour si le champ1 est soit saisi une première fois, soit modifié. Or pour la modif, j'y arrive en faisant une procédure évenementielle "sur changement". Je voulais donc m'attaquer au problème de la première saisie dans le champ car malheureusement la procédure "sur changement" ne fait rien si on passe d'un champ vide à un champ rempli! C'est pour cela que je testai si le champ1 était vide ou pas!
    Bref, je galère...
    Sinon, j'ai essayé vos solutions mais ça ne marche pas non plus!
    Du coup, je me suis rabattue sur quelque chose du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ReponseDevisClient_GotFocus()
    a = Me.ReponseDevisClient
    End Sub
     
    Private Sub ReponseDevisClient_LostFocus()
    b = Me.ReponseDevisClient
    If a <> b Then
    Me.DatesaisieReponseDevisClient = "Saisi le " & Date
    End If
    End Sub
    Mais même lorsque a=b il met à jour le champ2! J'ai pourtant bien vérifié avec des msgbox les valeurs de a et b et elles sont identiques...
    Help.........

  5. #5
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Je viens de tester cette simple ligne de code sur la propriété Après MAJ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Texte1_AfterUpdate()
     
        Me.Texte2 = "Saisi le " & date
     
    End Sub
    Et ça fonctionne correctement si j'ai bien compris ce que tu cherches.

    Si Texte1 est Null, Texte2 se met à jour.

    Si Texte1 n'est pas Null, Texte2 se met à jour aussi.

    Domi2

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Par défaut
    Hello, je viens de tester: ça marche si je modifie le champ1 mais pas si j'entre quelque chose pour la première fois dans le champ1!!
    C'est quand même bizarre non!

  7. #7
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Re,

    Oui, bizarre...

    Tu utilises bien la propriété Après MAJ ?

    Pour le surplus, il serait bon de vérifier que le champ1 n'est pas Null

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Texte1_AfterUpdate()
     
        If Not IsNull(Champ1) Then
     
            Me.Texte2 = "Saisi le " & date
     
        End If
     
    End Sub
    Domi2

Discussions similaires

  1. [Lazarus] Agir sur un composant par ses coordonnées
    Par sebBastien dans le forum Lazarus
    Réponses: 8
    Dernier message: 11/09/2014, 19h20
  2. [AC-2010] Forcer la saisie d'un champ en fonction valeur d'un autre champ
    Par eric0512 dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/02/2012, 17h43
  3. [WD14] Position d'un champ de saisie dans un autre champ de saisie
    Par DanielB dans le forum WinDev
    Réponses: 24
    Dernier message: 04/05/2011, 11h56
  4. Réponses: 1
    Dernier message: 17/02/2011, 11h08
  5. Réponses: 1
    Dernier message: 06/10/2008, 09h53

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