Erreur d'exécution 3014 Impossible d'ouvrir plus de table

patrickm78 Messages postés 2 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 14 mai 2010 - 12 mai 2010 à 10:14
patrickm78 Messages postés 2 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 14 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.

Patrick

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
patrickm78 Messages postés 2 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 14 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.

Cordialement

Patrick
0
Rejoignez-nous