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 :

Executer code sur touche Entrée.


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut Executer code sur touche Entrée.
    Bonjour,

    Dans un formulaire de recherche je souhaite exécuter un code sur touche entrée appuyée. Ce code s’exécute très bien sur cmd_recherche_click mais pas sur touche entrée.

    Voici ce que j'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub txt_critere_KeyDown(KeyCode As Integer, Shift As Integer)
     If KeyCode = 13 Then Call cmd_recherche_Click
     
    End Sub
    Voici le code que je souhaite éxécuter:
    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
    Private Sub cmd_recherche_Click()
        Dim strTable As String, strField As String, strCriteria As String, strSql As String
        Dim Criter As Variant
        If IsNull(Me.cbo_table) Or IsNull(Me.cbo_champ) Then
        MsgBox "Vous devez renseigner la table et le champ pour effectuer une recherche !", vbExclamation + vbOKOnly, "Recherche"
        Exit Sub
       End If
        strTable = "[" & Me.cbo_table & "]"         ' recupère le nom de la table
        strField = "[" & Me.cbo_champ & "]"         ' recupère le nom du champ
     
        Select Case Me.opt_recherche
                      Case 1 ' strictement egal
                           strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"
                      Case 2 ' commence par
                           strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & "*"""
                      Case 3 ' contient
                           strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"""
                      Case 4 ' fini par
                           strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & """"
                      Case 5 ' ne contient pas
                           strCriteria = "NOT (" & strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"")                "
    End Select
        ' construit la requête sql
        strSql = "SELECT DISTINCTROW " & strTable & ".*"
        strSql = strSql & " FROM " & strTable
        strSql = strSql & " WHERE ((" & strCriteria & "));"
     
     
        Me.lst_resultat.RowSource = strSql  ' affecte sql a lst_Resultat
        Me.lst_resultat.Requery             ' recalcule la liste
        Forms!Recherche!txt_critere = ""
        Forms!Recherche!txt_critere.SetFocus
     
     
    End Sub
    Sans succès.

    Auriez-vous une idée?

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Mets la propriété KeyPreview à True...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    cela ne fonctionne toujours pas...

    Fabien.

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour Fab.85,

    Bizarre ton affaire.
    Je viens de faire un test et cela fonctionne très bien.

    Est-ce que ton curseur est bien dans le champ lorsque tu appuies sur ta touche Enter ?

    Cordialement

    Christophe
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  5. #5
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    oui en effet c'est bizarre et très agaçant puisque ça fonctionne sur cmd_recherche_Click()...

    je me permet de vous montrer la page de code entière concernant le Form recherche car peut-être que quelque chose interfère dans ce que l'on souhaite réaliser???

    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
    Option Compare Database
     
    Private Sub cbo_champ_AfterUpdate()
    Forms!Recherche!txt_critere.SetFocus
    End Sub
     
    Private Sub Form_Load()
    KeyPreview = True
     
    End Sub
     
    Private Sub txt_critere_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = 13 Then Call cmd_recherche_Click
     
    End Sub
     
    Private Sub cbo_table_AfterUpdate()
    Me.cbo_champ.RowSource = Me.cbo_table.Value
    Me.cbo_champ.Requery
     
    End Sub
     
    Private Sub cmd_recherche_Click()
    Dim strTable As String, strField As String, strCriteria As String, strSql As String
        Dim Criter As Variant
        If IsNull(Me.cbo_table) Or IsNull(Me.cbo_champ) Then
        MsgBox "Vous devez renseigner la table et le champ pour effectuer une recherche !", vbExclamation + vbOKOnly, "Recherche"
        Exit Sub
       End If
        strTable = "[" & Me.cbo_table & "]"         ' recupère le nom de la table
        strField = "[" & Me.cbo_champ & "]"         ' recupère le nom du champ
     
        Select Case Me.opt_recherche
                      Case 1 ' strictement egal
                           strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"
                      Case 2 ' commence par
                           strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & "*"""
                      Case 3 ' contient
                           strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"""
                      Case 4 ' fini par
                           strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & """"
                      Case 5 ' ne contient pas
                           strCriteria = "NOT (" & strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"")                "
    End Select
        ' construit la requête sql
        strSql = "SELECT DISTINCTROW " & strTable & ".*"
        strSql = strSql & " FROM " & strTable
        strSql = strSql & " WHERE ((" & strCriteria & "));"
     
     
        Me.lst_resultat.RowSource = strSql  ' affecte sql a lst_Resultat
        Me.lst_resultat.Requery             ' recalcule la liste
        Forms!Recherche!txt_critere = ""
        Forms!Recherche!txt_critere.SetFocus
     
     
    End Sub
    Cordialement

    Fabien.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Au lieu de mettre Va dans les propriétés du formulaire et défini Aperçu des touches à Oui.

    Cordialement

    Christophe
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  7. #7
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Merci,

    j'ai déjà testé cette solution mais ça change rien...

    Fabien.

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Peux tu me mettre ta base en format zip, je vais y jeter un oeil.

    Cordialement

    Christophe
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  9. #9
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    par MP c'est possible?

    Cordialement,

    Fabien.

  10. #10
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Oui, quand tu écris ton message, dans la fenêtre sous la zone d'écriture, tu a une zone nommée "Options supplémentaires". Tu cliques sur "Gérer les pièces jointes" pour déposer ton document.

    Si tu ne souhaites pas que tout le monde puisse y accéder, tu peux alors m'envoyer un message privé avec la même procédure.

    Cordialement

    Christophe
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  11. #11
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Salut marsouin_89,

    tout simplement magnifique.....

    je me permet de coller ici Ta solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub txt_critere_KeyDown(KeyCode As Integer, Shift As Integer)
      If KeyCode = 13 Then
      KeyCode = 0
    cmd_recherche_Click
      End If
     
    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
    37
    Private Sub cmd_recherche_Click()
    Dim strTable As String, strField As String, strCriteria As String, strSql As String
        Dim Criter As Variant
        If IsNull(Me.cbo_table) Or IsNull(Me.cbo_champ) Then
        MsgBox "Vous devez renseigner la table et le champ pour effectuer une recherche !", vbExclamation + vbOKOnly, "Recherche"
        Exit Sub
       End If
        strTable = "[" & Me.cbo_table & "]"         ' recupère le nom de la table
        strField = "[" & Me.cbo_champ & "]"         ' recupère le nom du champ
     
    Me.Recalc
     
        Select Case Me.opt_recherche
                      Case 1 ' strictement egal
                           strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """"
                      Case 2 ' commence par
                           strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & "*"""
                      Case 3 ' contient
                           strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"""
                      Case 4 ' fini par
                           strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & """"
                      Case 5 ' ne contient pas
                           strCriteria = "NOT (" & strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"")                "
    End Select
        ' construit la requête sql
        strSql = "SELECT DISTINCTROW " & strTable & ".*"
        strSql = strSql & " FROM " & strTable
        strSql = strSql & " WHERE ((" & strCriteria & "));"
     
     
        Me.lst_resultat.RowSource = strSql  ' affecte sql a lst_Resultat
        Me.lst_resultat.Requery             ' recalcule la liste
        Forms!Recherche!txt_critere = ""
        Forms!Recherche!txt_critere.SetFocus
     
     
    End Sub
    Encore une fois merci.

  12. #12
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    KeyPreview est la propriété Aperçu des touches (en anglais)

    Dans ma vision des choses, je pensais que tu aurais capté.

    Il y a aussi un point à regarder, bien que ça marche maintenant, c'est l'Effet de la touche entrée dans champ lui même...
    Normalement, vu que c'est une zone de texte, l'événement After_Update aurait du faire l'affaire.
    Et en y regardant de plus près, il faut analyser tous ces points car il faut que tu saches que certains événements asociés à certaines propriétés se court-circuitent... en quelque sorte.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  13. #13
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonsoir argyronet,

    j'avais testé avec Aperçu des touches à oui. ça ne marchait pas.
    Autant dans les propriétés qu'avec une ligne de code.

    Et sur l’événement After_Update non plus. Le résultat affiché était 1234567...

    Alors que le résultat attendu était pour un critère"45": 45 145 245 345...

    Et en y regardant de plus près, il faut analyser tous ces points car il faut que tu saches que certains événements asociés à certaines propriétés se court-circuitent... en quelque sorte.
    Tu m’inquiètes, que dois-je faire?

    Merci.

  14. #14
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par fab.85 Voir le message
    Tu m’inquiètes, que dois-je faire?
    Bien rien puisque ça marche comme ça et ça te convient...

    Là où je suis surpris, c'est que tu n'aies pas réussi à le gérer par l'After_Update() ou même mieux, l'événement Exit.

    Plus précisément, je n'aurais pas mis la procédure de Recherche dans l'événement Click de ton bouton mais plutôt dans une fonction Private de la classe de ton formulaire...

    Quelque chose comme :
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    Option Compare Database
    Option Explicit
     
    Private Enum RechercheOption
        StrictementEgal = 1
        CommencePar = 2
        Contient = 3
        FiniPar = 4
        NeContientPas = 5
    End Enum
     
    Private Sub cmd_recherche_Click()
        Call RafraichirListe
    End Sub
     
    Private Sub txt_critere_Exit(Cancel As Integer)
        Call RafraichirListe
    End Sub
     
    Sub RafraichirListe()
    Dim vntTable                                           As Variant
    Dim vntChamp                                           As Variant
    Dim OptionRecherche                                    As RechercheOption
    Dim strContenuSQL                                      As String
    Dim strMessage                                         As String
    Dim strControl                                         As String
     
        vntTable = Me.cbo_table
        vntChamp = Me.cbo_champ
        ' on prend "Contient" si pas précisé
        OptionRecherche = Nz(Me.opt_recherche, Contient)
        If Chercher(Me.txt_critere, vntTable, vntChamp, OptionRecherche, strContenuSQL, strMessage, strControl) = True Then
            MsgBox "Voici ce que j'ai trouvé...", vbInformation, "Recherche aboutie"
        Else
            MsgBox strMessage, vbExclamation, "Recherche échouée"
            Me.Controls(strControl).SetFocus
        End If
        With Me.lst_resultat
            .RowSource = strContenuSQL
            .Requery
        End With
    End Sub
     
    Private Function Chercher(ByVal Quoi As Variant, ByVal LaTable As Variant, LeChamp As Variant, ByVal OptionRecherche As RechercheOption, ByRef Contenu As String, ByRef Message As String, ByRef Controle As String) As Boolean
    Dim strTable                                           As String
    Dim strField                                           As String
    Dim strCriteria                                        As String
    Dim oRS                                                As DAO.Recordset
     
        On Error GoTo ErreurChercher
        Controle = "txt_critere"
        If Len(Nz(Quoi, "")) = 0 Then
            Message = "Vous devez indiquer un critère de recherche pour effectuer une recherche !"
            err.Raise 13, "Valeur requise", Message
        End If
        If Len(Nz(LeChamp, "")) = 0 Then
            Message = "Vous devez renseigner le champ pour effectuer une recherche !"
            Controle = "cbo_champ"
            err.Raise 94, "Valeur requise", Message
        End If
        If Len(Nz(LaTable, "")) = 0 Then
            Message = "Vous devez renseigner la table pour effectuer une recherche !"
            Controle = "cbo_table"
            err.Raise 94, "Valeur requise", Message
        End If
     
        strTable = "[" & LaTable & "]"
        strField = strTable & ".[" & LeChamp & "]"
     
        Select Case Me.opt_recherche
            Case StrictementEgal
                strCriteria = strField & " Like '" & Quoi & "'"
            Case CommencePar
                strCriteria = strField & " Like '" & Quoi & "*'"
            Case Contient
                strCriteria = strField & " Like '*" & Quoi & "*'"
            Case FiniPar
                strCriteria = strField & " Like '*" & Quoi & "'"
            Case NeContientPas
                strCriteria = "NOT (" & strField & " Like '*" & Quoi & "*')"
        End Select
     
        Contenu = "SELECT DISTINCTROW * FROM " & strTable & " WHERE (" & strCriteria & ");"
        Set oRS = CurrentDb.OpenRecordset(Contenu, dbOpenDynaset)
        If Not oRS.EOF Then
            Chercher = True
        Else
            Chercher = False
            Contenu = "SELECT * FROM " & strTable & ";"
            Message = "Il n'y a pas de données correspond au critère '" & Quoi & "' que vous avez tapé..."
            err.Raise 3021, "Aucune correspondance", Message
        End If
        oRS.Close
     
        On Error GoTo 0
    SortieChercher:
        Set oRS = Nothing
        Exit Function
     
    ErreurChercher:
        Chercher = False
        Resume SortieChercher
    End Function
    A peaufiner bien sûr mais c'est déjà un pas un peu plus «propre» selon moi...

    Argy

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  15. #15
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour argyronet,

    merci pour ta solution. Je l'ai testé également...

    J'avoue ne pas avoir essayé sur EXIT avant.

    j'ai malgré tout un souci car je souhaitais qu’après la recherche le champ critère se vide et qu'il récupère le focus. (Dans un souci d'ergonomie au poste de travail)

    Et là je suis à nouveau perdu. Je ne sais plus à quel moment je dois demander:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms!Recherche!txt_critere = ""
    Forms!Recherche!txt_critere.SetFocus
    Cordialement,

    Fabien.

  16. #16
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Eh bien tu modifies le code comme suit :

    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
    Sub RafraichirListe()
    '[...]
    Dim blnRAZCritere                                      As Boolean
    
    '[...]
        With Me.lst_resultat
            .RowSource = strContenuSQL
            .Requery
        End With
        With Me.txt_critere
            .SetFocus
            If blnRAZCritere Then
                .Value = ""
            End If
        End With
    End Sub
    
    Private Function Chercher(ByVal Quoi As Variant, ByVal LaTable As Variant, LeChamp As Variant, ByVal OptionRecherche As RechercheOption,  _
    ByRef Contenu As String, ByRef Message As String, ByRef Controle As String, ByRef RAZCritere As Boolean) As Boolean
    '[...]
        Set oRS = CurrentDb.OpenRecordset(Contenu, dbOpenDynaset)
        If Not oRS.EOF Then
            Chercher = True
            RAZCritere = False
        Else
            Chercher = False
            Controle = "txt_critere"
            RAZCritere = True
            Contenu = "SELECT * FROM " & strTable & ";"
            Message = "Il n'y a pas de données correspond au critère '" & Quoi & "' que vous avez tapé..."
            Err.Raise 3021, "Aucune correspondance", Message
        End If
        oRS.Close
    '[...]
    End Function
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  17. #17
    Membre habitué Avatar de fab.85
    Homme Profil pro
    GoodStock
    Inscrit en
    Octobre 2011
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : GoodStock
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2011
    Messages : 226
    Points : 125
    Points
    125
    Par défaut
    Bonjour Argyronet,

    cette dernière modification pose problème...

    Je me suis aussi permis de supprimer les messages "Recherche aboutie".

    Toujours dans un souci d'ergonomie au poste de travail.

    Merci.
    Images attachées Images attachées  

  18. #18
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    1- Eh bien tu fais ce que tu veux...
    C'est du code libre.
    Ce que je t'ai envoyé illustre un exemple pour que tu l'adaptes et le peaufines selon tes besoins.

    2- Tu as erreur de compile car tu n'as pas suivi les modif de mon dernier post.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

Discussions similaires

  1. [WD15] Exécuter un code sur touche entrée d'une ligne de table
    Par kinansoag dans le forum WinDev
    Réponses: 3
    Dernier message: 15/10/2014, 21h04
  2. [clavier]Action sur touche Entrée
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 07/03/2007, 11h55
  3. Déclenchement code sur touche de fonction
    Par SeaWolf601 dans le forum Access
    Réponses: 7
    Dernier message: 19/08/2006, 14h11
  4. Executer code sur un nouveau terminal en C
    Par progamer54 dans le forum Linux
    Réponses: 8
    Dernier message: 28/03/2006, 13h31
  5. déclenchement d'un message box après click sur touche entrée
    Par new_wave dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/11/2005, 09h15

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