Est-il un moyen de définir les paramètres de recherche MS Office (2003) pour charectars non anglais

StackOverflow https://stackoverflow.com/questions/1781538

  •  21-09-2019
  •  | 
  •  

Question

Dire qu'il ya une feuille de calcul ou d'une table dans MS Access qui contient des caractères non anglais (de diacritiques) tels que à, á, â, ã, ä, å, æ, ç, è, é, ê, ë

Étant donné que ce système est utilisé par les anglophones, l'utilisateur final, lorsque vous recherchez des valeurs ne peut pas deviner si oui ou non certains mots ou noms ont été saisis dans la version anglaise ou dans la version originale.

C'est, días pourrait être à l'origine est entré dans la databse comme días ou dias. coñac peut être entré comme coñac ou conac. En fait, parfois les données sont saisies de cette façon et parfois l'inverse.

La question est de savoir s'il y a un moyen de définir cette option de recherche, donc intégré dans le mécanisme de recherche de bureau (Ctrl + f) trouverait días quand dias est fourni.

S'il n'y a pas, je voudrais savoir ce que serait votre approche pour résoudre ce problème.

Était-ce utile?

La solution

GUI comportement correspondant de dialogue de recherche dans les applications Office n'est pas personnalisable. Mais si je dans vos chaussures, voici comment je résoudre le problème:

D'abord, vous aurez besoin d'un code .NET qui effectue des recherches insensible accent. En fonction de la langue que vous aimez le plus, voici un échantillon à la fois VB et C #. Le noyau de ce procédé utilise le CompareInfo.IndexOf à l'aide d'un jeu de paramètres CompareOptions CompareOptions.IgnoreNonSpace . Ceci est une recherche insensible accent.

Ensuite, vous devrez appeler ce code de l'application Office. Comment vous branchez code varie selon app-- par exemple, voici les messages de blog montrant comment faire Excel et accès .

Ensuite, vous aurez besoin d'envelopper les appels autour du code et l'interface utilisateur qui simulent une recherche et remplacer. Ce nouveau sera différent dans chaque application. Par exemple, dans Excel vous boucle à travers toutes les cellules de la feuille de calcul et rechercher les correspondances en utilisant votre code.

Enfin, vous voulez mapper ce code à un bouton de barre d'outils ou d'une autre façon d'obtenir votre code invoqué.

Quoi qu'il en soit, espérons que cela est assez d'informations pour vous aider à démarrer. Voici le code .NET de base dans les deux VB ou C # pour faire matchs insensible accent:

VB

Module Module1
    Sub Main()
        ' returns: 3
        Dim pos As Integer = FindIgnoreDiacritics("àcçëñt-énäblêd", "en")
    End Sub
    Function FindIgnoreDiacritics(ByVal lookIn As String, ByVal lookFor As String) As Integer
        FindIgnoreDiacritics = System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(lookIn, lookFor, System.Globalization.CompareOptions.IgnoreNonSpace Or System.Globalization.CompareOptions.IgnoreCase)
    End Function
End Module

C #

class Program
{
    static void Main(string[] args)
    {
        // returns: 3
        int pos = FindIgnoreDiacritics("àcçëñt-énäblêd", "en");
    }
    static int FindIgnoreDiacritics(string lookIn, string lookFor)
    {
        return System.Globalization.CultureInfo.InvariantCulture.CompareInfo.IndexOf(lookIn, lookFor,
            System.Globalization.CompareOptions.IgnoreNonSpace | System.Globalization.CompareOptions.IgnoreCase);
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top