Microsoft 365 requete SQL avec une cellule excel comme variable

plouc34

XLDnaute Nouveau
Bonjour.
j'ai bien cherché sur le forum mais je n'ai pas trouvé de solution qui fonctionne.
Je suis sous off365. j'ai accès à une grosse BDD SQL et j'ai besoin d'y extraire des infos en partant de plusieurs variables que je lui passe.
le type de connexion est OLE DB et la requete est assez simple à la base du genre :
select date from evenement where id=<une cellule de ma feuille excel>
J'ai bien essayé : select date from evenement where id=A1 --> bien évidemment il ne trouve rien car il n'y a pas d'ID = "A1"
ou select date from evenement where id=[A1] ==> invalid column name
ou select date from evenement where id=&A1 ==> inorrect syntax near'&'

Mon besoin in fine est plus large, ceci n'est que la première étape de ma recherche.
A la fin, je veux avoir un tableau avec tous les événements et pour chaque événement la date maximale (select max(date)) de celui-ci que je vais aller chercher dans la BDD SQL.
bien évidemment, je pourrais faire toute la requête dans excel, mais ceci me lancerait dans une requête interminable et je ne souhaite pas trop tatonner sur la BDD qui est sensible par ailleurs.
Merci d'avance à vous pour vos réponses et Joyeux Noël à toutes et tous !
 

plouc34

XLDnaute Nouveau
Bonjour Laurent. Merci pour votre réponse.

J'ai tenté l'expression :
VB:
"select date from evenement id Like " & "'%" & [A1]  & "%';"

Mais j'ai eu droit à un message :
Incorrect syntax near '&'

J'ai tenté sans les " en début et fin d'expression, mais j'ai eu droit à Incorrect syntax near the keyword 'Like'

Pourtant, si dans excel, je tape
Code:
select date from evenement where id=24

J'ai bien ma réponse :)

Donc ce n'est pas un problème de table ou de relation. Mon soucis n'est pas SQL mais comment envoyer un ID comme paramètre à ma requete sql.

Si quelqu'un pouvait m'aider, cela serait vraiment sympa !
 

plouc34

XLDnaute Nouveau
Bonjour Pierre. Merci pour votre réponse.
Me concernant, je ne passe pas par VBA, mais depuis la fonction excel : DONNEES -> OBTENIR DES DONNES -> A PARTIR D'UNE BDD SQLSERVER

- une fois qu'on a saisi les bons accès à la BDD, on a accès aux tables . Ensuite dans l"onglet "DEFINITION", champs "TEXTE DE LA COMMANDE", on saisi la commande SQL et on exécute.
C'est dans ce champ "texte de la commande" que je voudrai passer mon paramètre.

Est-ce que je comprends que je suis obligé de le faire en VBA ? cela me paraîtrait surprenant qu'on ne puisse pas passer un paramètre..
 

plouc34

XLDnaute Nouveau
Bonjour Laurent. Merci de votre retour.
Mais mon problème ne se situe pas dans la requete SQL mais bien dans l'envoi de paramètre à cette requête :
==> select date from evenement where id=24 ==>cela fonctionne

Mais moi je voudrai pouvoir faire fonctionner une commande du genre :
==> select date from evenement where id=A1
A1 étant une cellule excel dans laquelle je pourrai mettre une valeur différente pour que excel me retourne le résultat de la requete en fonction de ce qu'il y a dans la case A1.
 

laurent950

XLDnaute Accro
Bonsoir,
Mais moi je voudrai pouvoir faire fonctionner une commande du genre :
==> select date from evenement where id=A1
A1 étant une cellule excel dans laquelle je pourrai mettre une valeur différente pour que excel me retourne le résultat de la requete en fonction de ce qu'il y a dans la case A1.

la cellule A1 ou Cells(1,1) étant une cellule excel dans laquelle je pourrai mettre une valeur différente, comme votre exemple soit : 24.
VB:
"select date from evenement where id " & "'%" & Cells(1,1) & "%';"
Laurent
 
Dernière édition:

plouc34

XLDnaute Nouveau
Merci. je comprends donc que je n'ai le choix que de passer via VB. Je vais donc m'y mettre, cela va me prendre un peu plus de temps que prévu, car cela fait trop longtemps que je n'ai pas fait du VB dans excel.
Merci en tous cas Laurent pour vos réponses.
et surtout, bonnes fêtes à toutes et tous !
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 885
Membres
103 018
dernier inscrit
mohcen23