2009-04-03 9 views
0

MS Access verfügt über einen passierbaren Import-Assistenten für Textdateien. (Datei -> Externe Daten holen -> Importieren.) Leider werden Textspalten (Felder) immer mit 255 Zeichen Größe importiert, unabhängig von den tatsächlichen Daten in der Eingabedatei.MS Access: Wie kann ich Textspalten automatisch auf eine geeignete Größe für die darin gespeicherten Daten reduzieren?

Wie kann ich diese Textspalten mit 255 Zeichen auf eine vernünftige Größe reduzieren, ohne manuell eine Reihe von "SELECT Max(Len(_column_)) FROM _data_" Abfragen zu erstellen?

Ich habe bereits eine Lösung und ich werde es unten posten.

Antwort

1

ich ein Tool erstellt haben, die durch eine importierte Tabelle nach der Tat, berichten über die tatsächlichen Minimal- und Maximalgrößen gefunden in Textspalten scannen, und lassen Sie die Spalte ändern Größen auf einmal:

Dieses Tool hat keine Auswirkungen auf den MS Access-Importassistenten und ersetzt es auch nicht. Wenn Sie also eine große Anzahl von Datensätzen oder Spalten mit Textwerten importieren, werden möglicherweise Speicherplatzprobleme auftreten, bevor Sie an den Punkt gelangen, an dem Sie mein Tool ausführen können. YMMV.

Das Tool ist ein Modul von VBA-Code, das 1) einen Bericht aller Spalten in einer gegebenen Tabelle und minimale und maximale Längen von Werten erstellt und 2) nach dem Bearbeiten der Berichtstabelle Spalten mit der angegebenen neuen Größe ändert.

2

Gibt es einen Grund, dies zu tun? Das Reduzieren der Feldgröße reduziert nur die Menge an Text, die das Feld speichern kann, nicht die Menge an Speicherplatz, die die Datei auf der Festplatte belegt.

+0

Wenn eines der Felder indiziert ist, könnte dies einen wesentlichen Unterschied ausmachen. Ich importiere normalerweise in eine Staging-Tabelle und füge sie dann an den realen Tisch an, damit ich nicht mit so etwas herumalbern muss. –

+0

Nun ... Wenn Sie Daten aus einer unbekannten Quelle importieren, müssen Sie die Größe kennen, um die Spalte in der Zieltabelle nach der Staging-Tabelle zu erstellen. Wenn Ihre Staging-Tabelle varchar (255), varchar (255), varchar (255) ist, ist das nicht sehr hilfreich. –