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 :

Deselectionner un enregistrement d'une listebox


Sujet :

VBA Access

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut Deselectionner un enregistrement d'une listebox
    Bonjour,

    Avec l aide de madefemere (que je salue en passant),j ai cree un formulaire access qui contient 4 liste box.
    Le but de ce formulaire est de selectionner un enregistrement de la liste box 1 et de le transferer d une liste box a une autre et a chaque transfere de nouvelle donnees sont referencees (avec possibilite de revenir en arriere en cas d 'erreur)
    A a fin, la listebox 4 contient les enregistrements avec toutes les donnees souhaitees.
    Tout fonctionne a merveille.

    Mais je suis me suis rendu compte d un probleme qui me gene et qui risque de pertuber mes collaborateurs : je peux selectionner en meme temps un enregistrement sur chacune des 4 listebox. Or c est ce que je ne veux pas...
    Ce que j aimerais c'est ne pouvoir selectionner qu un seul enregistrement a la fois parmi les 4 listebox :
    Par exemple, si je selectionne un enregistrement contenu dans la listebox 2 et que je souhaite, pour x raisons, selectionner un enregistrement sur une autre listebox, cela a pour consequence la deselection de l'enregistrement contenu dans la listebox 2

    Voila ce que se passe actuellement
    Imaginez que la listebox 2 contiennent 2 enregistrements .
    Je selectionne un des deux enregistrements pour le transferer sur la listebox 3.
    je selectionne ensuite cet enregistrement contenu dans la liste box 3 pour le transferer dans la listebox 4.
    Et la je me rend compte que je me suis trompe dans l'enregistrement qui reste dans la listebox2. Je le selectionne pour le retransferer dans la listebox1.
    Je me retrouve avec deux enregistrements selectionnes: L un dans la listebox 2 et le deuxieme dans la listebox 3.
    C est perturbant.

    Pour info, mes 4 listebox ont comme critere "aucun" dans la selection multiple

    Merci pour votre aide

  2. #2
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour facteur,

    Pour désélectionner dans une listebox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim i As Long
     
        For i = 0 To Me.cmbListe.ListCount
            Me.cmbListe.Selected(i) = False
        Next
    À ajouter sur l’événement qui convient le mieux à ce que tu veux faire.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonsoir Robert,merci pour cette reponse.
    Je vais la tester demain et je te tiens au courant.

  4. #4
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour Robert,
    Je suis bloqué. Je ne sais pas comment intégrer ton code dans ma 1ere listebox afin que la déselection se fasse dans cette 1ere listebox lorsque je clique sur un enregistrement de la 2ième listebox.

    prenons l'exemple ci dessous
    Ma première listebox contient la requete 1 ou 2
    Voici le code vba ( j'ai allégé le code)

    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
    Public sub1 ()
    Dim i As Integer
    Dim db As DAO.Database
    Set db = CurrentDb
     
    With Liste_Depart
        '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
               If IsNull(prHeure_Arrivee) Then
                   Requete1
               Else
                   requete2           
    End If
           End If
        Next i
     
       End If
     
        'Rafraichit la zone de liste source
        .Requery
    End With
     
    'Rafraichit la zone de liste destination
    Liste_Arrivee.Requery
    End Sub
    Ma 2ième listebox contient la requete 3 ou 4
    Voici le code vba ( j'ai allégé le code)

    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
    Public sub2()
    Dim i As Integer
    Dim db As DAO.Database
    Set db = CurrentDb
    With Liste_Depart
    '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
           'Si une Heure_MiseAquai n'a pas été saisie lors de l'appel de la fonction : cas de retour de la zone de liste de droite
               If IsNull(prHeure_MiseAQuai) Then
                   requete3
                  Else
               'Si une heure a été transmise par la procédure,
               requete4
     
                     End If
           End If
        Next i
     
     
    End If
     
    'Rafraichit la zone de liste source
    .Requery
    End With
    'Rafraichit la zone de liste de départ
    Liste_Arrivee.Requery
    End Sub

  5. #5
    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
    Salut facteur et Robert,

    Le code de Robert devrait être intégré dans chacune de tes listbox sur leur évènements Surclick. Afin que lorsqu'on sélectionne une liste, les autres soient dé-sélectionnées.

    Voilà comment je vois la chose :
    1- Dans un module indépendant, mettre une procédure avec le code que propose Robert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub DeselectionnerListe(prListe As ListBox)
    Dim i As Long
         For i = 0 To prListe.ListCount
            prListe.Selected(i) = False
        Next
    End Sub
    2- Dans ton formulaire créer une procédure qui va dé-sélectionner les autres listes du formulaire qui n'est pas en argument. Ce sera du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub SelectionUniqueList(prList As ListBox)
    Dim ctl As Control
    With Me
        For Each ctl In .Controls
            If ctl.ControlType = acListBox And ctl.Name <> prList.Name Then
                DeselectionnerListe ctl
            End If
        Next ctl
    End With
    End Sub
    3- Et dans les évènements SurClick de chacune de tes listbox (les 4), ajouter la procédure précédente avec la zone de liste comme argument. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Liste_MiseAquai_Click()
    SelectionUniqueList Liste_MiseAquai
    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

  6. #6
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Cool de te revoir madefemere,
    tes codes ainsi que celui de robert fonctionne trés merci ..merci
    Mais ..il y a un leger soucis.
    C'est qu'a chaque mise a jour du formulaire ( tous les 5 secondes avec le timer), les codes ne fonctionnent plus et j'ai mes 4 listebox qui affichent les enregistrements selectionnées en meme temps..

  7. #7
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    je crois savoir d'ou vient le probléme.
    J'essaie de le regler et je reviens vers toi madefemere..

  8. #8
    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
    facteur,

    Quel est le code que tu utilises pour actualiser ton formulaire ?
    Peut-être qu'à la fin de cette actualisation, il faudrait dé-sélectionner tous tes listbox ?

    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

  9. #9
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonsoir Madefemere,
    Voici ce qu il y a dans l evenement "timer" du formulaire ou se trouve mes 4 listesbox, (pour une meilleur lecture, j'ai retire de cet evenement , la creation du code pour la reactualisetion du fichier a 22h00)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Timer()
    Call setDatePostale
    End Sub
    Et voici egalement la procedue setDatePostale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub setDatePostale()
    DatePostale = CDate(Format(Now, "dd/mm/yyyy hh:mm"))
    lb_DatePostale.Caption = DatePostale
    Me.Refresh
    End Sub
    C 'est la ligne 4 de la procedue SetDatePostale qui me semble poser probleme : Car si je la retire, je n 'ai plus de probleme sur le deselection des lignes des 4 listes box.
    L heure se reactualise toujours et les differents totaux : total colis en attente, total colis a quai et total colis trie se reactualisent au gres des lignes qui passent d'une listebox a l'autre.
    Le soucis, c'est que cette base de donnee est partage et la reactualisation ne se fait plus tous les 5 secondes comme auparavant mais en appuyant sur F9..ce qui risque de poser probleme a mes collaborateurs..

    L'idee serait peut etre de remplacer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Refresh par un Me.Requery
    .
    Honnetement, je ne sais pas tes bien la difference qu il y a entre ces 2 codes.

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

    Donc, si tu veux dé-sélectionner toutes tes listes au timer, il faudrait ajouter une procédure de dé-sélection dans ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub DeselectionneToutesListes()
    Dim ctl As Control
    With Me
        For Each ctl In .Controls
            If ctl.ControlType = acListBox Then
                DeselectionnerListe ctl
            End If
        Next ctl
    End With
    End Sub
    Et l'appeler à la fin de ton évènement Timer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form_Timer()
    Call setDatePostale
    Call DeselectionneToutesListes
    End Sub
    Cela devrait le faire.

    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

  11. #11
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour madefemere
    Je me suis mal exprimé..

    je vais essayer d'etre plus claire par un exemple ..

    Avant le timer, si je selectionne une ligne de la listebox1, une ligne de la listebox2 , une ligne de la listebox3 et enfin une ligne de la listebox4, ton code fonctionne à merveille : je ne peux avoir deux lignes selectionnées sur les 4 listebox.
    Je ne veux pas que les lignes soient déselectionnées lors du timer.
    aprés le timer, les 4 lignes selectionnées ci dessus apparaissent en même temps et c'est ce que je ne veux pas.
    Ce que je veux, c'est Si aprés le timer, seul la ligne sélectionné en dernier apparait..

    madefemere, j'ai remarqué une chose..
    Si dans l'evenement timer, je mets le code aprés le timer je me retrouve dans le cas où les 4 lignes séléctionnées apparaissent en même temps aprés le timer


    avec le code aprés le timer je me retrouve dans le cas ou ton code fonctionne bien , c'est à dire ou aprés le timer , seul la derniere ligne sélectionné apparait
    MAIS le soucis c'est que mon formulaire ne se réactualise plus. je dois faire F9 pour réactualiser.

    Ci dessous le conde complet de l'evenement Timer

    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
    Private Sub Form_Timer()
    Call setDatePostale
    'Call DeselectionneToutesListes
     
    Dim varHeureExec As Variant
    Dim varDerniereExec As Variant
     
     
        'On commence par lire le champ Heure Exécution de la table tbl Minuterie. La fonction DLookup() permet ce type d’opération
        'sans ouvrir directement la table. On suppose bien sûr que tbl Minuterie ne contient qu’un enregistrement
        '(sinon, seul le champ Heure Exécution du 1er enregistrement serait pris en compte).
        'Si ce champ est vide (Null), l’heure d’exécution n’a pas été définie. On arrête immédiatement le processus
    varHeureExec = DLookup("[Heure Exécution]", "tbl Minuterie")
    If IsNull(varHeureExec) Then Exit Sub
     
        'On lit également le champ Dernière Exécution, toujours dans tbl Minuterie.
        'Cette fois, si le champ est Null, c’est que la minuterie n’a jamais été exécutée.
        'Dans ce cas, on part du principe que la dernière exécution – fictive – remonte au 1er janvier 1900 à midi
    varDerniereExec = DLookup("[Dernière Exécution]", "tbl Minuterie")
    If IsNull(varDerniereExec) Then varDerniereExec = #1/1/1900 12:00:00 PM#
     
        'On annule l’exécution de la minuterie si la date du jour (donnée par la fonction VBA Date)
        'et la date de dernière exécution (varDerniereExec) sont égales. Sous-entendu : le programme a déjà été lancé une fois aujourd’hui…
        'A noter que, pour faciliter les comparaisons de dates, on formate les 2 valeurs sous la forme jj/mm/aaaa (en anglais puisqu’on est en VBA ;-)).
        'En effet, varDerniereExec contient non seulement la date, mais également l’heure, ce qui ne nous intéresse pas ici.
        ' Si une exécution a eu lieu aujourd'hui, annuler le processus
    If Format(varDerniereExec, "dd/mm/yyyy") = Format(Date, "dd/mm/yyyy") Then Exit Sub
     
     
        'On est maintenant sûr que l’exécution n’a pas été lancée aujourd’hui.
        'Reste à vérifier si l’heure de lancement (varHeureExec) est passée, en la comparant à l’heure actuelle (donnée par la fonction VBA Time).
        'On ne peut pas vraiment tester une égalité, puisque la minuterie s’exécute seulement toutes les 5 secondes
        ' Si l'heure actuelle est supérieure à celle de base, exécuter le processus
    If Time > varHeureExec Then  ' Mettre à jour la date d'exécution
     
     
        'Cette ligne met à jour la table tbl Minuterie en mémorisant la date actuelle
        '(la fonction VBA Now est une combinaison de Date et de Time, donnant à la fois la date et l’heure).
        'Pour être traitée en SQL, il faut que la date soit au format #mm/jj/yyyy hh:nn:ss#
        '(sachant que les “n” désignent les minutes, pour éviter la confusion avec les mois).
    CurrentDb.Execute "UPDATE [tbl Minuterie] SET [Dernière exécution]=#" & _
    Format(Now, "mm/dd/yyyy hh:nn:ss") & "#"
     
     
    Call Reactualisation_Automatique_Formulaires
     
    End If
    Me.Requery
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub Reactualisation_Automatique_Formulaires()
    Call MiseAjour_Tbl_HistoVrac
     
    Call MiseAjour_Tb_Liaison
    F_attente
    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
    34
    35
    36
    Public Sub MiseAjour_Tbl_HistoVrac()
     
      With Me.Liste_VracTerminee
     
    strSQLSELECT = "SELECT Date() As jour,tb_Liaison.No_Liaison, tb_ProvDest.Nom_Ville,tb_Remorque.No_remorque,tb_Liaison.Heure_Theo, tb_TypeLiaison.Type," & _
     "tb_FrequenceLiaison.Frequence,tb_Liaison.Commentaires,tb_Liaison.Heure_Arrivee,tb_Liaison.Heure_MiseAquai, tb_Liaison.NbQuai," & _
     "tb_Liaison.NbColis, tb_Liaison.Immat,tb_Liaison.Heure_FinDechargement,tb_Liaison.SelectionArrivee,tb_Liaison.SelectionMiseAQuai,tb_Liaison.SelectionTerminee"
     
    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 SelectionArrivee AND SelectionMiseAQuai AND SelectionTerminee"
     
    strSQLORDERBY = "ORDER BY tbl_HistoVrac.Heure_Arrivee;"
     
    txt_ChaineSQL_Vrac_Terminee = strSQLSELECT & vbCrLf & _
                                strSQLFROM & vbCrLf & _
                                strORDERBY & vbCrLf & _
                                strSQLWHERE
     
     
     
     'CREATION DE LA REQUETE MISE A JOUR
    strInsert = "INSERT INTO tbl_HistoVrac(jour,No_Liaison, Nom_Ville, No_remorque, Heure_Theo, Type, Frequence,Commentaires,Heure_Arrivee,Heure_MiseAquai," & _
                    "NbQuai,NbColis,Immat,Heure_FinDechargement,SelectionArrivee,SelectionMiseAQuai,SelectionTerminee) " & txt_ChaineSQL_Vrac_Terminee
     
     
     
     
    CurrentDb.Execute strInsert
            .Requery
     
            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
    Public Sub F_attente()
    Dim F_attente As String
    DoCmd.OpenForm "F_attente"
     
    tinit = Timer
    Do While Timer - tinit < 2
        DoEvents
    Loop
     
    TempsEcoule:
    DoCmd.Close acForm, "F_attente"
    End Sub

  12. #12
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    salut madefemere

    Pourrais tu m'expliquer ton code vba ci dessous
    'procédure qui va dé-sélectionner les autres listes du formulaire qui n'est pas en argument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub SelectionUniqueList(prList As ListBox)
    Dim ctl As Control
    With Me
        For Each ctl In .Controls
            If ctl.ControlType = acListBox And ctl.Name <> prList.Name Then
                DeselectionnerListe ctl ' appel de la procédure DeselectionnerListe
            End If
        Next ctl
    End With
    End Sub

  13. #13
    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 facteur,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub SelectionUniqueList(prList As ListBox)
    Dim ctl As Control
    With Me                            'Avec le formulaire
        For Each ctl In .Controls  'Parcourir tous les contrôles
            If ctl.ControlType = acListBox And ctl.Name <> prList.Name Then ' Si c'est une listebox et son nom est différent à prList (argument de la procédure)
                DeselectionnerListe ctl ' appel de la procédure DeselectionnerListe 'Déselectionner le contrôle
            End If
        Next ctl 'le contrôle suivant
    End With
    End Sub
    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

  14. #14
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Merci madefemere.
    Aurais tu une idée du pourquoi, les ligne selectionnées avant le timer ( de l'evenement timer) , apparaissent toutes en mode selectionnées aprés le timer ?

  15. #15
    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
    même en appliquant le code au #10 ?
    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

  16. #16
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Que veux tu dire par :
    même en appliquant le code au #10 ? .

  17. #17
    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
    le code que je proposais dans mon message #10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub DeselectionneToutesListes()
    Dim ctl As Control
    With Me
        For Each ctl In .Controls
            If ctl.ControlType = acListBox Then
                DeselectionnerListe ctl
            End If
        Next ctl
    End With
    End Sub
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Timer()
    Call setDatePostale
    Call DeselectionneToutesListes
    End Sub
    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

  18. #18
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Salut madefemere
    Ta procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub DeselectionneToutesListes()
    inseré dans l'évenement timer dur formulaire n'est pas approprié dans mon cas et ceci pour 1 raison principale:
    La minuterie est sur 5 secondes, le temps que je selectionne une ligne sur une liste_box et que je rentre les informatrions telles que "heure d'arrivée", nombre de colis"..etc, ton code aura déja déselectionné la ligne et par conséquent, le transfert de la ligne n'aura pas lieu.
    La solution de rallonger la minuterie sur 60 seconde, par exemple, n'est pas une bonne solution car si je selectionne la ligne 5 secondes avant le debut de la minuterie ( c'est à dire à 55 secondes aprés la minuterie précedente) je vais me retrouver dans le 1er cas.
    Je ne peux pas non plus attendre la debut de la minuterie pour commencer à selectionner une ligne...

    Madefemere, s' il n y a pas de solution, ce n'est pas grave, j'ai averti mes collaborateurs de ce petit soucis.
    Cela ma permet de faire une belle transition pour la suite...

    Ma base de donne sera partagée : d'un coté, cette base sera utilisée pleinement : selection des lignes, lignes réferencée ( heure d'arrivée, nombre colis, quai...etc), archivages des données.
    Et de l'autre coté, la base sera utilisée seulement en lecture seule.
    Voila ce que j'ai fait,
    j'ai crée une raccoucir MSACCESS du type :
    "C:\Programm Files \Microsoft Office\Office\MSACCESS.EXE" "C:\Mes Documents\bd1.mdb" /wrkgrp "C:\Mes Documents\bd1.mdw"
    Ce raccourcie est intéressent mais le problème c'est que les utilisateurs, qui n'auront qu'à visionner la base de donnée, auront la possibilité d'intervenir sur la base. Alors que je voudrais qu'ils visionnent cette base seulement en lecture seule.
    Et les autres utilisateurs, qui seront amené à utiliser la base, auront un acces libre.

    Comment puis je m' yprendre ?

Discussions similaires

  1. [DB] Nombre d'enregistrements d'une table
    Par Mister Nono dans le forum Bases de données
    Réponses: 26
    Dernier message: 09/05/2006, 09h51
  2. Nombre Total d'Enregistrements d'une Requête d'Union
    Par sqlnet dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/12/2003, 17h12
  3. Réponses: 10
    Dernier message: 01/08/2003, 13h45
  4. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 14h54
  5. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37

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