Bonjour,

Je cherche à me connecter à une BDD via ODBD, en utilisant l'objet QueryTable. J'ai réussi à le faire, cependant je cherche à comprendre la différence entre le "sous" argument DSN (DataSourceName) et DB (DataBase). En effet, l'argument DSN semble être nécessaire, alors que DB est facultatif. J'aimerai comprendre pourquoi ?

Le code ci dessous fonctionne très bien :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
  With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=LALA_PROD", Destination:=Range("A1"))
        .CommandText = "SELECT colonne1 FROM table"
        .Refresh 
    End With
Si j'essaye d'enlever le DSN et que je mentionne le DB et l'UID (userID), ça ne fonctionne plus :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
  With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DB=msydb_lala;UID=blabla;", _  Destination:=Range("A1"))
        .CommandText = "SELECT colonne1 FROM table"
        .Refresh 
    End With
Mystère mystère ...