Analyser un champ séparés par des virgules en deux champs (MS ACCESS VBA 2003)

J'ai hérité d'une base de données où l'utilisateur les champs d'entrée sont stockés comme une chaîne délimitée par des virgules. Je sais. Boiteux. J'ai besoin d'un moyen pour analyser ces champs dans une requête SELECT où il y a trois segments de nombre variable de caractères. À rebours de toutes les recommandations que j'ai insérer des champs dans une nouvelle table ou créer une procédure stockée pour ce faire, c'est ce que je suis venu avec. Je me demandais si quelqu'un voit une faille en faisant cela comme une requête select (où je peux facilement convertir de la chaîne analysée et de retour à nouveau en tant que de besoin).

Field_A
5,25,89

De sorte à obtenir le segment de gauche, ce qui est le plus simple:

Field_1: Left$([Field_A],InStr([Field_A],",")-1)

Pour obtenir la plus à droite du segment:

Field_3: Right$([Field_A],Len([Field_A])-InStrRev([Field_A],","))

Segment du milieu est la plus délicate:

Field_2: Mid([Field_A],InStr([Field_A],",")+1,InStrRev([Field_A],",")-InStr([Field_A],",")-1)

Voici donc le résultat:

Field_1   Field_2   Field_3
5           25        89

Tout en consentant des opinions?

"Compteur de tous les recommandations que j'ai insérer des champs dans une nouvelle table ", alors pourquoi?
Principalement parce que j'étais persuadé que je POUVAIS le faire avec une requête select plutôt que de faire une toute nouvelle table. Ces délimité par des virgules, les champs à afficher et de saisies et mises à jour par l'utilisateur, mais inutile pour moi en tant que gestionnaire de données. Je voulais être en mesure de passer rapidement d'avant en arrière avec une requête select, de sorte que je voudrais toujours avoir en direct les données que l'utilisateur est mise à jour. Non pas que c'est un gros problème pour ré-exécuter la maketable, mais parfois, ils sont oubliés quand ils sont une étape dans plusieurs requêtes imbriquées.
Sonne comme vous avez besoin d'un formulaire qui accepte CSV d'entrée de l'utilisateur, mais en fait les magasins rationnelle des données dans une table.

OriginalL'auteur TSS | 2012-12-11