2009-04-03 7 views
0

MS Access dispose d'un assistant d'importation de fichier texte accessible. (Fichier -> Obtenir des données externes -> Importer.) Malheureusement, les colonnes de texte (champs) sont toujours importées avec une taille de 255 caractères, quelles que soient les données réelles trouvées dans le fichier d'entrée.MS Access: Comment puis-je automatiquement réduire les colonnes de texte à une taille appropriée pour les données qui y sont stockées?

Comment est-ce que je peux réduire ces colonnes de texte de 255 caractères à une taille raisonnable sans faire manuellement un groupe de requêtes "SELECT Max(Len(_column_)) FROM _data_"?

J'ai déjà une solution et je l'afficherai ci-dessous.

Répondre

1

J'ai créé un outil qui scannera une table importée après le fait, un rapport minimum réel et tailles maximales trouvées dans les colonnes de texte, et vous permettent de changer la taille de colonne à la fois:

http://www.glump.net/software/microsoft_access_table_optimizer

Cet outil n'affecte pas l'assistant d'importation MS Access et ne le remplace pas non plus. Ainsi, si vous importez un grand nombre d'enregistrements ou de colonnes avec des valeurs de texte, vous risquez de rencontrer des problèmes d'espace avant d'avoir atteint le point où vous pouvez exécuter mon outil. YMMV. L'outil est un module de code VBA qui 1) crée un rapport de toutes les colonnes dans un tableau donné et des longueurs minimum et maximum de valeurs et 2) après avoir modifié la table de rapport, redimensionne les colonnes avec la nouvelle taille spécifiée.

2

Y a-t-il une raison de le faire? La réduction de la taille du champ réduit uniquement la quantité de texte que le champ peut stocker, et non la quantité d'espace que le fichier prend sur le disque.

+0

Si l'un des champs est indexé, cela pourrait faire une différence significative. Habituellement, je fais des importations dans une table de mise en scène et ensuite j'ajoute à la vraie table, donc je n'ai pas besoin de me débrouiller avec ce genre de chose. –

+0

Eh bien ... Si vous importez des données d'une source inconnue, vous devez connaître la taille pour faire la colonne dans la table cible après la table de transfert. Lorsque votre table de transfert est varchar (255), varchar (255), varchar (255) ... ce n'est pas très utile. –

Questions connexes