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

Access Discussion :

[ACCESS 2007] LIMITE de Tables Ouvertes simultanément à 60 ?


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Par défaut [ACCESS 2007] LIMITE de Tables Ouvertes simultanément à 60 ?
    C'est un problème Windows Vista lié à Access 2007.

    Nous sommes migrés récemment du plateforme Windows 2000/Access 2002 XP ==> Windows Vista/Microsoft Office 2007 Access 2007 db.accdb, volume 300Mo env., avec RAM 2Go en total.

    Dans la nouvelle configuration, je ne peux plus ouvrir plus que 3 gros formulaires pour saissir Clients/Produits/Commandes, Comptes chèques par exemple. En effet il me sort erreur:

    "Mémoire insuffisante pour exécuter l'opération. Fermez les applications superflues, puis tentez à nouveau l'opération."

    Or dans le gestionnaire des tâches, je constate
    ...
    msaccess.exe 119 872 Ko
    ...
    Total 40% de RAM utilisé sur 2Go.

    Après cette erreur, je ne peux même ouvrir une petite table en supplément, il me sort à chaque fois le même message d'erreur.

    Pour vérifier si c'est effectivement un problème au niveau Windows Vista, J'ai copié db.accdb dans une autre machine en plateforme Windows XP/Access 2007, tout marche bien.

    J'ai l'impression que chaque instance d'Access est limitée à 120Mo de RAM.
    Y'a-t-il effectivement une limitation de RAM par application dans Windows Vista ? et Comment l'augmenter SVP ?

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Par défaut [RAM] évolution 1: non à cause du RAM.
    Afin de partager des expériences, je continue à poster même si je n'ai pas encore de solution.

    En effet il n'est pas problème de limite de RAM: c'est une mauvaise interprétation d'ACCESS 2007 d'une erreur en message: après une journée de test, j'ai constaté que le problème se trouve dans la limite d'ouverture de tables.

    En effet je ne peux toujours pas ouvrir plus de 60 tables simultanément. Alors qu'Access interprète cela comme une limite de RAM. Toutes les idées sont bienvenues.

    Merci.

  3. #3
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    taper sur 60tables en même temps meme sur une grosse DB, je trouve que ca fait beaucoup. je dis p-e une grosse connerie mais aggréger plusieurs tables via des vues et taper sur ces vues ne pourrait pas etre une solution de contournement?

    (je te deplace dans le forum office. ainsi les experts access auront une meilleure visibilité de ton probleme )

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Par défaut
    Merci LGM.

    J'ai ouvert simultanément 60 tables directement afin de tester la limite. Et le nombre déclenchant l'erreur semble fixe quelque soit le nombre de champs, ou de taille de tables.

    En revanche, dans les formulaires de saissie, les tables sont implicitement ouvertes en tant que ComboBox.RowSource, par examples, tables des clients, des produits, des pays, etc. J'ai programmé VBA en luxe sous Access 2002 XP/Windows 2000, comme cela n'a pas généré d'erreurs.

    En effet ce que je ne comprends pas, c'est que la limite de tables ouvertes (open table) est de 2048, les 60 que j'ouvre sont loin de la limite d'Access.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Par défaut [RAM] évolution 2: limite de 60 tables ouvertes
    J'ai testé aussi en Windows XP Pro/Access 2007: limite de tables ouvertes simultanées: 60 tables, pareil qu'en Windows Vista Pro/Access 2007. Donc c'est le problème lié à Access 2007: code erreur maintenant -1104.

    Bug Microsoft Access 2007 ?

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 189
    Par défaut Voulez-vous tester le code dans votre DB 2007 SVP ?
    Mon problème de tables ouvertes ne trouve pas encore de solution. Je me demande si vous avez le même problème.
    J'ai testé ce code il me sort la limite de tables ouvertes à 61.
    Pourriez-vous tester ce code et avoir la gentillesse de me donner votre réponse SVP ?

    Il consiste à ouvrir au maximum les tables créées par les utilisateurs en lecutre seule, excluant les VIEW, tables système, et ensuite les fermer proprement. Il est donc neutre, non nuisible à votre DB.

    Merci d'avance.

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    '============= FNC001 dvlOpenCloseTablesPrompt =========================
    ' functions:                                                           =
    '   (01) open and close tables at maximum                              =
    '=======================================================================
    ' method description:
    '   This function opens and closes tables at maximum.
    ' created  29-OCT-2007
    ' modified 29-OCT-2007
    ' uses:
    '   MsgBox()
    '
    '   ADOX::(),CurrentProject::(),DoCmd::()
    ' inputs:
    '   none
    ' outputs:
    '   dvlOpenCloseTablesPrompt: returned function value
    ' locals:
    '   i: counter
    '   iTables: maximum tables index
    '   j: counter
    '
    '   strTable: table name
    '   cat: ADOX.Catalog
    '   xTab: Access Object for table
    ' notes:
    '
    '=======================================================================
    Function dvlOpenCloseTablesPrompt() As Long
    '
    ' global variables:
    '
     
    '
    ' local variables:
    '
      Dim i As Long, iTables As Long, j As Long
    '
      Dim strTable As String
    '
      Dim cat As ADOX.Catalog
    '
      Dim xTab As AccessObject
    '
    ' function body:
    '
      Set cat = New ADOX.Catalog
      Set cat.ActiveConnection = CurrentProject.Connection
      iTables = cat.Tables.Count - 1
    '
    ' STEP 1: open tables:
    '
      On Error GoTo ErrorOpening
    '
      j = 0
      For i = 0 To iTables
        '
        ' open users created tables only, not view, neither system tables:
        '
        If (cat.Tables(i).Type = "TABLE") Then
          strTable = cat.Tables(i).Name
          DoCmd.OpenTable strTable, acViewNormal, acReadOnly
          j = j + 1
        End If
      Next
    '
    ErrorOpening:
    '
      Set cat = Nothing
    '
      MsgBox "Number of Maximum Tables Opened: " & j & "."
    '
    ' STEP 2: close opened tables:
    '
      On Error GoTo ErrorStatus
    '
      i = 0
    '
      For Each xTab In Application.CurrentData.AllTables
        If (xTab.IsLoaded) Then
          DoCmd.Close acDefault, xTab.Name
          i = i + 1
        End If
      Next
    '
    ' set function value:
    '
      Set xTab = Nothing
      dvlOpenCloseTablesPrompt = j
      Exit Function
    '
    ErrorStatus:
    '
      dvlOpenCloseTablesPrompt = 0
    '
    ' exit the function:
    '
    End Function

Discussions similaires

  1. Dans Access 2007, lier des tables de SQL Server en VBA
    Par milou_puce dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/04/2013, 09h08
  2. Réponses: 14
    Dernier message: 11/06/2008, 09h21
  3. Obtenir la liste des tables dans Access 2007
    Par je_developpe dans le forum Access
    Réponses: 2
    Dernier message: 13/03/2007, 05h16
  4. [Access] Suppression de plusieurs tables en simultané
    Par clad523 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/11/2006, 22h48
  5. [Access] Insérer dans plusieurs tables simultanément
    Par coolkis dans le forum Bases de données
    Réponses: 5
    Dernier message: 22/03/2005, 15h00

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