Le « nettoyage » des informations avant leur importation dans votre base de données est une pratique courante. Après tout, l'une des raisons pour lesquelles vous utilisez une base de données est de pouvoir l'interroger de manière prévisible selon des critères définis, n'est-ce pas ? Mais comment gérer les situations externes où, par exemple, vous devez importer des informations depuis un fichier où une personne saisit « $ » tandis qu'une autre suppose qu'il s'agit d'une valeur monétaire ? Ou pire, où quelqu'un saisit « am » ou « pm » tandis qu'une autre utilise le format 24 heures ? Comme toujours, il existe de nombreuses solutions, mais l'une d'elles consiste à vérifier si une chaîne de caractères est uniquement composée de chiffres ou si elle contient des caractères non numériques. Avec un peu de VBA, ce type de vérification est simple, et cet article vous montrera à quel point.
Pourquoi devons-nous faire cela?
Si vous importez des informations dont vous ne contrôlez pas la saisie ni l'extraction, vous avez certainement déjà rencontré ce problème à maintes reprises : les utilisateurs saisissent leurs données de la manière qui leur convient le mieux, et non de façon uniforme. Il est donc inévitable que vous soyez amené à… à prendre une uniforme avant de pouvoir l'importer.
Un exemple typique de ceci est celui où vous devez importer des données dans un champ numérique, mais lorsque vous regardez les données, vous voyez que certains ont séparé des milliers par des virgules, d'autres ont ajouté un signe monétaire - et qui sait quoi d'autre.
Une mise en garde rapide !
L'importation de données qui n'ont pas été nettoyées dans votre base de données peut être assez désastreuse - au mieux, cela peut fausser vos rapports, au pire, vous pourriez vous retrouver avec toutes sortes de choses cassées - ne laissez pas les importations de données "sales" être la raison pour laquelle vous 'essaie de résoudre le problème d'accès tout le week-end!
Comment "se débarrasser" des caractères alphabétiques
Vous pouvez bien sûr effectuer une recherche et remplacer manuellement, mais cela peut prendre du temps et vous risquez de manquer quelque chose (si vous ne recherchez, par exemple, que des signes dollar, vous risquez de manquer le signe euro ou des virgules, des espaces, etc.) . Ainsi, la façon la plus simple et la plus fiable de le faire est de laisser Access faire le travail difficile en utilisant le code ci-dessous.
Sur le code…
Public Function removeNonNumeric(inString As String) As Long Dim outputString, chrString As String Dim strPos As Integer For strPos = 1 To Len(inString) chrString = Mid(inString, strPos, 1) If IsNumeric(chrString) Then outputString = outputString & chrString Next removeNonNumeric = CLng(outputString) End Function
Ce que fait le code

Adapter le code à votre convenance
Comme vous pouvez le voir - la fonction renvoie un type de données "long" - si vous travaillez avec des entiers, des virgules flottantes, etc., vous voudrez modifier la fonction en conséquence afin qu'elle renvoie le bon type de valeur pour votre base de données.
Introduction de l'auteur:
Mitchell Pond est un expert en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris réparation SQL Server base de données et des produits logiciels de récupération Excel. Pour plus d'informations, visitez www.datanumen.com