IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

Impossible d'ouvrir plus de tables


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Par défaut Impossible d'ouvrir plus de tables
    Bonjour,

    Je développe actuellement une application a l'aide de Visual Studio 2010 Express. Mon application fonctionne avec une base de donnée Access.

    La base de donnée commençant a grandir exponentiellement, une erreur récurrentes et handicapante pointe le bout de son nez un peu trop souvent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Impossible d'ouvrir plus de table.
    J'ai consulter internet pour avoir une possible solution, je suis tombé sur ce forum a cette adresse.

    http://www.developpez.net/forums/d20...us-tablesquot/

    L'utilisateurs, concerné par le même problème que moi a suggéré de fractionné les requêtes, de fermer, puis de rouvrir la base de donné et de continuer les requêtes.

    J'ai procéder comme suit :
    Le formulaire ou se déclenchais le plus fréquemment l'erreur est le formulaire de recherche lors de l'affichage de tous les éléments d'une table (au nombre de 530). L'erreur se produisais systématiquement après 336 lectures.
    J'ai donc dans un premier temps laisser les 300 premières occurrences s'afficher, puis laisser a l'utilisateurs le choix d'en afficher 300 autres par un bouton. Jusque la, pas de souci. Je ferme la base a l'aide de cette procédure :

    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
     
        Public strConn As String = "provider=Microsoft.jet.oledb.4.0; data source=" & LecheminBase
        Public objConnex As OleDbConnection = New OleDbConnection(strConn)
        Public objComm As OleDbCommand
        Public objDR As OleDbDataReader
     
        Public Sub FermetureBase()
                objConnex.Dispose()
                objComm.Dispose()
                objDR.Close()
                objConnex.Close()
        End Sub
     
        Public Sub ReinitialiserDB()
            FermetureBase()
            objConnex.ConnectionString = strConn
            objConnex.Open()
        End Sub
    Mais j'ai l'impression que ce code est réellement sans effet. Puisque avec cette réinitialisation ou sans, le résultat est le même.

    J'ai aussi visiter le site Microsoft, mais ma procédure d’accès a la base étant totalement différentes de l’accès montré sur le site, et ne souhaitant pas refaire tout mes acces a la base de données, je m'en remet a vous !

    Y'a-t-il une partie de code que j'oublie pour réinitialiser la base ?

    Comment eviter une telle erreur ?

    Merci de vos réponses !

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Par défaut
    Des nouvelles sur ce post,
    J'ai changer le format de ma base de donnée en .accdb (format Access 2007).
    L'erreur est cette fois ci différentes mais, j'ai l'impression qu'elle se produit potentiellement sur le même événement, c'est a dire la même erreur qu'avant avec un libellé différents, soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ressources système insuffisantes.

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Pourquoi ne pas utiliser SQL Server Express qui est gratuit, plutôt qu'Access ?

    Access, c'est l'outil de la bidouille. C'est très bien pour un comptable (qui n'est donc pas développeur) qui aurait besoin d'automatiser une partie de son travail quotidien. Comme il n'a pas de budget pour le faire faire à l'équipe IT de sa boite, il va pouvoir s'amuser avec Access.

    Au-delà de ça, on peut citer de nombreux points sur lesquels Access présente des faiblesses qui le rendent peu adapté à une utilisation pro. Points parmis lesquels : faible consistance des données, risque de corruption de la base, pas de solution de backup digne de ce nom, concurrence limitée, etc.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Par défaut
    Eh bien quand je suis arrivé pour développer, la partie base de donnée avait déjà été développé. J'ai donc pris le travail en route et partis de ce qui avais déjà été fais !

    La seconde raison est que je n'ai aucune notion de comme utiliser le logiciel SQL Server.

    Maintenant une grande partie de l’accès a la base de donnée est développer, et devoir tout refaire me parait assez long et fastidieux.

    Je prefererais plutôt comprendre ce problème pour le résoudre, si ce problème fais partie de la conception d'Access, je n'aurais alors d'autre choix que de changer de logiciel de BD !

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Effectivement tu pars déjà avec une épine dans le pied. As-tu essayé la solution décrite ici http://support.microsoft.com/kb/116034/fr (lien indiqué dans le lien de ton premier post) ?

    La solution indique ce qu'il faut faire : soit découper les requêtes en lots de taille raisonnable, soit utiliser un snapshot (je ne sais pas comment on fait ça avec Access et VB.NET...). Et ce quelle que soit ta version d'Access.

    Si ces solutions ne te conviennent pas alors il faudra switcher de SGBDR, ce que je te recommande de faire si tu en as la possibilité ! C'est très facile il suffit d'utiliser un des assistants de SQL Server afin d'importer la base Access, comme décrit ici : http://www.online-tech-tips.com/ms-o...-sql-database/
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Par défaut
    J'ai effectivement essayer de fractionner mes requêtes, de ne limiter qu'a 300 lignes, mais j'ai l'impression que c'est une globalité plus qu'une requête.

    Si je fais 300 requêtes a 1 résultat, ça planteras tout autant qu'une requête a 300 résultats, et fermer la base pour la ré-ouvrir ne change rien.

    C'est je pense une saturation des objet contenant les données.

    Je vais donc m'atteler a changer de SGBDR, en espérant que la structure de récuperations des données ne changent pas trop d'Access a SQL Server !

    Merci pour tes réponses !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET & ACCESS] Erreur "impossible d'ouvrir plus de tables"
    Par GregOizo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/01/2012, 15h20
  2. impossible d'ouvrir plus de table
    Par Khalid.bounouader dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/11/2008, 13h54
  3. [VBA-A] erreur impossible d'ouvrir plus de table
    Par the_senti dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/07/2007, 10h30
  4. "Impossible d'ouvrir plus de tables"
    Par Raphael_74 dans le forum IHM
    Réponses: 1
    Dernier message: 04/07/2007, 13h51
  5. [ODBC] Erreur : Impossible d'ouvrir plus de tables
    Par maraly dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/03/2007, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo