C'è un modo per impostare le impostazioni di ricerca per ufficio ms (2003) per charectars non inglesi

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

  •  21-09-2019
  •  | 
  •  

Domanda

dicono che c'è un foglio di calcolo o una tabella in MS Access, che contiene caratteri non inglesi (segni diacritici) come à, á, â, ã, ä, å, æ, ç, è, é, ê, ë

Dal momento che questo sistema viene utilizzato da chi parla inglese, l'utente finale, durante la ricerca di valori non può indovinare se o no determinate parole o nomi sono stati inseriti nella versione inglese o nella versione originale.

Cioè, días potrebbe essere originariamente stipulato il databse come días o dias. coñac potrebbe essere inserito come coñac o conac. In realtà a volte dati vengono inseriti in questo modo e, talvolta, l'altro modo.

La domanda è se c'è un modo per impostare questa opzione di ricerca, in modo integrato meccanismo di ricerca ufficio (Ctrl + F) troverebbe días quando dias è fornita.

Se non c'è, mi piacerebbe sentire quello che sarebbe stato il tuo approccio per risolvere questo problema.

È stato utile?

Soluzione

il comportamento di corrispondenza GUI di dialogo di ricerca in Office Apps non è personalizzabile. Ma se fossi nei tuoi panni, ecco come mi piacerebbe risolvere il problema:

In primo luogo, avrete bisogno di un codice .NET che svolge ricerche di accento-insensitive. A seconda di quale lingua ti piace di più, ecco sia un VB e C # del campione. Il nucleo di questa utilizza il href="http://msdn.microsoft.com/en-us/library/b7zs7dcf.aspx" rel="nofollow noreferrer"> CompareInfo.IndexOf metodo utilizzando un set di parametri CompareOptions CompareOptions.IgnoreNonSpace . Si tratta di una ricerca di accento-insensitive.

Avanti, avrete bisogno di chiamare questo codice dall'applicazione Office. Come si collega il codice in varia da app-- per esempio, qui ci sono i post del blog che mostrano come fare questo da Excel e accesso .

Quindi è necessario avvolgere quelle chiamate in tutto il codice e interfaccia utente, che simula una ricerca e sostituzione. Questa volta sarà diverso in ogni app. Ad esempio, in Excel si ciclo attraverso tutte le celle del foglio di lavoro corrente e cercare corrispondenze utilizzando il codice.

Infine, che ci si vuole mappare il codice a un pulsante della barra degli strumenti o altro modo per ottenere il vostro codice di richiamata.

In ogni caso, spero che questo è abbastanza informazioni per aiutarti a iniziare. Ecco il codice .NET di base sia in VB o C # per fare le partite di accento-insensitive:

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);
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top