Microsoft 365 problème avec un requête MySQL

José77

XLDnaute Occasionnel
Bonjour à tous,
Voilà le problème. Ce code fonctionne très bien, mais ....
Dim chemin As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

'Valeur du chemin
chemin = ThisWorkbook.Path

'Créer une nouvelle connexion
Set cn = New ADODB.Connection

'Définir les propriétés de connexion
cn.Provider = "Microsoft.ACE.OLEDB.12.0"
cn.ConnectionString = "Data Source =" & chemin & "\Adherents.accdb"
cn.Open
Set rs = New ADODB.Recordset

rs.Open "SELECT distinct stock.Prod FROM stock ORDER BY stock.Prod", cn
UserForm1.listBox1.Column = rs.GetRows

Mais .... Lorsque je remplace la ligne rs.Open etc ..... par

rs.Open "SELECT stock.Prod, stock.* FROM stock WHERE stock.Prod=" & rech, cn

rech étant une valeur resultant d'un combobox j'otiens le message d'erreur suivant:
aucune valeur donnée pour un ou plusieurs paramètres requis

Si quelqu'un peut m'éclairer ce ne serait pas de refus, car depuis un bon moment je perds mon latin.
D'avance merci
José
 

fanch55

XLDnaute Barbatruc
Salut à tous,
"SELECT stock.Prod, stock.* FROM stock WHERE stock.Prod=" & rech
Vous voulez seulement Prod ou tous les champs de stock?
La requête ne comprend pas la demande, Prod étant inclus dans "*" .

Si on se re ferre à la requête initiale, je pense que la bonne modif est :
SQL:
rs.Open "SELECT distinct Prod FROM stock WHERE Prod=" & rech, cn
 

José77

XLDnaute Occasionnel
Bonjour,
Je vois bien une base Access mais pas de MySQL, j'imagine qu'il s'agit d'une table liée !

De quel type est stock.Prod ?
Si c'est du texte, il faut écrire
Code:
"SELECT * FROM stock WHERE stock.Prod='" & rech & "'", cn
Bonjour,
Je vois bien une base Access mais pas de MySQL, j'imagine qu'il s'agit d'une table liée !

De quel type est stock.Prod ?
Si c'est du texte, il faut écrire
Code:
"SELECT * FROM stock WHERE stock.Prod='" & rech & "'", cn

Bonjour,
Je vois bien une base Access mais pas de MySQL, j'imagine qu'il s'agit d'une table liée !

De quel type est stock.Prod ?
Si c'est du texte, il faut écrire
Code:
"SELECT * FROM stock WHERE stock.Prod='" & rech & "'", cn
Encore une fois merci beaucoup. Le problème venait des apostrophes que je ne savait pas mettre en place.
 

merinos-BernardEtang

XLDnaute Accro
Bonjour a tous,

Pourquoi employer VBA alors que Query existe?

j'ai retrouvé
Code:
let
    StartDate=DateBegin,
    EndDate=DateEnd,
    Source = Sql.Database("this-is-the-database-url.com", "TableNameHere",
    [Query="SELECT * FROM [TableNameHere].[dbo].[Logs] WHERE CreatedTime >='" &StartDate& "' AND CreatedTime <='" &EndDate& "' ",
    CommandTimeout=#duration(0, 0, 10, 0), HierarchicalNavigation=true, MultiSubnetFailover=true])
in
    Source

ici

Au plaisir,

Merinos
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 087
Messages
2 116 083
Membres
112 655
dernier inscrit
fannycordi