Bonjour!

J'ai une petite fonction qui me permet de mettre le résultat d'une requete dans une feuille. La requete est éxécuté sur un serveur SQL Server 2000.

La voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub DefinirRequete(P_Sheet As String, P_Query As String, P_Cel As String)
'on défini dans la cellule "P_Cel" de la feuille "P_Sheet" la requete "P_Query"
' "Server" et "Base" sont des constantes globales
 
    Sheets(P_Sheet).Select
    Cells.Clear
    With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DRIVER=SQL Server;SERVER=" & Server & ";UID=MonLogin;PWD=MonMotDePasse;APP=Microsoft Office 2003;WSID=" & Server & ";DATABASE=" & Base & ";Trusted_" _
        ), Array("Connection=Yes")), Destination:=Range(P_Cel))
        .CommandText = Array(P_Query)
        .Name = "Requete " & P_Sheet
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False 'L'erreur est ici : "Echec de l'autorisation" ... o_O?
    End With        
End Sub
J'ai cependant une erreur sur l'instruction refresh : "Echec de l'autorisation". J'en déduis donc que l'erreur viens d'un problème de droits. J'ai cependant vérifié mon Login et mon Mdp ils sont bon!

Je ne vois vraiment pas où est l'erreur, peut-être à part si ma chaine de connection contient une erreur. Peut-être un mauvais paramétrage de ma base SQL server. Quelqu'un aurait une idée?

En tout cas merci d'avance