Existe uma maneira de definir configurações de pesquisa para o MS Office (2003) para charectares não ingleses

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

  •  21-09-2019
  •  | 
  •  

Pergunta

Diga que há uma planilha ou tabela no acesso MS que contém caracteres não ingleses (diacríticos), como à, á, â, ã, ä, å, æ, ç, è, é, ê, ë

Como esse sistema é usado pelos falantes de inglês, o usuário final, ao procurar valores, não pode adivinhar se certas palavras ou nomes foram ou não inseridos na versão em inglês ou na versão original.

Aquilo é, días pode ser originalmente inserido no banco de dados como días ou dias. coñac pode ser inserido como coñac ou conac. De fato, às vezes os dados são inseridos dessa maneira e às vezes de outra maneira.

A questão é se existe uma maneira de definir essas opções de pesquisa; portanto, o mecanismo de pesquisa de escritório embutido (Ctrl+F) encontraria días quando dias é fornecida.

Se não houver, gostaria de ouvir qual seria sua abordagem para resolver esse problema.

Foi útil?

Solução

O comportamento correspondente da caixa de diálogo de pesquisa da GUI nos aplicativos do Office não é personalizável. Mas se eu estivesse no seu lugar, aqui está como resolveria o problema:

Primeiro, você precisará de algum código .NET que executa pesquisas insensíveis a acentos. Dependendo do idioma que você mais gosta, aqui está uma amostra VB e C#. O núcleo disso está usando o CompareInfo.IndexOf método usando um parâmetro de comparação definido para CompareOptions.IgnoreNonSpace. Esta é uma pesquisa insensível ao sotaque.

Em seguida, você precisará chamar este código do aplicativo do Office. Como você conecta o código varia de acordo com o aplicativo- por exemplo, aqui estão as postagens do blog mostrando como fazer isso de Excel e Acesso.

Em seguida, você precisará envolver essas chamadas em torno do código e da interface do usuário que simula uma pesquisa e substituição. Isso novamente será diferente em cada aplicativo. Por exemplo, no Excel, você percorre todas as células na planilha atual e procurar correspondências usando seu código.

Por fim, você deseja mapear esse código para um botão da barra de ferramentas ou outra maneira de ser chamado seu código.

De qualquer forma, espero que isso seja suficiente para ajudá -lo a começar. Aqui está o código .NET CORE em VB ou C# para fazer correspondências insensíveis a sotaque:

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);
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top