Erreur d'exécution 3014 Impossible d'ouvrir plus de table
patrickm78
Messages postés2Date d'inscriptiondimanche 11 avril 2004StatutMembreDernière intervention14 mai 2010
-
12 mai 2010 à 10:14
patrickm78
Messages postés2Date d'inscriptiondimanche 11 avril 2004StatutMembreDernière intervention14 mai 2010
-
14 mai 2010 à 08:04
Bonjour à tous,
J'utilise le composant SSTAB qui comporte 4 onglets : "Fabricants" "Modèles" "Références" "Services". Pour chacun de ces inglets un ListBox qui exécute une ou plusieurs requêtes SQL dans une base de données Access 97.
Toutes les requêtes sont conçues ainsi :
(exemple pour Fabricants)
set Fabricant=BaseDonnees.OpenRecordSet
......
......
Fabricant.Close
Set Fabricant = Nothing
Ces deux dernières lignes permettent, je pense de fermer proprement le jeu d'enregistrements. Pour autant, à l'exécution du programme, j'obtiens le message "Erreur d'exécution 3014 Impossible d'ouvrir plus de table".
L'une ou l'un d'entre vous pourrait-il m'aider à corriger ce problème. Merci par avance.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 mai 2010 à 14:32
Salut
Tu es dans le VBA de Access 97 ou bien dans du vrai VB6 ?
Oui, le Close et le Set Nothing sont là pour 'fermer' puis 'décharger' l'objet et c'est une bonne habitude.
Quand cette erreur survient, est-ce au tout début de l'appli ?
Si oui, combien de RecordSet (puisque c'est semble t-il l'objet que tu manipules) sont-ils ouverts ?
Si non, c'est après combien de manips ?
A quel rythme manipules-tu ces RecordSet ?
De quel type sont-ils ? ADO ou DAO ?
Quelle est ta méthode | Chaine de connexion ?
Le moteur Jet est-il à jour ? Version Jet4 SP8 dernier en date <lien ici> Quelle est ta version de Windows ? A jour ?
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)
patrickm78
Messages postés2Date d'inscriptiondimanche 11 avril 2004StatutMembreDernière intervention14 mai 2010 14 mai 2010 à 08:04
Bonour,
Merci pour votre promptitude à me répondre. Je vous réponds de mon domicile donc je n'ai pas les sources de mes codes qui sont au travail. Je peux néanmoins vous dire que j'utilise VB6. L'erreur survient dès le lancement de l'application.
Un module BAS avec ce code :
Attribute VB_Name = "Module1"
Option Explicit
Global Const MaBase = "Gestion.MDB"
Global BaseDonnees As Database
Function Apostrophe(ByVal Chaine As String) As String
Dim I As Integer
Dim TMP As String
I = 1
Do
I = InStr(I, Chaine, "'")
If I > 0 Then
TMP = Left(Chaine, I) & "'" & Mid(Chaine, I + 1, Len(Chaine))
Chaine = TMP
I = I + 2
End If
Loop While I > 0
Apostrophe = Chaine
End Function
Au niveau du formulaire, un composant de type "onglet" (quatre onglets), trois composants "data". Chaque onglet comporte 3 Recordset soit 9 au total.
Private Sub Form_Load()
ChDrive App.Path
ChDir App.Path
Set BaseDonnees = Workspaces(0).OpenDatabase(MaBase)
End Sub
Je ne pense pas disposer de la dernière version Jet4 SP8.