Bonjour,
Voilà je souhaite développé un accès à une base SQL Serveur depuis un script VBA sous Access.
J'ai développé une connection à cette base, que je souhaite appelé à chaque fois que j'en ai besoin.
Ci-dessous mon code :
Mon problème est le suivant.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 ' Variable Globale pour la connection serveur Public Gbl_CnxSqlServer As ADODB.Connection Public Gbl_CnxSqlOK As Boolean ' Connection au serveur SQL Server, via ADODB Function ADO_CnxSQLServer() If (Gbl_CnxSqlOK <> True) Then Debug.Print "ADO_CnxSQLServer: affectation de la variable Gbl_CnxSqlServer" Dim SqlDataSource As String Dim SqlUsername As String Dim SqlPassword As String Dim SqlDatabase As String Dim cnn As New ADODB.Connection SqlDataSource = "monserveur" SqlUsername = "sa" SqlPassword = "sa" SqlDatabase = "mabdd" cnn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=" + SqlDataSource + ";UID=" + SqlUsername + ";PWD=" + SqlPassword + ";DATABASE=" + SqlDatabase Set Gbl_CnxSqlServer = cnn Gbl_CnxSqlOK = True Debug.Print cnn.State (1) End If Debug.Print Gbl_CnxSqlServer.State (2) ADO_CnxSQLServer = Gbl_CnxSqlServer End Function Function SetRecordSetParticulier() Dim cnnSql As New ADODB.Connection cnnSql = ADO_CnxSQLServer Debug.Print cnnSql.State (3) Dim tbl As New ADODB.Recordset tbl.Open "matable", cnnSql, adOpenDynamic, adLockOptimistic SetRecordSetParticulier = tbl End Function
Aux points (1) et (2), l'état de ma connection est toujours active. Que je l'appelle 1 ou plusieurs fois.
Par contre à l'étape (3), la connextion est toujours fermée ?
je ne comprend pas pourquoi ...
Merci de m'éclairer ...
Aurélien
Partager