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

IHM Discussion :

Faire écrire quelque choses dans une zone de texte en cliquant sur un bouton [Débutant(e)]


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Faire écrire quelque choses dans une zone de texte en cliquant sur un bouton
    Bonjour, je suis débutant avec access et j'aimerais savoir s'il y a un moyen de faire un bouton de commande et que en cliquant sur se bouton, un mot s'affiche dans la zone de texte active. Une sorte de copier coller en fait.

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    pour répondre strictement à ta question :

    Dans l'événement Sur Click du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.maZoneCible="Mon Texte"
    mais si tu veux vraiment faire un copier/coller, il faut regarder du côté de l'objet clipboard.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pour accéder au controle actif :

    Screen.ActiveControl.value="titi"

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre aide mais je suis connais vraiment pas grand choses dont je comprend que dalle. Je comprend que ce que je demande n'est probablement pas de mon niveau.

    Mais sinon je vais tenter de mieux décrire ma situation et vous pourrez p-e me donner une marche a suivre plus facile.

    Donc j'ai une grille d'emplacement faite de zone de texte et j'aimerais avoir des bouton qui permette d'écrire la date ou les emplacement seron libre les boutons serait le nombre de jour et ce qui apparaitrait dans la fenetre serait la date correpondante.

    Donc en concret, je veux un bouton qui lorsqu'on clic dessu inscrit le texte (=Date()+1) ou +2,3... dans la cellule active

    merci de m'aider

  5. #5
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    Pour chaque zone de texte que tu veux remplir, il faut que tu fasse une ligne de code pour la remplir en VBA et bien connaitre leurs noms.

    Tu dois creer un bouton de commande (l'icone qui ressemble a un rectangle rectangle en perspective), zappe l'utilitaire de creation de commande parce que ce que tu veux n'est pas dans la liste des choix! (deselectionne avant l'icone baguette magique en haut)

    Ensuite tu fais click droit sur le bouton, et fais "Build" (j'ai Access en anglais, je suppose que c'est Construire, ou quelque chose comme ca, tout en haut!) et choisis Code Builder.

    Ca va t'ouvrir une nouvelle fenetre de code VBA ou tu vas rentrer toutes les lignes de code: normalement tu atteris entre 2 lignes "Private Sub nomcommande_OnClick()" et "End Sub", tout ca c'est la fonction a declencher quand tu cliques sur le bouton, il faut donc ecrire entre ces deux lignes.

    Il faut que tu connaisses les noms de chaque zone de texte pour les utiliser la, par exemple si tu veux la valeur qu'il y a dans la zone de texte DateDepart, c'est "DateDepart.Value"
    Tu n'as donc qu'a ecrire ce que tu veux mettre comme valeur pour chaque champ, par exemple si tu veux que ta zone de texte NomZonedeTexte1 soit a DateDepart+1, Nomzonedetexte2 soit a DateDepart+3... il faut ecrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub NomCommande_OnClick()
     
    NomZonedeTexte1.Value = DateDepart.Value + 1
    NomZonedeTexte2.Value = DateDepart.Value + 3
    ...
    End Sub
    Apres tu n'as plus qu'a fermer la fenetre VBA et voila! Par contre si tu veux que la valeur soit la date courante + 1 jour, Date()+1 ne marchera pas, il faut utiliser =DateAdd("d",1,Now()) (ajouter 1 fois "d" [day] a la date Now() )

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci, ca fonctionne quand je dit le nom du champ ou je veut qu'il soit écrit mais est-ce qu'il y a une commande qui dit (écrit le dans la zone ou est le curseur)

    et aussi comment je formate la date a mon gout, de préférence (jour,mois) seulement

    Merci grandement pour votre aide c'est le premier forum ou les gens sont pret a aider les ''noob''

  7. #7
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut,

    Si directement tu veux formater la date dans une zone de texte, tu affiche les propriétés de la zone de texte (Affichage, Propriétés [plus classique]), Onglet Format, Propriété Format, tu mets jj/mm.

    Si par programmation, tu veux placer des données formatées selon jj/mm, tu peux écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    champ=Format(variable,"dd/mm")
    En espérant t'avoir aidé. A+
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    ok et puis pour la commande qui permet d'écrire dans la zone active, quelcun sais ??

  9. #9
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    Tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.Activecontrol =  valeuraajouter

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Donc quand je fait exemple

    NomZonedeTexte1.Value =DateAdd("d",1,Now())

    mais quand j'écrit

    Me.Activecontrol =DateAdd("d",1,Now()) ou Me.Activecontrol.Value =DateAdd("d",1,Now())

    ca me donne un message d'erreur:

    erreur d'execution '438'
    propriété ou méthode non gérer par cet objet

    Quelcun a une idée ???

    ensuite, une autre petite question, losequ'on tape quelque choses dans la zone de texte et qu'on fait rafraichir pour que ce texte aparaisse sur les autre ordinateur connecter a la base. J'ai remarquer que le partage se fait via la table correspondante. Mais le texte transfert mais pas la conleur qu'on a appliquer a la zone de texte. Est-ce qu'il y aurais un moyen de partager la couleur de la zone en meme temps que le texte?

  11. #11
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    En fait si tu cliques sur un bouton et que c'est sur le click que tu utilises Me.ActiveControl, c'est le bouton et non pas le champ qui est le controle en cours... donc il n'arrive pas a affecter la valeur au bouton sur lequel tu cliques! Je ne sais pas trop ce que tu peux faire...

    Pour la couleur, comment fais-tu pour ecrire en couleur dans les zones de texte? Je ne savais meme pas qu'on pouvait donc je ne pourrai pas t'aider la dessus non plus!

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    euh, bien avec les controle simillaire que l'on retrouve dans tout les logiciel office

  13. #13
    Invité
    Invité(e)
    Par défaut


    Il faut ajouter à ton bouton l'évènement souris déplacer,
    ce qui fait que lorsque tu pointe le cuseur de ta souris sur le bouton, avant même que tu es cliqué, tu peux récupérer le nom de ton dernier control actif !

    En entête de ton module il faut définir la variable qui contiendra le nom de ton controle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Option Compare Database
    Option Explicit
    Dim CtrActif As String
    Ensuite dans ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub NomBouton_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     ' Empècher les messages d'erreur intempestif
      On Error Resume Next
      ' Avant d'exécuter click, il faut déterminer dans quel controle on se trouve
      CtrActif = Screen.ActiveControl.Name
      On Error GoTo 0
    End Sub
    Voilà

  14. #14
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut benasp,
    Dans la zone de déclaration, il faut déclarer une variable qui va recevoir le contrôle zone de texte
    A toi de trouver un événement pour recueillir le contrôle zone de texte active (de préférence avant que le focus passe sur le bouton) et
    ajoutes-y le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    On Error Resume Next 'Une erreur survient lorsque le contrôle actif n'est pas une zone de texte donc poser le code à un événement associé à une zone de texte par exemple Sur sortie
    Set ctl = Me.ActiveControl
    Puis à l'événement sur clic du bouton,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ctl.Value = ce que tu veux
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi!
    Albert Einstein

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2020, 23h20
  2. Réponses: 4
    Dernier message: 18/10/2013, 14h38
  3. Supprimer le texte d'une zone de texte en cliquant sur un bouton ?
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2008, 13h53
  4. [VBA-W][VBA-E]Remplacer ou écrire 1 texte dans une zone de texte
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/04/2007, 10h31
  5. Faire apparaitre un DIV dans une zone différente
    Par ThomasH dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 23/10/2006, 14h45

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