1. #1
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mai 2006
    Messages : 254
    Points : 238
    Points
    238

    Par défaut Recherche de plusieurs critères dans un recordset

    Bonjour !

    J'ai cherché dans la FAQ et dans le forum mais je ne trouve pas la réponse qui me correspond....

    voilà, j'ai un recordset basé sur une requete... avec les 2 champs de ma requete j'aimerai faire une recherche de critère dans une table...

    Explications :
    Voilà mon code pour ouvrir mon (mes) recordset et la valorisation de mes 2 critères (en gras):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set Mabd = CurrentDb
    Set requete = Mabd.CreateQueryDef("", "Detail commande importee")
    Set tableRequete = requete.OpenRecordset()
    Set tableCommande = Mabd.OpenRecordset("COMMANDES", DB_OPEN_DYNASET)
    Set tableDetailCommande = Mabd.OpenRecordset("DETAILS COMMANDES", DB_OPEN_DYNASET)
    tableRequete.MoveFirst
    While Not tableRequete.EOF = False
        NumeroDeCommande = tableRequete.Fields(0).Value
        critere = "[N°_commande] = '" & NumeroDeCommande & "'"
        tableCommande.FindFirst critere
        If Not (tableCommande.NoMatch) Then
            NumeroDeFiche = tableRequete.Fields(1).Value
            critere2 = "[N°_fiche] = '" & NumeroDeFiche & "'"


    Ce que je veux c'est écrire après cette dernière ligne un truc du genre :
    tableDetailCommande.findFirst critere critere2

    c'est à dire rechercher les lignes qui ont ce numéro de commande (critere) ET ce numero de fiche (critere2) pour chaque ligne de ma table "Details COMMANDES"

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2005
    Messages
    10 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 10 595
    Points : 21 483
    Points
    21 483

    Par défaut

    Bonjour,

    En DAO le findfirst n'accepte qu'un seul critère.
    La même méthode ADO en accepte plusieurs.

    Cordialement
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mai 2006
    Messages : 254
    Points : 238
    Points
    238

    Par défaut

    Oui j'y ai pensé ...

    j'ai référencé la bibliothèque ADO et ensuite j'ai redéfini mon recordset
    comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim tableDetailCommande As ADODB.Recordset
    Mais il ne me propose pas la méthode "FindFirst" mais juste "Find" et je n'arrive pas à lui faire mettre 2 critères.... je pense que je ne sais pas bien me servir de la méthode Find

  4. #4
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mai 2006
    Messages : 254
    Points : 238
    Points
    238

    Par défaut

    J'ai cherché dans la FAQ , mais la FAQ me renvoi sur le site de microsoft et je n'y comprend rien à leur solution !

  5. #5
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mai 2006
    Messages : 254
    Points : 238
    Points
    238

    Par défaut

    Bon j'ai essayé de décortiquer la solution microsoft et j'ai pondu ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If tableDetailCommande.Find (critere) And tableDetailCommande.Find(critere2) Then
    MAIS ..... j'ai l'erreur : "Fonction ou variable attendue"

  6. #6
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mai 2006
    Messages : 254
    Points : 238
    Points
    238

    Par défaut

    Quelqu'un peut m'expliquer comment passer deux critères dans la méthode FIND ??

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2005
    Messages
    10 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 10 595
    Points : 21 483
    Points
    21 483

    Par défaut

    Remonte ta référence ADO avant DAO et tu devrais voir apparaitre la méthode Findfirst dans la liste.

    Ci-joint un code ADO qui fonctionne avec des critères multiples.

    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
     
    Dim RS As Recordset
     
    Set RS = Me.RecordsetClone
    criteria = "[Jour]=" & Me.Jour & " and [Ordre]=" & Me.ORDRE
     
    RS.FindFirst criteria
     
    If Not RS.NoMatch Then
     
       MsgBox "Ce numéro d'ordre existe pour ce jour."
     
    Else
       msgbox "Ce numéro d'ordre n'existe pas pour ce jour."
     
    End If
     
    RS.close
    set RS = nothing
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mai 2006
    Messages : 254
    Points : 238
    Points
    238

    Par défaut

    MERCI !!

    je m'étais débrouillée autrement en passant par une requete paramétrée avec mes critères et en regardant si cette requete retournait un résultat ou pas...

    Mais ce que tu m'as donné là me servira pour le futur ...

    Merci

  9. #9
    Membre habitué Avatar de Massiliya
    Femme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    mars 2017
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 159
    Points : 145
    Points
    145

    Par défaut

    Citation Envoyé par loufab Voir le message
    Remonte ta référence ADO avant DAO et tu devrais voir apparaitre la méthode Findfirst dans la liste.

    Ci-joint un code ADO qui fonctionne avec des critères multiples.

    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
     
    Dim RS As Recordset
     
    Set RS = Me.RecordsetClone
    criteria = "[Jour]=" & Me.Jour & " and [Ordre]=" & Me.ORDRE
     
    RS.FindFirst criteria
     
    If Not RS.NoMatch Then
     
       MsgBox "Ce numéro d'ordre existe pour ce jour."
     
    Else
       msgbox "Ce numéro d'ordre n'existe pas pour ce jour."
     
    End If
     
    RS.close
    set RS = nothing
    Bonjour
    Il y'a longtemps pour cette discussion mais...
    J'ai un problème un peu pareil en fait je dois vérifier deux critère!!!
    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
        Dim rsDim_aux As Recordset
        Dim rsDimensions As Recordset
        Dim critere04 As String ' On va mettre dans lequel la "référence_dim" de la table "Dimensions"
        Set rsDim_aux = CurrentDb.OpenRecordset("dim_aux")
        Set rsDimensions = CurrentDb.OpenRecordset("Dimensions")
        rsDim_aux.MoveFirst
        While Not rsDim_aux.EOF() 'parcourir la table "dim_aux"
              Debug.Print rsDim_aux![Dimcoupe]
              critere04 = "[Longueur] =" & rsDim_aux![Dimcoupe]
              critere04 = critere04 & " and [Matière première] = """ & Me.CodeMP & """"
              Debug.Print critere04
              rsDimensions.FindFirst critere04
              If Not rsDimensions.NoMatch Then
                     rsDimensions.Edit   'modifier la table "dimensions"
                     rsDimensions![Quantité utilisée] = rsDimensions![Quantité utilisée] + Me.Quantity  'calcul du cumul par MP
                     rsDimensions.Update 'mise à jour de la table "dimensions"
              End If
              rsDim_aux.MoveNext 'longueur suivante de la table "dim_aux"
       Wend
       rsDim_aux.Close
       rsDimensions.Close
       Set rsDim_aux = Nothing
       Set rsDimensions = Nothing
    Le problème c'est dans la ligne
    rsDimensions.FindFirst critere04
    J'ai essayé au début:
    call rsDimensions.FindFirst (critere04)
    Mais c'est toujours la source du problème
    Merci de m'aider
    A+
    While the grass grows, the steer starves

  10. #10
    Membre expert
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 220
    Points : 3 779
    Points
    3 779

    Par défaut

    Bonsoir,
    J'ai un problème un peu pareil en fait je dois vérifier deux critère!!!
    Peux-tu préciser ta version d'Access ?
    J'utilise Access 2013 et il accepte plusieurs critères et sans la référence ADO.

  11. #11
    Membre habitué Avatar de Massiliya
    Femme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    mars 2017
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 159
    Points : 145
    Points
    145

    Par défaut

    Access 2016
    While the grass grows, the steer starves

  12. #12
    Membre habitué Avatar de Massiliya
    Femme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    mars 2017
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 159
    Points : 145
    Points
    145

    Par défaut

    Je pense que le problème provient plutôt du "call"
    Peut-être la syntaxe est incorrecte ! ! !
    While the grass grows, the steer starves

  13. #13
    Membre expert
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 220
    Points : 3 779
    Points
    3 779

    Par défaut

    Je pense que le problème provient plutôt du "call"
    Non, Call n'est pas en cause.
    Peux-tu essayer en cochant ADO dans tes références ?
    Nom : Ref_ADO.JPG
Affichages : 130
Taille : 48,6 Ko

  14. #14
    Membre habitué Avatar de Massiliya
    Femme Profil pro
    Ingénieur en génie industriel
    Inscrit en
    mars 2017
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur en génie industriel
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2017
    Messages : 159
    Points : 145
    Points
    145

    Par défaut

    Citation Envoyé par tee_grandbois Voir le message
    Non, Call n'est pas en cause.
    Peux-tu essayer en cochant ADO dans tes références ?
    Merci Tee le problème est résolu
    A+
    While the grass grows, the steer starves

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

Discussions similaires

  1. [XL-2010] recherche plusieurs critères dans les cellules
    Par sirine_ dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/11/2014, 16h12
  2. [XL-2010] recherche plusieurs critères dans les cellules
    Par sirine_ dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/11/2014, 12h41
  3. [XL-2007] Recherche avec plusieurs critéres résultat dans une seul colonne
    Par guigui69 dans le forum Excel
    Réponses: 3
    Dernier message: 24/09/2014, 14h34
  4. [XL-2000] Problème de recherche à plusieurs critères dans un document
    Par ben190186 dans le forum Excel
    Réponses: 2
    Dernier message: 21/10/2013, 15h34
  5. Réponses: 12
    Dernier message: 30/03/2006, 21h55

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