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)
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 à distanceCela 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").Calculatele 2ème était tout simple :
IdentifiantWindows=Environ("USERNAME")Merci pour tout
Arthur