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 un classeur fermé


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 15
    Points
    15
    Par défaut Recherche dans un classeur fermé
    Bonjour,

    Je travaille avec des classeurs fermés , et je souhaite écrire la requête sql qui effectue la recherche suivante :
    afficher la valeur du champ "extension appli 1" dont le champ "code document" est égal = Str_Part_Number dans la table "feuil1" .

    mais je n'arrive pas écrire la requête , car je ne sais pas si dans ce contexte si je dois faire un rst.filter ou rst.find ?

    mon problème se situe à partir de la ligne 60 jusqu'à la fin.

    Merci de votre attention,


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Sub RecherchePart()
    ' source : developpez.com
    'auteur: HMA
    'date: 09/01/2013
    'but: rechercher une donnée avec un critère précis d'un classeur fermé
     
    Dim i As Integer
    Dim NumRows As Long
    Dim Tab_FileName() As String
    Dim Str_Part_Number As String
    Dim Plage As Range
    Dim StrChercher As String
     
    '---------
    Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim strSQL As String
    Dim Rst As ADODB.Recordset
    Dim Feuille As String
     
        Range("E2").Select   ' colonne file_title
     
        '----- création de niveau -1 pour le fichiers
        i = 2
        Do
         'découpe la chaine en fonction des espaces " "
         'le résultat de la fonction Split est stocké dans un tableau
           'Tab_FileName = Split(Range("E" & i), "-")
           StrChercher = Val(Range("E" & i))
           Str_Part_Number = Val(Range("E" & i))
     
           Debug.Print StrChercher
           k = 1
               ' parcourir la colonne A(code document) du fichier GED.xls
               Do
                 ' If Not IsEmpty(Str_Part_Number) Or Str_Part_Number <> 0 Then
                 If Str_Part_Number <> 0 Then
     
                    '-------------------------------------
                  'instantiation des variables
                  Set Cn = New ADODB.Connection
                  Set Rst = New ADODB.Recordset
     
                  'Fichier = ThisWorkbook.Path & "\" & sNomFichierFile
                  Fichier = ThisWorkbook.Path & "\EXTRACT\" & sNomFichierFile
                  Feuille = "Feuil1"
                  'Cellule = "A2:A5"
     
                  'établit la connexion avec le classeur source
                  With Cn
                        .Provider = "MSDASQL"
                        .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
                            "DBQ=" & Fichier & "; ReadOnly=False;"
                        .Open
                  End With
                  'Définit la requête.
                   strSQL = "SELECT * FROM [" & Feuille & "$]"
                   Set Rst = Cn.Execute(strSQL)
     
                   'afficher (rechercher ou filtrer ??) la valeur du champ "extension appli 1" de la table "feuil 1" dont "code document" =  str_part_number
                   strSQL = "SELECT [extension appli 1]  * FROM [" & Feuille & "$] WHERE [code document]='" & Str_Part_Number & "'"
                   Set Rst = Cn.Execute(strSQL)
     
                   '---récupérer la valeur du champ "extension appli 1"
                  Debug.Print Rst.Fields("extension appli 1").Value
     
                  Do While Not Rst.EOF()
                  'Debug.Print Rst.Fields.Count
                  Debug.Print Rst.Fields(4)   ' indice de la colonne "extension appli 1"
                  Rst.MoveNext
                  Loop
     
     
                  'Fermer connexion
                  Cn.Close
     
                  'désinstantiation pour libérer la mémoire
                  Set Cn = Nothing
     
                  '----------------------------------------------
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir x109488

    Essaye avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT [extension appli 1] FROM [" & Feuille & "$] WHERE [code document]='" & Str_Part_Number & "'"
    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il serait bon que tu indiques l'erreur qui se produit.

    Personnellement je ne trouve pas que la méthode Execute soit l'idéal pour un recordset de type Select.

    Tu devrais peut-être aussi tester avec un ouverture du recordset (tuto ADO sur le site).

    De plus je ne vois pas l'intérêt d'utiliser deux fois de suite le recordset ligne 58 et 62

    Il faudrait des explications.

    Philippe

  4. #4
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Merci de ta réponse , effectivement les lignes 56-58 n'avaient pas à être là !
    c'est une erreur de code de ma part.
    Mais cela n'était pas la cause de mon problème , car les lignes suivantes 61 et 62 corrige mon erreur des lignes 56-58.
    Merci encore

  5. #5
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup BrunoM45 !

    ta correction marche super bien .
    En fait, mon erreur était que , j'avais oublié le symbole étoile (*) avant le from.
    je l'ai donc enlevé et tout marche super bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT [extension appli 1] FROM [" & Feuille & "$] WHERE [code document]='" & Str_Part_Number & "'"

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 20/05/2015, 13h23
  2. Recherche v dans un classeur fermé avec variable
    Par JonathanF dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/02/2013, 15h47
  3. [XL-2002] lecture recherche copie enregistrement dans un classeur fermé
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/11/2011, 15h06
  4. [XL-2007] Recherche valeur cellule dans plusieurs classeurs fermés
    Par Millenniums dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/04/2011, 20h32
  5. recherche d'info dans des classeurs fermé
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2006, 19h04

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