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 :

Findrecord sur un champ parmi d'autres dans un formulaire


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Findrecord sur un champ parmi d'autres dans un formulaire
    Bonjour,

    Je débute avec la méthode Findrecord, que je n'arrive pas à faire marcher à partir d'une zone de texte indépendante où je voudrais entrer un mot, pour arriver directement sur l'enregistrement contenant le champ nom_oeuvre qui y correspond.

    Je pense que je n'ai pas bien saisi s'il est vraiment possible de spécifier un champ de recherche autre que celui d'ou vient la valeur à trouver comme c'est mon cas ici.

    Voici la requête source de mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom_oeuvre, date_oeuvre, auteur_oeuvre FROM taboeuvre ORDER BY nom_oeuvre, date_oeuvre, tech_oeuvre;
    J'ai mis une capture de ma procédure évènement de la zone de texte ztRech , avec la syntaxe d'access que j'ai essayé de bien suivre, ainsi que du message d'erreur que j'obtiens.
    Images attachées Images attachées   

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Donne le focus au contrôle dans lequel tu veux effectuer la recherche.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ztRech_AfterUpdate()
    ' Donner le focus au contrôle (Nom_du_produit dans cet exemple)
    Me.Nom_du_produit.SetFocus
    ' Effectuer recherche (acCurrent = pour ce contrôle seulement)
    DoCmd.FindRecord ztRech, acStart, False, acDown, False, acCurrent, True
    End Sub
    Par contre je ne vois pas pourquoi tu obtiens ce message d'erreur.

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup, çà a super bien marché !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Maintenant j'ai un autre problème:

    J'ai créé un bouton pour pouvoir passer au nom de produit suivant, dans le cas ou 2 deux produits commencent par les même lettres entrées dans le champ de recherche.
    Pour cela je lui ai affecté la même code évènement, en changeant acStart par acDown.

    Mais quand je l'exécute en cliquant sur le bouton, il met le messsage d'erreur que j'ai mis dans la capture en pièce jointe, où la méthode Findrecord est surlignée come cause de l'erreur.
    Je ne comprends pas pourquoi comme elle devrait marcher après que le focus ait été donné au champ de nom?
    Images attachées Images attachées  

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    La commande FindRecord a sept arguments.
    Tu en as mis neuf.

    Pour continuer la recherche depuis l'enregistrement en cours:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub cmdRechSuiv_Click()
    ' Donner le focus au contrôle
    Me.Nom_du_produit.SetFocus
    ' Continuer recherche avec septième argument (FindFirst) à False
    DoCmd.FindRecord ztRech, acStart, False, acDown, False, acCurrent, False
    End Sub
    ou
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub cmdRechSuiv_Click()
    ' Donner le focus au contrôle
    Me.Nom_du_produit.SetFocus
    ' Continuer recherche
    DoCmd.FindNext
    End Sub
    A+

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/12/2012, 16h27
  2. Réponses: 1
    Dernier message: 29/08/2011, 15h45
  3. Réponses: 1
    Dernier message: 29/11/2008, 10h56
  4. Réponses: 1
    Dernier message: 26/12/2006, 16h23
  5. ALTER TABLE sur un champ de type SET dans une procédure
    Par flaplante dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/08/2006, 04h40

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