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 :

Mettre automatiquement un focus apres un evenement de flashage [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut Mettre automatiquement un focus apres un evenement de flashage
    Bonjour
    J'ai un formulaire qui contient :
    - un texte_box1
    - 3 sous formulaires A B et C
    - un sous formulaire D avec 3 CAB
    Dans ce sous formulaire D, lorsque je flashe le 1er CAB celui-ci s'affiche dans le texte_box1 et des donnees apparaissent ensuite dans le sous formulaire A.
    Le soucis est que, lorsque je dois flasher le deuxieme CAB, je dois d'abord cliquer sur le texte_box1 afin que le CAB s 'affiche bien dans le texte_box1...ensuite des donnees apparaissent dans le sous formulaire B.
    Et rebelotte, pour le flashage du troisieme CAB , je dois de nouveau cliquer dans le texte_box pour que le CAB s'affiche dans ce texte_box1 et ensuite les donnees apparaissent dans le sous formulaire C.

    Ma question est la suivante, comment puis je m y prendre pour que , apres chaque evenement de flashage, le focus se met automatiquement sur le texte_box1 ?
    Merci de votre aide

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    Qu'est-ce que tu entends par flashage et c'est quoi les CAB ?
    Est-ce que tu as des codes qui se lancent après tes "flashage" ?
    Vu qu'à priori c'est un problème de rafraichissement, il faudrait lancer un Requery sur ton txtbox_1 et sur les formulaires après les "flashage".

    Après, il nous faudrait les bouts de code pour plus d'information.

    Cordialement,

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Bonjour madefemere
    Oublions le flashage ...On me demande maintenant de ne plus flasher les CAB mais plutôt cliquer sur les lignes des listes box qui compose mon formulaire.
    Je me heure à un obstacle, comment, dans un même formulaire, transferer une ligne selectionnée d'une listebox1 vers une listebox2 en sachant que aprés ce transfert, la ligne selectionnée disparait de la listebox1 ( et bien evidemment, elle s'afficherait dans ma listebox2).
    Merci

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonsoir,

    La page ICI des sources DU SITE devrait de donner un début de solution.

    Tu nous dis si t'as un problème.

    Cordialement,

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Ok madefemere
    je vais parcourire ce tuto et je reviens vers toi si je bloque toujours...

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 247
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 247
    Par défaut
    Salut madefemere,
    Super le tuto, j'ai pu reussir a creer mes deux listes box avec la possibilite de transferer une ligne selectionnee d'une liste box a une autre.
    Mais ce tuto est fait pour des cas simples....
    Je me heurte maintenant a une difficulte ( et il va en avoir d'autes je crois..) mais essayons de resoudre une probleme a la fois.

    Sur ma ListeBox_ Source (intitulee Liste_VracArrivee), lorsque je selectionne une ligne pour la transferer sur ma ListeBox_Destination ( intitulee Liste_ArriveeQuai ), je souhaiterais voir apparaitre un inputbox qui me demanderait l heure d'arrivee reelle (format hh:mm). Apres avoir entre cette heure reelle dans l inputbox, cette heure s'afficherait dans la ligne qui se trouverait dans la Listebox_destination.
    Et dans le cas d'une erreur de selection, ou je voudrais retransferer la ligne dans la ListeBox_Source, le champ "heure d'arrivee" disparaitrait.
    Je sais que je dois t en demander beaucoup...

    Ci dessous, tu trouveras les codes VBA de formulaire (pour ne pas alourdir la lisibilte des codes, je n'aie mis que ceux qui concernent ce cas precis)

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Private Sub Form_Open(Cancel As Integer)
    'Agrandi la fenetre au maximum
    DoCmd.Maximize
    'Ajuste l 'affichage de la page à la taille de l'écran
    appui_touche (90)
     
     
    Dim txt_ChaineSQL As String
    Dim Liste_VracArrivee As ListBox
    Dim Liste_ArriveeQuai As ListBox
     
    With Me.Liste_VracArrivee
        .ColumnHeads = True
        .ColumnCount = 7 ' nombre de colonne que dois avoir la listebox
        .BoundColumn = 1 ' la colonne de reference
        .RowSource = "Table/Requête"
     
     
    StrSQLSELECT = "SELECT tb_Liaison.No_Liaison, tb_ProvDest.Nom_Ville, tb_TypeLiaison.Type," & _
                 "tb_FrequenceLiaison.Frequence, tb_Liaison.Heure_Theo, tb_Remorque.No_remorque, tb_Liaison.Commentaires," & _
                 "tb_Liaison.Selection"
     
    strSQLFROM = "FROM tb_FrequenceLiaison INNER JOIN (tb_ProvDest INNER JOIN (tb_TypeLiaison INNER JOIN" & _
                "(tb_Remorque INNER JOIN tb_Liaison ON tb_Remorque.id_remorque=tb_Liaison.No_Remorque) ON " & _
                "tb_TypeLiaison.id_TypeLiaison=tb_Liaison.Mvt_Type) ON tb_ProvDest.id_ProvDest=tb_Liaison.Prov_Dest)" & _
                "ON tb_FrequenceLiaison.id_TypeFrequence=tb_Liaison.Freq_Type"
     
    strSQLWHERE = "WHERE NOT Selection;"
     
    txt_ChaineSQL = StrSQLSELECT & vbCrLf & _
                    strSQLFROM & vbCrLf & _
                    strSQLWHERE
     
     
        .RowSource = txt_ChaineSQL
        .Requery
      'Debug.Print txt_ChaineSQL
     
    End With
     
    With Me.Liste_ArriveeQuai
        .ColumnHeads = True
        .ColumnCount = 7 ' nombre de colonne que dois avoir la listebox
        .BoundColumn = 1 ' la colonne de reference
        .RowSource = "Table/Requête"
     
    StrSQLSELECT = "SELECT tb_Liaison.No_Liaison, tb_ProvDest.Nom_Ville, tb_TypeLiaison.Type," & _
                 "tb_FrequenceLiaison.Frequence, tb_Liaison.Heure_Theo, tb_Remorque.No_remorque, tb_Liaison.Commentaires," & _
                 "tb_Liaison.Selection"
     
    strSQLFROM = "FROM tb_FrequenceLiaison INNER JOIN (tb_ProvDest INNER JOIN (tb_TypeLiaison INNER JOIN" & _
                "(tb_Remorque INNER JOIN tb_Liaison ON tb_Remorque.id_remorque=tb_Liaison.No_Remorque) ON " & _
                "tb_TypeLiaison.id_TypeLiaison=tb_Liaison.Mvt_Type) ON tb_ProvDest.id_ProvDest=tb_Liaison.Prov_Dest)" & _
                "ON tb_FrequenceLiaison.id_TypeFrequence=tb_Liaison.Freq_Type"
     
    strSQLWHERE = "WHERE Selection;"
     
    txt_ChaineSQL = StrSQLSELECT & vbCrLf & _
                    strSQLFROM & vbCrLf & _
                    strSQLWHERE
     
     
        .RowSource = txt_ChaineSQL
        .Requery
      'Debug.Print txt_ChaineSQL
    End With
     
    End Sub
    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
    33
    Private Sub TransposerElement(Liste_VracArrivee As ListBox, Liste_ArriveeQuai As ListBox, _
      Optional LimiteSelection As Boolean = True, Optional bolSelection As Boolean = True)
     
    Dim i As Integer
    Dim Db As DAO.Database
    Set Db = CurrentDb
     
    With Liste_VracArrivee
    'S'il ne faut déplacer que les élements sélectionnés,
    If LimiteSelection Then
     For i = 0 To .ListCount - 1
      'si l'élement est sélectionné dans la liste source,
      'inverse le champ selection
      If .Selected(i) Then
     
        Db.Execute "UPDATE Rq_tb_Liaison SET Selection= NOT Selection WHERE  No_Liaison=" & _
         Chr(34) & .Column(0, i) & Chr(34)
     
     
      End If
     Next i
    'sinon, permutte la globalité
    Else
    Db.Execute "UPDATE Rq_tb_Liaison SET Selection=" & CInt(bolSelection)
     
     
    End If
    'Rafraichit la zone de liste source
    .Requery
    End With
    'Rafraichit la zone de liste destination
    Liste_ArriveeQuai.Requery
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub GaucheDroite_Click()
    'Copie les élements sélectionnés vers la liste de droite
     
    TransposerElement Liste_VracArrivee, Liste_ArriveeQuai
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Copie les élements sélectionnés vers la liste de gauche
    Private Sub DroiteGauche_Click()
    TransposerElement Liste_ArriveeQuai, Liste_VracArrivee
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/04/2015, 16h43
  2. Réponses: 1
    Dernier message: 15/12/2014, 10h47
  3. Réponses: 19
    Dernier message: 23/02/2008, 19h19
  4. Réponses: 3
    Dernier message: 27/04/2006, 16h29
  5. Lancer automatiquement un programme après connexion Internet
    Par sunshine dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 27/05/2005, 22h18

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