RechercheV dans Access depuis Excel dans requête
Bonjour,
J'ai la fonction suivante qui me permet de récupérer des données d'Access depuis Excel.
Code:
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 |
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.
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:
Code:
1 2
| SELECT Requête22.Champ1
FROM Requête22; |
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:
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 |