2008-09-23 16 views
5

Existe-t-il un moyen de modifier le type de données par défaut lors de l'importation d'un fichier Excel dans Access? (J'utilise Access 2003, en passant).Modifier le type de données lors de l'importation d'un fichier Excel dans Access

Je sais que j'ai parfois la liberté d'assigner n'importe quel type de données à chaque colonne qui est importée, mais cela ne peut être que lorsque j'importe des fichiers non-Excel. Pour être clair, je comprends qu'il y a une étape dans le processus d'importation où vous êtes autorisé à changer le type de données de la colonne importée.

En fait, c'est ce que je demande. Pour une raison quelconque - c'est peut-être toujours des fichiers Excel, peut-être qu'il y a quelque chose d'autre - je ne suis pas autorisé à changer le type de données: la liste déroulante est grisée et je dois vivre avec tout type de données.

Par exemple, je viens d'essayer d'importer un fichier Excel grand-ish (12000+ lignes, 200 colonnes ~) dans Access où la colonne # 105 (ou quelque chose de similaire) a été rempli avec la plupart des numéros (codes: 1=foo, 2=bar, etc.), bien qu'il y ait aussi une poignée de codes alpha (A = boo, B = loin, etc). Access a supposé que c'était un type de données Number (même après avoir changé la valeur Format dans le fichier Excel lui-même) et m'a donc donné des erreurs sur ces codes alpha. Si j'avais été autorisé à changer le type de données lors de l'importation, cela m'aurait évité des problèmes. Est-ce que je demande quelque chose que Access ne fera pas, ou est-ce qu'il me manque quelque chose? Merci.

EDIT: Deux réponses ci-dessous donnent des conseils utiles. Enregistrer le fichier Excel en tant que fichier CSV, puis importer qui fonctionne bien et est simple comme Chris OC dit. Le conseil pour enregistrer une spécification d'importation est également très utile. Cependant, j'ai choisi la réponse du paramètre de registre par DK comme "Réponse acceptée". Je l'ai aimé comme une réponse parce que c'est une seule étape unique qui peut être utilisée pour résoudre mon problème majeur (avoir Access incorrectement assigner un type de données). En résumé, cette solution ne me permet pas de changer le type de données moi-même, mais cela permet à Access de deviner avec précision le type de données afin qu'il y ait moins de problèmes.

Répondre

2

Ce peut être provoqué par les paramètres par défaut du pilote Excel Jet. Vérifiez la clé de registre suivante et changez sa valeur par défaut de 8 à 0, ce qui signifie «suppose que le type de données de la colonne est basé sur toutes les valeurs, pas seulement sur les 8 premières lignes».

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel] 
"TypeGuessRows"=dword:00000000 

S'il vous plaît, dites si cela fonctionne.

+0

Eh bien, cela fonctionne dans le fait qu'Access devine maintenant le type de données de façon plus intelligente. Cependant, je n'ai toujours pas le pouvoir de changer le type de données pour ce que je veux pendant le processus d'importation. Je réalise que je n'ai peut-être pas d'autre choix, cependant. Si c'est le cas, je vais accepter cela comme réponse. – user3930756

-1

L'accès le fera.

Lors de votre processus d'importation, vous pouvez définir le type de données de chaque colonne.

3

Il y a plusieurs façons de procéder. Le moyen le plus simple consiste à convertir le fichier .xls en fichier .csv dans Excel, ce qui vous permet d'importer dans Access à l'aide de l'Assistant Importation de texte, qui vous permet de choisir les types de données de chaque colonne lors de l'importation.

L'autre avantage de ce faire est que l'importation d'un fichier csv (ou texte) est alors beaucoup plus rapide que l'importation d'un fichier xls. Si vous souhaitez effectuer cette importation plus d'une fois, enregistrez les paramètres de configuration d'importation en tant que spécification d'importation. (Dans l'Assistant Importation de texte, cliquez sur "Avancé ..."bouton en bas à gauche, puis cliquez sur" Enregistrer sous "et donner un nom de spécification pour enregistrer les modifications que vous venez de faire.)

0

L'accès peut faire ce dont vous avez besoin, mais il n'y a pas de moyen simple pour cela. Vous devez gérer certains recordsets, l'un étant vos données Excel, l'autre étant votre table Access finale Une fois les deux recordsets ouverts, vous pouvez transférer des données d'un jeu d'enregistrements à l'autre en parcourant vos données Excel et en les ajoutant à votre table Access . a ce stade, il sera possible de changer le type de données tel que demandé.

0

lors de l'importation à partir de fichiers CSV, vous pouvez également jeter un oeil à schema.ini vous constaterez que cela, vous pouvez contrôler tous les aspects du processus d'importation.