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

Access Discussion :

Recherche dans un recordset


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 148
    Points : 112
    Points
    112
    Par défaut Recherche dans un recordset
    Bonjour à tous !

    voilà, j'aimerais savoir si c'est possible de positionner mon recordset par rapport à une variable donnée ?

    par ex :

    J'ai un recordset avec x lignes de données de ma table <table1> dont la clé est un champ numérique <code1>

    comment est-il possible de lui dire d'aller sur la ligne du recordset où <code1> est égal à une variable d'un champ texte ?

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    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 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,


    comment est-il possible de lui dire d'aller sur la ligne du recordset
    Allez physiquement pour le positionner dans une table ou un formulaire ou bien simplement pour piocher des informations annexes de l'enregistrement trouvé ?

    Argy

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 72
    Points
    72
    Par défaut
    Salut

    Il existe la méthode find associée au recorset !
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     Dim mabd  As Database, twi As Recordset, tclient As Recordset
      Dim critère As String
     
      Set mabd = DBEngine.Workspaces(0).Databases(0)
      Set tw = mabd.OpenRecordset("voirclient", DB_OPEN_DYNASET)
      Set tclient = mabd.OpenRecordset("client", DB_OPEN_DYNASET)
      twi.MoveFirst   ' Repère le premier enregistrement.
      Do Until twi.EOF    ' Commence la boucle.
        critère = "numeroclient = " + Str(twi.Fields(0).Value) + ""
        tclient.FindFirst critère
        If tclient.NoMatch Then
          MsgBox "Le client " + Str(twi.Fields(0).Value) + " est inconnu dans le système"
        End If

  4. #4
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Salut,

    Si tu chercher un seul enregistrement et en extraire des informations, pas besoin de faire appel aux objets car le moyen le plus court c'est d'uitiliser une fonction de regroupement de domaine telle que DLookUp dont la syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Variable = DLookUp("[Champ à chercher]","Table","Critère (comme champ=valeur)")
    N'hésite pas à utiliser la fonction nz qui convertit les valeurs nulles en d'autre comme zéro (0).
    A part DLookUp, il y a aussi les fonctions DSum (somme), DCount (compteur), DAvg (moyenne), etc.
    Quelques recherches et tu trouveras ton bonheur.

    Par contre si tu veux te positionner sur un enregistrement tout simplement, suis les conseils que l'on t'a prodigués plus haut en utilisant FindFirst (ou Find tout court).

    Ce qu'il faut retenir c'est que tout est dans le critère. Comme tu as dis que tu veux retrouver un enregistrement correspondant à une variable, tu dois donc comparer la variable à un champ précis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'Pour le critère
    [champ]=variable
    Bon courage et @+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 148
    Points : 112
    Points
    112
    Par défaut
    Merci beaucoup pour vos réponse, je pense pouvoir me débrouiller avec tout ca !

    Merci a tous !

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

Discussions similaires

  1. [AC-2003] Pb de recherche dans un recordset (seek)
    Par Aziraphal dans le forum IHM
    Réponses: 2
    Dernier message: 12/02/2013, 17h01
  2. rechercher dans un recordset
    Par doudou57 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/07/2008, 17h26
  3. Recherche dans un recordset avec 2 critères
    Par Frog74 dans le forum VBA Access
    Réponses: 10
    Dernier message: 14/05/2008, 22h34
  4. [DAO]Rechercher dans un recordset
    Par guen dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/04/2007, 17h28
  5. VBA - DAO - recherche dans un recordset
    Par Sebimpro dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/07/2006, 09h48

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