Bonjour,
J'ai la fonction suivante qui me permet de récupérer des données d'Access depuis Excel.
J'aimerais l'adapter pour faire la recherche dans une requête que j'ai déjà enregistré dans Access au lieu de rechercher dans une table Access.
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 Function RecherchevAccess(ChampRecherche, valeurRecherche, champRetour, tbl, base) Dim GenereCSTRING As String Dim RS If Connexion.State = 0 Then Fichier = "F: " & "\" & base GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";" Connexion.Open GenereCSTRING End If SQL = "Select " & champRetour & " FROM " & tbl & " Where " & _ ChampRecherche & "='" & valeurRecherche & "'" Set RS = CreateObject("ADODB.Recordset") RS.Open SQL, Connexion, 1, 3 If RS.EOF = False Then RecherchevAccess = RS(champRetour) RS.Close End Function
Comme je ne savais pas comment l'écrire et que je n'ai pas pu trouver l'information que je cherchais dans Internet, j'ai essayé de créer une requête à partir de ma requête dans Access. Je n'ai pas pu recréer exactement la même chose que j'ai besoin dans ma fonction, mais ça m'a donné le code SQL suivant:
J'ai donc essayé d'utiliser la même syntaxe (Requête22.Champ1) pour modifier ma fonction, mais ça ne fonctionne pas et je n'ai plus d'idée quoi faire. Voici la fonction modifiée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Requête22.Champ1 FROM Requête22;
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 Function RecherchevAccess(ChampRecherche, valeurRecherche, champRetour, tbl, base) Dim GenereCSTRING As String Dim RS If Connexion.State = 0 Then Fichier = "F: " & "\" & base GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";" Connexion.Open GenereCSTRING End If SQL = "Select " & tbl & "." & champRetour & " FROM " & tbl & " Where " & _ "((" & tbl & "." & ChampRecherche & ")='" & valeurRecherche & "');" Set RS = CreateObject("ADODB.Recordset") RS.Open SQL, Connexion, 1, 3 If RS.EOF = False Then RecherchevAccess = RS(tbl & "." & champRetour) RS.Close End Function
Partager