Je sais que vous ne demandez pas à propos de la VBA, mais peut-être vous donnera une chance
Si vous ouvrez un projet VBA, insérer un nouveau module, puis choisissez Outils -> Références et ajouter une référence à Expressions régulières Microsoft VBScript 5.5. Étant donné que pate le code ci-dessous pour le module nouvellement inséré.
Function my_regexp(ByRef sIn As String, ByVal mypattern As String) As String
Dim r As New RegExp
Dim colMatches As MatchCollection
With r
.Pattern = mypattern
.IgnoreCase = True
.Global = False
.MultiLine = False
Set colMatches = .Execute(sIn)
End With
If colMatches.Count > 0 Then
my_regexp = colMatches(0).Value
Else
my_regexp = ""
End If
End Function
Maintenant, vous pouvez utiliser la fonction ci-dessus dans votre SQL requêtes. Donc, votre question serait maintenant résolue en invoquant
SELECT my_regexp(some_variable, "^[0]{1}[0-9]{8,9}$") FROM some_table
si retourne une chaîne vide si rien ne correspond.
J'espère que vous l'avez aimé.
RegEx ne peut pas être utilisé efficacement dans SQL dans Access/Jet/ACE. Ce n'est pas intégré dans le moteur de base de données, donc il n'utilisera pas d'index. Cela ne fait pas non plus partie de VBA, bien que vous puissiez utiliser le RegEx de l'objet File System si vous le voulez vraiment. Mais pour les règles de validation (je ne sais rien d'autre que vous pourriez vouloir dire pour la "règle de varification"), vous ne pouvez pas utiliser RegEx du tout. Vous pouvez cependant utiliser l'événement BeforeUpdate du contrôle que vous utilisez pour modifier, puis utiliser la fonction RegEx de l'objet File System pour tester la valeur dans la propriété Text du contrôle et agir en conséquence. –