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
Partager