XL 2013 Function--> récupérer recordset

hctad1

XLDnaute Junior
Bonjour,
comme j'ai (très) souvent cette requête à faire pour récupérer l'id_produit dans ma base:
select products_id from products where products_model="ma_ref";

Je souhaite me créer une petite function de ce type dans personal.xlsm
=model_to_id(la_cellule) ou ma_ref est dans "la_cellule"

Je bute sur la méthode pour récupérer le recordset (qui sera toujours unique) et le mettre en résultat.

Une idée.
VB:
Function model_to_id(la_cellule1)


   Dim Password As String
    Dim SQLStr As String
    Dim Server_Name As String
    Dim User_ID As String
    Dim Database_Name As String
    Dim table_name As String
  
  
    Set Rs = CreateObject("ADODB.Recordset")
    Server_Name = "mon_serveur"
    Database_Name = "ma_base"
    User_ID = "mon_utilisateur"
    Password = "monmotdepasse"
      Set cn = CreateObject("ADODB.Connection")
    cn.Open "Driver={MySQL ODBC 3.51 Driver};Server=" & _
            Server_Name & ";Database=" & Database_Name & _
            ";Uid=" & User_ID & ";Pwd=" & Password & ";"
    
    SQLStr = "select products_id from products where products_model='" & la_cellule1 & "'"
    Rs.Open SQLStr, cn, adOpenStatic

    'je colle le resultat   dans la bonne cellule
model_to_id = ????
End Function
 

hctad1

XLDnaute Junior
Bonjour,
Je t'invite à reprendre le code du poste #8 maintenant que tu a vu ton erreur !
ça me rend dingue :
je prends ton code, j'édite les paramètres de connexion et patatras.
Capture.JPG

je ne vois aucune faute de frappe. J'appelle bien mon driver comme d'hab.
je relis et relis, ne ne vois pas l'erreur.

J'ai même copié/collé chacun des paramètres de connexion des fois que je passe sans la voir sur une faute de frappe. Bah non, aucune faute de frappe.

Je n'ose pas penser que cette méthode de connexion puisse être incompatible avec mon excel.

De plus n'étant pas encore à l'aise avec la notion de
with .******
end with

je ne sais pas trop modifier ton code.
c'est pour ça que j'étais revenu à ma syntaxe initiale.

je tourne en rond et j'emmerde tout le monde avec mon truc, je n'aime pas ça :-(

Donc avec ton code: pour une raison que j'ignore je ne me connecte pas à la bdd.
Avec le mien, j'ai bien un résultat mais impossible de le récupérer dans la_cellule.
 

Discussions similaires