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 :

Rechercher enregistrement puis rechercher suivant


Sujet :

IHM

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Rechercher enregistrement puis rechercher suivant
    Bonjour,

    dans un formulaire j'ai fait un bouton pour rechercher
    un enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set Rst = Me.RecordsetClone
    reponse = InputBox("Nom du Chantier ?", "Recherche par Nom", , 1000, 1000)
    If reponse <> "" Then
        critere = "[Nom Chantier] Like '" & reponse & "'"
        Debug.Print critere
        Rst.FindFirst critere
        If Rst.NoMatch Then
            MsgBox "Chantier inexistant"
        End If
    End If
        Me.Bookmark = Rst.Bookmark
    Ca marche.
    Ensuite j'ai fait un autre bouton pour rechercher l'enregistrement
    suivant qui correspond au critere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If reponse <> "" Then
    Debug.Print reponse
    Debug.Print critere
            Rst.FindNext critere
            If Rst.NoMatch Then
            MsgBox "Pas d'autre chantier"
            reponse = ""
            critere = ""
            End If
    End If
    J'avais déclaré les variables public:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public reponse As String
    Public critere As String
    Public Rst As Recordset
    mais quand j'appuie sur le bouton suivant il ne trouve rien
    si j'appuie à nouveau il me met la msg box "Pas d'autre chantier "

    Je ne comprend pas pourquoi cela ne fonctionne pas

    comment faire pour parcourir les enregistrement qui correspondent
    à mon critere :[/b]

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    je pense que dans ton premier code (juste avant le FindFirst) tu dois te repositionner au début de ton RecordsetClone avec :
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Hello,

    merci pour ton aide.
    J'ai testé ta solution mais cela ne fonctionne pas
    mais je la laisse car il est vrai que c'est mieux de se
    positionner au début du recordset avant de commencer
    la recherche.

    J'avais positionné des Debug.print pour voir les valeurs
    de ma variable critere et quand j'appuie sur le bouton pour
    chercher l'enregistrement suivant j'ai bien les bonnes valeurs
    pour cette variable.

    Je continue à chercher !

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 147
    Points : 172
    Points
    172
    Par défaut
    je supose que sur ton bouton "trouver suivant" tu redéclare bien ton rst (= me.recordsetclone) puis tui lui dommande avant de trouver l'enregistrement suivant de trouver le premier soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set Rst = Me.RecordsetClone 
    reponse = InputBox("Nom du Chantier ?", "Recherche par Nom", , 1000, 1000) 
    If reponse <> "" Then 
        critere = "[Nom Chantier] Like '" & reponse & "'" 
        Debug.Print critere 
        Rst.movefirst    
        Rst.FindFirst critere 
        Rst.FindNext critere
        If Rst.NoMatch Then 
            MsgBox "Chantier inexistant" 
        End If 
    End If 
        Me.Bookmark = Rst.Bookmark

  5. #5
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par tee_grandbois
    je pense que dans ton premier code (juste avant le FindFirst) tu dois te repositionner au début de ton RecordsetClone avec :
    Inutile d'utiliser la méthode movefirst car findFirst démmare toujours la recherche au premier enregistrement.

    Citation Envoyé par niclalex
    je supose que sur ton bouton "trouver suivant" tu redéclare bien ton rst (= me.recordsetclone) puis tui lui dommande avant de trouver l'enregistrement suivant de trouver le premier
    Ben là il perd tout l'intérêt de son bouton suivant s'il redéfini à chaque fois son recordset...
    Imagine qu'il y ait au moins 3 enregistrements qui correspondent au critère : dans ton code il ne verra jamais que le second.

    La bonne solution est celle Mehdi_S qui déclare son recordset en variable publique. Mais une erreur se cache quelque part, suffit de bien chercher...
    (\ _ /)
    (='.'=)
    (")-(")

  6. #6
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Suggestion : ne serait-il pas mieux de construire ton critère comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    critere = "[Nom Chantier] Like '*" & reponse & "*'"
    :
    (\ _ /)
    (='.'=)
    (")-(")

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci Nicalex et FRED.G pour les pistes et tee_grandbois aussi !

    FRED.G: J'ai testé ton crititere: il fonctionne bien (comme le mien)
    mais je ne trouve toujours pas l'enregistrement suivant.

    Ensuite il s'avere que si j'ai 4 fois mon critere je dois cliquer
    3 fois sur mon bouton suivant (et une fois sur le bouton recherche)
    avant d'arriver a la msgbox "Pas d'autre chantier"
    Donc mon code trouve bien les occurences du critere par contre le
    probleme est que mon enregistrement trouvé par le bouton suivant ne
    s'affiche pas dans mon formulaire.

    Pour ce qui est de la déclaration de variable public: Moi je les ai déclarée
    dans un module. Est ce qu c'est bien là qu'il faut le faire ?


    à plus.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Désolé de vous avoir fait chercher pour rien

    J'avais oublié de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Bookmark = Rst.Bookmark
    Donc ça donne:

    Variables public déclarée dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Rst As Recordset
    Public reponse As String
    Public critere As String
    Evenement "sur clic" du bouton rechercher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set Rst = Me.RecordsetClone
    reponse = InputBox("Nom du Chantier ?", "Recherche par Numero", , 1000, 1000)
    If reponse <> "" Then
    critere = "[Nom Chantier] Like '*" & reponse & "*'"
    Rst.FindFirst critere
    If Rst.NoMatch Then
        MsgBox "Chantier inexistant"
    End If
    End If
        Me.Bookmark = Rst.Bookmark
    Evenement "sur clic" du bouton suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If reponse <> "" Then
     
            Rst.FindNext critere
            Me.Bookmark = Rst.Bookmark
            If Rst.NoMatch Then
            MsgBox "Pas d'autre chantier"
            reponse = ""
            critere = ""
            End If
    End If
    Encore merci pour votre aide.

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

Discussions similaires

  1. Recherche documents puis enregistrement
    Par Devilju69 dans le forum VB.NET
    Réponses: 5
    Dernier message: 02/07/2009, 13h56
  2. recherche enregistrement entre heure1 et heure2
    Par ryosaeba dans le forum Access
    Réponses: 7
    Dernier message: 27/07/2006, 09h50
  3. Recherche enregistrement dans sous formulaire
    Par 29041977 dans le forum Access
    Réponses: 1
    Dernier message: 09/05/2006, 15h18
  4. Réponses: 11
    Dernier message: 21/03/2006, 17h57
  5. recherche enregistrements n'ayant pas de correspondance
    Par fredonzenet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/08/2005, 17h33

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