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 :

trop d'index sur la table [Toutes versions]


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut trop d'index sur la table
    Bonjour les développezien(ne)s,

    j'ai un message d'erreur lorsque j’importe une table (table3) depuis un fichier excel pour ma base de données access qui est: L'opération à échoué, il y a beaucoup trop d'index sur la table "table3" supprimer quelques index et effectuer l'opération à nouveau.

    En gros j'ai importé 3 tables d'excel vers access

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    table1         table2         table 3
    num_pc       num_soft         num_parc
    nom_pc       nom_soft         num_pc
                                  num_soft1
                                  num_soft2 ...
    la table3 comporte 36 index num_softxx pour le moment

    étant novice dans le domaine comment simplifier la table3 de façon à ne plus avoir ce message d'erreur et que chaque pc peut avoir la possibilité d'ajouter des softs supplémentaires.

    Merci de votre aide

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ta table 3 devrait contenir seulement 2 champs
    NumPC et NumSoft

    Au lieu de démultiplier les colonnes, il est préférable de démultiplier les lignes !!!


    donc tu auras dans ta table 3
    NumPC--NumSoft
    1--------1
    1--------2
    1--------3
    2--------1
    2--------2

    etc.
    Et du coup, plus de limitation d'index, de champs de softs, de...
    bingo !

  3. #3
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Spacesheep,

    [edit]Message croisé avec celui de Maxence (que je salue, au passage).[/edit]

    Citation Envoyé par Spacesheep
    comment simplifier la table3 de façon à ne plus avoir ce message d'erreur et que chaque pc peut avoir la possibilité d'ajouter des softs supplémentaires.
    ==> en premier lieu, en modifiant la modélisation de tes tables (souligné=clé primaire, #=clé étrangère), donc en externalisant les softs installés sur les PC :
    Parc(num_parc, nom_parc, ...)
    PC(num_pc, nom_pc, ...)
    Soft(num_soft, nom_soft, ...)
    Parc_PC(#num_parc, #num_pc, ...)
    Parc_PC_Soft(#num_parc, #num_pc, #num_soft, ...)==> #num_parc/#num_pc existant dans Parc_PC

    Je te laisse établir les relations (relativement évidentes).

    Du même coup, plus besoin d'autant d'index que de softs différents, un seul index suffit : la clé primaire !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut
    c est bien ce que je craignais...
    car ma table pc_soft en brut sous excel elle a cette forme exemple sur deux ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pc1	CHIME PRO 2.6 SP4,WINDOWS XP PRO SP3 MUI,IBM MQSERIES CLIENT 5.2 EN,OFFICE 2003 MUI SP3,GRAPHPAD PRISM 5.0 US,GRAPHPAD PRISM 4.0 US,OUTLOOK 11.6,SYMANTEC ENDPOINT PROTECTION 11.0,ORACLE 9.2.0.1,INTERNET EXPLORER 6.0 SP2 FR,ACROBAT 9.0 FR,SVG VIEWER 3.0,VIEWER VISIO 2003,WINZIP 12.0 EN,SAS JMP 5.01 US,NQUERY 5.0 EN,MINDMANAGER PRO 7 FR,SNAGIT 8.0.2 FR,SQL*NET 8,CITRIX CLIENT METAFRAME 9.1.5,SAS 9 x (SAS 9.1.4),EVERSTAT 6.0 (*)
    pc2	OUTLOOK 11.6,SYMANTEC ENDPOINT PROTECTION 11.0,SIGMAPLOT 7.10.1s,ORACLE 9.2.0.1,INTERNET EXPLORER 6.0 SP2 FR,ACROBAT 9.0 FR,SVG VIEWER 3.0,VIEWER VISIO 2003,FIREFOX 3.0.6,ACCORD FOR EXCEL 6.2,WINZIP 12.0 EN,MINDMANAGER PRO 7 FR,SQL*NET 8,CITRIX CLIENT METAFRAME 9.1.5,MENDELEY,SUMMIT 4.3 US,CHIME PRO 2.6 SP4,INCUCYTE 2011A EN,LASERGENE 7.2 US,FLOWJO,ISIS DRAW 2.5 FR,ISIS BASE 2.5 FR,WINDOWS XP PRO SP3 MUI,ENDNOTE 8.0 US,IBM MQSERIES CLIENT 5.2 EN,OFFICE 2003 MUI SP3,LADAM 8 (*),BIOSTAT-BINDING V3.0,EVERSTAT 6.0 (*),SPEED 1.0 (SVG VIEWER 3.0)
    la colonne1 nom_pc et colonne2 nom_soft

    Avec la fonction convertir d'excel j'arrive bien à créer une cellule pour chaque soft mais ils sont tous sur la même ligne

    il y a t il une méthode (marco, formule,...) qui permet de faire pour chaque ligne sous ce format sans le faire manuellement car il y a plus de 700 postes...

    exemple du résulta souhaité:

    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
    pc1	CHIME PRO 2.6 SP4
    pc1	HCS DISCOVERY TOOLBOX X6.01 EN
    pc1	WINDOWS XP PRO SP3 MUI
    pc1	OFFICE 2003 MUI SP3
    pc1	PHOTOSHOP ELEMENT 7.0 FR
    pc1	LABVIEW 7.1
    pc1	OUTLOOK 11.6
    pc1	SYMANTEC ENDPOINT PROTECTION 11.0
    pc1	INTERNET EXPLORER 6.0 SP2 FR
    pc1	SVG VIEWER 3.0
    pc1	ACROBAT 9.0 FR
    pc1	FILEMAKER PRO 8.0 FR
    pc1	VIEWER VISIO 2003
    pc1	WINZIP 12.0 EN
    pc1	CITRIX CLIENT METAFRAME 9.1.5
    pc2	CHIME PRO 2.6 SP4
    pc2	WINDOWS XP PRO SP3 MUI
    pc2	IBM MQSERIES CLIENT 5.2 EN
    pc2	OFFICE 2003 MUI SP3
    pc2	GRAPHPAD PRISM 5.0 US
    pc2	GRAPHPAD PRISM 4.0 US
    pc2	OUTLOOK 11.6
    pc2	SYMANTEC ENDPOINT PROTECTION 11.0
    pc2	ORACLE 9.2.0.1
    pc2	INTERNET EXPLORER 6.0 SP2 FR
    pc2	ACROBAT 9.0 FR
    pc2	SVG VIEWER 3.0
    pc2	VIEWER VISIO 2003
    pc2	WINZIP 12.0 EN
    pc2	SAS JMP 5.01 US
    pc2	NQUERY 5.0 EN
    pc2	MINDMANAGER PRO 7 FR
    pc2	SNAGIT 8.0.2 FR
    pc2	SQL*NET 8
    pc2	CITRIX CLIENT METAFRAME 9.1.5
    pc2	SAS 9 x (SAS 9.1.4)
    pc2	EVERSTAT 6.0 (*)
    merci beaucoup de votre aide

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Spacesheep
    il y a t il une méthode (marco, formule,...) qui permet de faire pour chaque ligne sous ce format sans le faire manuellement
    ==> je ne connais pas VBA, et ne pourrai donc pas t'aider pour l'écriture du code proprement dit.

    Néanmoins, il me semble que la fonction intégrée split() d'Access permet d'obtenir un tableau à partir d'une chaîne de caractères (NomColonneExcel dans ton cas) et un caractère de séparation ("," dans ton cas).

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut
    je vous fait part du lien pour la mise en forme http://www.developpez.net/forums/d13...e/#post7173429

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Spacesheep,

    Personnellement, j'aurais plutôt utilisé la fonction split(), sous Access, après importation du fichier Excel, mais bon, si cela fonctionne comme ça... .

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

Discussions similaires

  1. Mise a jour d'un index sur une table de 22 colonnes
    Par loupin dans le forum Oracle
    Réponses: 4
    Dernier message: 09/08/2007, 07h26
  2. [SQL 2005 SP1] Pb de plage d'index sur une table répliquée
    Par Peck777 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 28/08/2006, 18h55
  3. Parametrer le nombre d'index sur une table
    Par Invité dans le forum Access
    Réponses: 1
    Dernier message: 17/05/2006, 11h36
  4. MySQL - Probleme avec 2 index sur une table
    Par xG-Hannibal dans le forum Outils
    Réponses: 7
    Dernier message: 31/03/2006, 14h08
  5. Comment savoir s'il existe un index sur ma table ?
    Par CDRIK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/10/2004, 09h58

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