Fonction VB get des données du server SQL

Le code vb est comme ci-dessous:

Function GetDCF(vari As Ssortingng) Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim cn As ADODB.Connection Set cn = New ADODB.Connection Dim strConn As Ssortingng Dim sql As Ssortingng strConn = "PROVIDER=SQLOLEDB;DATA SOURCE=xxxxxx;INITIAL CATALOG=xxxxx;INTEGRATED SECURITY=sspi;" cn.Open strConn sql = "select '" & vari & "' from TBLmontecarlodcf where COMPANY = '" & Range("A2").Value & "' " rs.Open sql, cn, adOpenDynamic, adLockOptimistic GetDCF = rs.Fields(vari) cn.Close Set rs = Nothing Set cn = Nothing End Function 

Mais il ne renvoie pas une valeur dans Excel. Au lieu de cela, si je replace '"& vari &"' par un champ réel dans sql server, et met GetDCF = rs! Fieldname, j'ai obtenu la valeur. Puis-je vous requestr où est-ce qui ne va pas avec GetDCF = rs.Fields (vari)?

Vous semblez inclure votre champ en guillemets simples dans sql. Supposons que la valeur de vari passée dans la fonction soit Person et votre Range("A2").value est Catepillar , votre sql ressemblera à select 'person' from TBLmontecarlodcf where COMPANY = 'Catepillar'

Au lieu:

 sql = "select " & vari & " from TBLmontecarlodcf where COMPANY = '" & Range("A2").Value & "' "