Je viens de rencontrer un problème absolument inexplicable, en effet j'ouvre un recordset via procédure publique sur un module, procédure qui ouvre la base de données si elle n'a pas encore été ouverte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Global bdd As Database Global connect As Boolean Global rcsniveau As Recordset
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2SQL = "Select Niveau_Poste.NumNiveau,Niveau_Poste.NomNiveau From Niveau_Poste;" connexion_BDD SQL, rcsniveau
Ce code fonctionna tout à fait correctement sur mon premier projet, lors de la réalisation du second j'ai importé le module, et la vb me genère une erreur : "incompatibilité de type" pour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Public Sub connexion_BDD(ByVal SQL As String, ByRef rcs As Recordset) If connect = False Then Set bdd = OpenDatabase("TAPPPO2006-access97.mdb", False) End If connect = True Set rcs = bdd.OpenRecordset(SQL$) If rcs.EditMode = adEditInProgress Or rcs.EditMode = adEditAdd Then MsgBox "Impossible d'ouvrir la connexion pour l'instant. La base de données est occupées, veuillez réitérer votre demande plus tard", vbCritical End If End Sub
J'ai bien vérifié mes références... tout est identique, je me suis même "amusé" à retaper mon module completement mais rien ne change...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set rcs = bdd.OpenRecordset(SQL$)
Ce qui me rend fou c'est que si j'effectue l'ouverture du recordset et de la bdd sur la procédure privée qui appele la publique du module, ben ça marche !
Que se passe-t-il ?j'ai un grand besoin d'aide la car je viens d'y passer deux heures sans arriver à régler le probleme :/
Partager