Bonjour,
Je voudrais importer un fichier excel ver access mais une erreur apparait : "l'indice n'appartient pas à la sélection" .
Quelqu'un peut m'expliquer ?
Bonjour,
Je voudrais importer un fichier excel ver access mais une erreur apparait : "l'indice n'appartient pas à la sélection" .
Quelqu'un peut m'expliquer ?
Bonjour
Ce serait bien que nous dises comment tu importes ton fichier, avec le code si possible.
Sinon je ne vois pas comment on pourrait te répondre.
Starec
C'est une importation ponctuelle. Je passe par le menu Access "fichier ->Donné externe -> Importé..."
Si toute tes jointure sont faites ( dans OUTILS > RELATION ) suprime les et importe ton fichier excel pour essayer.
si ca marche ca dois etre un probleme de donnée (regarde tes clé primaire et étrangere que tu importes)
PS : c'est juste une piste, je suis pas expert dans les importation mais j'en ai deja faites
Bonjour,
J'avais le même message que toi. Le probleme venait de mon fichier Excel qui avait trop de colonne. (J'avais des données parasites après mes données sur toute une ligne). J'ai juste nettoyé mon fichier Excel et après j'ai pu l'intégrer sans problème dans Access.
Delphine
Peux tu nous en dire plus sur ces données parasites ?
J'ai le même soucis,
que ce soit avec un transferspreadsheet
ou avec l'assistant d'importation...
Allez, je joue les fossoyeurs pour donner une réponse à ce genre de problème
L'erreur 9 "L'indice n'appartient pas à la sélection" apparait, à l'import d'une feuille Excel sur Access, s'il existe des données orphelines sur la feuille
(souvent le cas quand il y a eu des insertions et/ou suppressions de colonnes)
Donc pour éviter ce message, je vous propose soit :
- de faire le ménage sur le fichier Excel en sélectionnant toutes les colonnes "vide" à droite des données et de faire un supprimer colonne
(vous pouvez faire de même pour les lignes)
ou
- de sélectionner l'ensemble de vos données et de créer une liste nommée (Menu Insertion>Nom>Définir) par exemple vous pouvez l'appeler MesDonnees
Enregistrez votre classeur et sur Access utilisez à nouveau l'import des données; Sur la première page de l'assistant, cochez listes nommées à la place de feuilles et vous retrouverez la liste MesDonnees...
Bonjour,
il y a aussi une autre cause à ce genre de message.
J'ai eu le cas pour un champ qui rentrait auparavant dans un texte court, mais au dernier import de données le champ dépassait allègrement les 255 caractères.
En changeant le type de champ en texte long, le problème a disparu.
Peut-être cela est aussi le cas pour les limites des types numériques.
Bonjour à tous.
Je me décide à rebondir sur la discussion car depuis plusieurs jours, je m'arrache les cheveux sur ce problème. Je travaille sur la suite office 2010 professionnel.BH_BTS_import.xlsxformat des donnes.docx
Je viens de commencer avec ACCESS car le volume de mes données est devenu trop important pour Excel. J'ai donc migrer tous mes rapports précédemment sur Excel dans une base de données Acccess créée à cet effet. Cela s'est passé sans le moindre souci. Le problème, c'est que je dois y ajouter des données chaque jour et, sur les 6 rapports migrés, 3 d'entre eux m'affiche obstinément l'erreur "l'indice n'appartient pas à la sélection" et donc n'importe pas les données. J'ai pourtant appliqués tous les conseils de la discussion ci-dessus :
- j'ai néttoyé mes feuilles Excel en supprimant les lignes et colonnes autour des données (ça a marché pour un des rapports);
- J'ai crééer des plages nommées pour l'importation (ça a marché pour un des rapports);
- J'ai vérifier les types de variables étaient cohérents avec la longueur des données
- j'ai meme essayé de l'importer sous format CSV mais il transforme completement les dates et il y a tellement d'erreur d'importation que c'est inutilisable.
Mais rien à faire : ça ne marche toujours pas. un coup de main serait vraiment bienvenue. Merci d'avance!
NB: J'ai mis en attache un échantillon du fichier et les format correspondants dans ACCESS
glop, glop,
je viens d'avoir le même problème.
J'ai donc importé dans une nouvelle table pour voir la différence avec la mienne.
Le problème venait d'une colonne avec 0 ou 1. Elle aurait due être prise pour un type Oui / Non mais il a préféré en faire un Numérique.
bonjour,
je pense que c'est un problème différent: Access utilise -1 pour la constante True. Si il trouve 0 ou 1, pour lui c'est du numérique, c'est donc normal qu'il prenne le type correspondant aux données qu'il trouve ....Le problème venait d'une colonne avec 0 ou 1. Elle aurait due être prise pour un type Oui / Non mais il a préféré en faire un Numérique.
... et de toute façon, rien n'empêche de modifier le type de données après l'importation.
Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
ah non ? donc devant l'écran c'est la connectique ?
Bonsoir,
Et rien n'empêche de tester un numérique comme un booléen vue que toutes valeur<>0 est true.
Très peut de base de données comprenne le booléen.
Byte pour sql serveur notamment !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Var=123456789 If var=true then
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Bonjour,
pour info, Access le fait nativement lorsqu'on change le champ numérique d'une table en Oui/NonEnvoyé par dysorthographie
Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
ah non ? donc devant l'écran c'est la connectique ?
Oui mais la solution est appropriée pour le sujet du post: une importation de données
Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
ah non ? donc devant l'écran c'est la connectique ?
De toutes le façon il est préférable, pour ce qui concerne Excel, de faire une requête d'ajout dans une structure de table Access via une jointure externe.
https://mon-partage.fr/f/LoCWKVjq/
C'est vrai qu'au final c'est beaucoup plus simple,
On peut commencer par exemple par un select into pour créer la structure de la table :
' Constitution de la chaîne SQL de la requête création de table :
Pour par la suite exécuter une requête ajout sur cette table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 sSQL = "SELECT * INTO " & nomTable & " " & _ "FROM [Excel 8.0;HDR=YES;DATABASE=" & chemin & "].[" & nomFeuille & "$A1:Z10000] " & _ "WHERE ([ID Produit]<>'');" DoCmd.SetWarnings False DoCmd.RunSQL sSQL ' Exécution de la requête DoCmd.SetWarnings True
note: nomTable, nomFeuille et chemin sont des variables mis à jour au début.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 sSQL="INSERT INTO " nomTable & " " "SELECT * " "FROM [Excel 8.0;HDR=YES;DATABASE=" & chemin & "].[" & nomFeuille & "$A1:Z10000] AS T1 " & _ "WHERE (T1.[ID Produit]<>'');" DoCmd.SetWarnings False DoCmd.RunSQL sSQL DoCmd.SetWarnings True
Par contre je crois qu'il y a un souci pour les requêtes mise à jour, à vérifier...
Cdlt,
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager