Bonjour,

Cela fait plusieurs jours que je bosse sur le même projet excel et quand je veux exécuter 2 actions, cela indique "erreurd'exécution 3709: impossible d'utiliser cette connexion pour effectuer cette opération. Elle est fermée ou non valide dans ce contexte". En cliquant sur débogage, cela surligne les lignes "NouveauDevis.Show" et "RechDevis.Show": impossible d'afficher mes deux formulaires!!

Je ne vois même pas d'où peut venir le problème! Si quelqu'un pouvait m'aider je lui serai grandement reconnaissante!

Pour préciser, ces actions demande l'ouverture d'une base de données Access (qui est bien dans le même répertoire). Voici mon code

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
Private Function AccessActif() As Boolean
 
' Teste si Access a été lancé
On Error GoTo Err:
If blnAccess Then
' Teste si la base de données Devis est toujours ouverte
' Initialisation est un module de la base Devis
   appAccess.Run "Initialisation"
Else
' Lance Access et ouvre la base Devis.accdb
lanceAccess:
   On Error GoTo Err2:
   Set appAccess = CreateObject("Access.application")
   appAccess.OpenCurrentDatabase (strFolder & "\Devis.accdb")
   appAccess.Visible = True
   blnAccess = True
End If
AccessActif = True
Exit Function
 
Err:
blnAccess = False
GoTo lanceAccess:
Exit Function
Err2:
AccessActif = False
 
End Function
 
Sub Ajout_Devis()
' Affiche le formulaire NouveauDevis
NouveauDevis.Show
End Sub
 
Sub Rech_Devis()
' Affiche le formulaire de recherche des devis
RechDevis.Show
End Sub
Et dans un autre module:

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
Option Explicit
' Variables publiques
Public i As Integer
Public j As Integer
Public k As Integer
 
' Répertoire de l'application
Public strFolder As String
 
' Objets ADO
Private cnnCli As ADODB.Connection
Private rstCli As ADODB.Recordset
Private cnnCond As ADODB.Connection
Private rstCond As ADODB.Recordset
 
Public Function OuvreBase() As Boolean
 
' Ouverture de la base Devis.accdb
On Error GoTo Err:
Set cnnCli = New ADODB.Connection
With cnnCli
   .Provider = "Microsoft.ACE.OLEDB.12.0"
   .Open "C:\Users\Pauline Kergus\Documents\Logiciel Spac\Devis.accdb"
End With
On Error GoTo 0
OuvreBase = True
Exit Function
 
Err:
On Error GoTo 0
OuvreBase = False
MsgBox "Problème lors de l'ouverture de la base Devis.accdb", vbExclamation
End Function