ERREUR 80040e4d

Bonjour,

Voulant ouvrir une connection à une base de donnée j'utilise le code suivant :

Dim connexion As New ADODB.Connection

dbPath = Path

connexion.ConnectionString = "UID=" & identifiant & ";PWD=" & mdp & ";DRIVER={SQL Server};Server=A42APTECP02;Database=BDDChacal_TEST;"

connexion.Open

Set Connect = connexion

Suite au lancement du programme le message d'erreur suivant apparaît : Erreur d'exécution '-2147217843 (80040e4d)': [Microsoft][ODBC SQL Server Driver][SQL Server]Echec de l'ouverture de session de l'utilisateur 'Nom D'utilisateur'.

Puis quand je pars sur le débogage j'atterrie sur la ligne surligné

Pouvez-vous m'aider à résoudre cette erreur ?

Merci d'avance.

Arthur

Personnellement, j'aurai tendance à écrire plutôt un truc genre :

Dim Connect As Object

    Set Connect = CreateObject("ADODB.Connection")
    Connect.Open "Driver={SQL Server};Server=A42APTECP02r;Database=BDDChacal_TEST;Uid=identifiant;Pwd=mdp;"
pierrep56 a écrit :

Personnellement, j'aurai tendance à écrire plutôt un truc genre :

Dim Connect As Object

    Set Connect = CreateObject("ADODB.Connection")
    Connect.Open "Driver={SQL Server};Server=A42APTECP02r;Database=BDDChacal_TEST;Uid=identifiant;Pwd=mdp;"

Bonjour pierrep56,

Apres le remplacement du bout de code par le tien j'obtient toujours la même erreur

(PS: j'ai rectifier encore un peu ton code (enlever le r en trop dans le nom du serveur et mis identifiant et mdp en variable) )

Up

Merci pour toutes vos réponses j'ai finalement trouvé la solution et je vous fait parvenir le petit bout de code suivant

Dim Connect As Object, Recordset As Object
                        Set Connect = CreateObject("ADODB.Connection")
                        Set Recordset = CreateObject("ADODB.RecordSet")
                        Connect.Open "Provider=SQLOLEDB;Server=NOM DU SERVEUR;Database=NOM DE LA BASE DE DONNEES;Persist Security Info=False;Integrated Security=SSPI;" 'chaine de connection ou le mdp et l'utilisateur sont les meme que l'identification windows et définie par Integrated Security=SSP pour une base SQL Server défini par Provider=SQLOLEDB

                        With Recordset
                        .Open Sql, Connect 'Create the recordset.
                        Set .ActiveConnection = Nothing 'Disconnect the recordset.
                        End With

                        Connect.Close 'fermeture de la connection à distance

Cela fonctionne mais des ajouts sont a faire et j'aurai encore besoin de votre aide.

1èrement : j'aimerait réactualiser les requetes SQL qui sont sur la 1ère et la 2ème feuille de mon classeur mais le code "ActiveWorkbook.RefreshAll" ne fonctionne pas, càd qu'il s'execute mais seulement sur la page active (logique c'est écrit "Active") mais je ne trouve pas de code pour toutes les page de classeur, j'ai donc voulue faire des .Select sur chaque page puis une actualisation mais cela ne fonctionne pas.

2èmement : j'aimerait pouvoir récupérer l'identifiant de connnection par Windows afin de l'entrer dans une case d'une feuille "Historique changements"(pour celle-ci ne n'ai pas encore commencer à chercher mais je m'y attèle tout de suite .

Merci d'avance pour votre aide

Arthur

EDIT: Bon ben les deux problèmes sont résolu,

le 1erc'était

    ActiveWorkbook.RefreshAll
    Worksheets("NOM DE LA FEUILLE").Calculate

le 2ème était tout simple :

    IdentifiantWindows=Environ("USERNAME")

Merci pour tout

Arthur

Rechercher des sujets similaires à "erreur 80040e4d"