[Catégorie encore modifiée .Net -> VBA] [SQL Server] Chaine de connexion avec DS
pitipilot
Messages postés112Date d'inscriptionmercredi 19 mai 2010StatutMembreDernière intervention14 mai 2021
-
8 juin 2011 à 08:08
pitipilot
Messages postés112Date d'inscriptionmercredi 19 mai 2010StatutMembreDernière intervention14 mai 2021
-
8 juin 2011 à 09:39
Bonjour j'ai un petit problème avec ma chaine de connexion vers une base SQL Server 2005 sur VBA. J'ai crée un compte utilisateur SQL qui possède tous les droits en lecture/écriture.
Voici ma chaine de connexion :
Set cn = New ADODB.Connection
With cn
.ConnectionString "Provider SQLOLEDB;Data Source=CheminDuServeur;Initial Catalog=MaBase;Uid=Login;Trusted_Connection=yes" 'Chaîne de connexion Sql Server 2005'
.Open
End With
La connexion s'effectue parfaitement en local mais dès que j'essaye d'y accéder en réseau ça ne marche plus.
J'ai donc créer un lien ODBC entre mon PC et ma base mais je ne trouve pas de chaine de connexion permettant d'utiliser ce lien ODBC. Est ce que quelqu'un a une idée ?
A voir également:
[Catégorie encore modifiée .Net -> VBA] [SQL Server] Chaine de connexion avec DS
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 juin 2011 à 09:03
Salut
VBA n'est pas du VB.Net --> Catégorie
Merci d'en tenir compte pour tes prochaines questions.
Pas la peine d'utiliser DSN pour te connecter à SQL Server.
Première chose : lire les exemples fournis par <ce site de référence>
Si tu utilises SQL Server dans sa version Express, n'oublie pas d'ajouter \SQLExpress après le nom/chemin de la machine hôte.
Si tu utilises "Trusted_Connection" :
- Ce n'est pas Yes mais True qu'il faut utiliser
- Dans ce cas, il n'est pas nécessaire de préciser le login/password puisque la connexion se base sur les identifiants de login Windows --> Voir SSPI
Personnellement, j'éviterai.
Exemple de connexion à SQL Server (non Express) :
cnnSqlServer est déclaré comme une ADODB.Connection
Public Function ConnectSqlServer(ServerName As String, DBName As String) As Boolean
' Renvoie True si connexion Ok
On Error GoTo Erreur
With cnnSqlServer
' Referme si déjà ouverte
If .State <> adStateClosed Then .Close
' Paramétrage connexion
.ConnectionTimeout = 5 ' TimeOut à la connexion
.CommandTimeout = 30 ' TimeOut des requètes
.Provider = "sqloledb"
.Properties("Data Source").Value = ServerName
.Properties("Initial Catalog").Value = DBName
.Properties("User ID").Value = sUserID
.Properties("Password").Value = sPassword
On Error Resume Next
' Connexion
.Open
' Attend connexion terminée
Do While .State = adStateConnecting
DoEvents
Loop
On Error GoTo 0
' Au final, renvoie True si on est bien ouvert
ConnectSqlServer CBool(.State adStateOpen)
End With
Fin:
Exit Function
Erreur:
MsgBox "#### ConnectSqlServer - Erreur " & CStr(Err.Number) & " - " & Err.Description, vbCritical Or vbOKOnly, "mon programme"
GoTo Fin
End Function
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)