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

Macros et VBA Excel Discussion :

Recherche dans une Table (ADO) [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Recherche dans une Table (ADO)
    Bonjour,

    Pour rechercher un article dans une table, j'utilise le code suivant:
    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
        'Ouverture de la Base Nationale
        Set objBaseNationale = OpenBDD(strFichierBase, "LS")
        Set objRecordset = CreateObject("ADODB.recordset")
     
        Const adUseClient = 3
        objBaseNationale.CursorLocation = adUseClient
        objRecordset.Open "SELECT * FROM Articles", objBaseNationale
     
        'Recherche de l'Article
        objRecordset.Find ("[Reference]='RBS 015'")
        If Not objRecordset.EOF Then
            Debug.Print ("Article trouvé dans la base")
        Else
            Debug.Print ("Article non trouvé dans la base")
        End If
     
        Call CloseBDD(objRecordset)
        Call CloseBDD(objBaseNationale)
    Etant amené à réaliser de nombreuses opérations de recherche dans cette table, je voudrais savoir si cette manière de faire est la bonne ou optimisable.

    Par avance merci.

    (La base est créée avec le moteur "Microsoft.ACE.OLEDB.12.0")

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu peux faire comme ça, mais au niveau optimisation il y a mieux car ça revient à faire une requête (plus rapide serte) pour chaque condition.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    While objRecordset.EOF = False
        Select Case Trim("" & objRecordset("Reference"))
            Case "RBS 015"
                Debug.Print ("Article trouvé dans la base")
            Case Else
                Debug.Print ("Article non trouvé dans la base")
        End Select
        objRecordset.movenext
    Wend
    petite erreur je regarde

    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 I As Long
    Dim txt()
    txt() = Array(Array("RBS 015", 0), Array("RBS 012", 0))
    While objRecordset.EOF = False
     
       For I = 0 To UBound(txt)
          If Trim("" & objRecordset("Reference")) = Trim("" & txt(I)(0)) Then txt(I)(1) = 1
       Next
     
        objRecordset.movenext
    Wend
    For I = 0 To UBound(txt)
       If CInt(txt(I)(1)) = 1 Then
        Debug.Print txt(I)(0) & " : Article non trouvé dans la base"
       Else
         Debug.Print txt(I)(0) & " : Article trouvé dans la base"
       End If
     
    Next
    Dernière modification par AlainTech ; 09/05/2013 à 19h33. Motif: Fusion de 2 messages

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour la méthode.

    Comme ça je peux rechercher l'ensemble des articles qui m’intéressent en une seule fois.

    Il est possible de transformer un peu le code pour faire des recherches multicritères par le même procédé.

  4. #4
    Invité
    Invité(e)
    Par défaut
    oui tu peux faire un tableau array a 3 ou 4 dimention ou fare le même test avec un autre champ dans la foulée!

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

Discussions similaires

  1. [SQL] recherche dans une table
    Par H-bil dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 06/06/2006, 11h26
  2. Recherche dans une table via un formulaire
    Par Z[ee]k dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 11h14
  3. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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