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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Sub odbcConnecter()
Dim db As DAO.Database, strODBCconn As String
Dim qdef As DAO.QueryDef, strSQL As String
Dim strUID As String, strPWD As String
Dim errX As DAO.Error, strErrMsg As String
strUID = "User1"
strPWD = "123"
On Error GoTo ERRH
' Réfénce la base de données en cours
Set db = CurrentDb
' Chaîne de connexion ODBC
strODBCconn = "ODBC;" & "DSN=Mon DSN;" & "Database=MaBDD;" & _
"Uid=" & strUID & ";Pwd=" & strPWD
' Crée une requête SQL Direct temporaire
strSQL = "SELECT TOP 1 * FROM fournisseurs"
Set qdef = db.CreateQueryDef("", strSQL)
qdef.Connect = strODBCconn
' Exécute la requête
qdef.OpenRecordset
QUIT:
Set qdef = Nothing
Set db = Nothing
Exit Sub
ERRH:
strErrMsg = "Erreur N° " & CStr(Err.Number) & " : " & Err.Description
Select Case Err.Number
Case 3146, 3151, 3154, 3155, 3156, 3157, 3231, 3232, 3234, 3225, 3238, 3247, 3254
strErrMsg = strErrMsg & vbCrLf & vbCrLf & _
">>> Erreurs complémentaires DAO :" & vbCrLf & _
"======================"
'Récupérations Erreur(s) driver ODBC
For Each errX In DBEngine.Errors
strErrMsg = strErrMsg & vbCrLf & Format(errX.Number, "00000") & " : " & errX.Description
Next
End Select
MsgBox strErrMsg
Resume QUIT
End Sub |
Partager