Com as funções de cadeia, pode criar expressões no Access que manipulam texto de várias formas. Por exemplo, poderá querer apresentar apenas parte de um número de série num formulário. Em alternativa, poderá ter de associar (concatenar) várias cadeias de carateres, como um apelido e um nome próprio. Se ainda não estiver familiarizado com expressões, veja Criar uma expressão.
Eis uma lista de algumas das operações de cadeia mais comuns no Access e as funções que utilizaria para as executar:
Para... |
Utilize o... |
Por exemplo... |
Resultados |
---|---|---|---|
Devolver carateres do início de uma cadeia |
=Esquerda([SerialNumber],2) |
Se [SerialNumber] for "CD234", o resultado será "CD". |
|
Devolver carateres do fim de uma cadeia |
=Direita([SerialNumber],3) |
Se [SerialNumber] for "CD234", o resultado será "234". |
|
Localizar a posição de um caráter numa cadeia |
=InStr(1;[NomePróprio],"i") |
Se [FirstName] for "Colin", o resultado é 4. |
|
Devolver carateres a partir do meio de uma cadeia |
=Média([Numeração De Série];2;2) |
Se [SerialNumber] for "CD234", o resultado será "D2". |
|
Cortar espaços à esquerda ou à direita de uma cadeia |
=Cortar([NomePróprio]) |
Se [FirstName] for " Colin", o resultado é "Colin". |
|
Unir duas cadeias |
Operador de sinal de adição (+) * |
=[NomePróprio] + [Apelido] |
Se [FirstName] é "Colin" e [LastName] é Wilcox, o resultado é "ColinWilcox" |
Associar duas cadeias juntamente com um espaço entre as mesmas |
Operador de sinal de adição (+) * |
=[FirstName] + " " + [LastName] |
Se [FirstName] é "Colin" e [LastName] é Wilcox, o resultado é "Colin Wilcox" |
Alterar o caso de uma cadeia para maiúscula ou minúscula |
=UCase([FirstName]) |
Se [FirstName] for "Colin", o resultado é "COLIN". |
|
Determinar o comprimento de uma cadeia |
=Len([NomePróprio]) |
Se [FirstName] for "Colin", o resultado é 5. |
Ok, então não é uma função, é um operador. No entanto, é a forma mais rápida de associar cadeias. Numa base de dados de ambiente de trabalho, também pode utilizar o operador de e comercial (&) para a concatenação.
Existem muitas mais funções relacionadas com texto no Access. Uma boa forma de saber mais sobre os mesmos é abrir o Construtor de Expressões e navegar pelas listas de funções. O Construtor de Expressões está disponível em praticamente qualquer lugar onde pretenda criar uma expressão. Normalmente, existe um pequeno botão Criar com o seguinte aspeto:
Para demonstrar o Construtor de Expressões, vamos abri-lo a partir da propriedade Origem do Controlo num formulário ou vista. Utilize um dos procedimentos abaixo consoante esteja a utilizar uma base de dados de ambiente de trabalho ou uma aplicação Web do Access.
Apresentar o Construtor de Expressões numa base de dados de ambiente de trabalho
-
Abra uma base de dados de ambiente de trabalho (.accdb).
-
Prima F11 para abrir o Painel de Navegação, se ainda não estiver aberto.
-
Se já tiver um formulário disponível, clique com o botão direito do rato no Painel de Navegação e clique em Vista de Esquema. Se não tiver um formulário com o qual trabalhar, clique em Criar > Formulário.
-
Clique com o botão direito do rato numa caixa de texto no formulário e clique em Propriedades.
-
Na Folha de Propriedades, clique em Todas as > Origem do Controlo e clique no botão Criar no lado direito da caixa de propriedade Origem do Controlo .
-
Em Elementos de Expressão, expanda o nó Funções e clique em Funções Incorporadas.
-
Em Categorias de Expressão, clique em Texto.
-
Em Valores de Expressão, clique nas várias funções e leia as breves descrições na parte inferior do Construtor de Expressões.
Nota: Nem todas estas funções estão disponíveis em todos os contextos; O Access filtra automaticamente a lista consoante as que funcionam em cada contexto.
Combinar funções de texto para maior flexibilidade
Algumas funções de cadeia têm argumentos numéricos que, em alguns casos, tem de calcular sempre que chamar a função. Por exemplo, a função Esquerda utiliza uma cadeia e um número, como em =Left(SerialNumber, 2). Isto é ótimo se souber que precisa sempre dos dois carateres esquerdos, mas e se o número de carateres de que precisa varia de item para item? Em vez de apenas "codificar" o número de carateres, pode introduzir outra função que a calcule.
Eis um exemplo de números de série que cada um tem um hífen algures na cadeia. No entanto, a posição do hífen varia:
SerialNumber |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Se apenas quiser apresentar os números à esquerda do hífen, tem de efetuar um cálculo sempre para saber onde está o hífen. Uma opção é fazer algo assim:
=Esquerda([SerialNumber],InStr(1,[SerialNumber],"-")-1)
Em vez de introduzir um número como o segundo argumento da função Esquerda, ligámos a função InStr, que devolve a posição do hífen no número de série. Subtraia 1 desse valor e obtém o número correto de carateres para a função Esquerda devolver. Parece um pouco complicado no início, mas com uma pequena experimentação pode combinar duas ou mais expressões para obter os resultados que pretende.