Mostrando postagens com marcador iniciais. Mostrar todas as postagens
Mostrando postagens com marcador iniciais. Mostrar todas as postagens

Consulta Juntando as Iniciais

Aqui vai uma função legal. As vezes precisamos unir as iniciais dos nome de alguém, por algum motivo, e aí vem a pergunta. Como fazer isso? uma coisa simples mas que na maioria das vezes não paramos para pensar nas pociveis soluções. Por isso iremos mostrar 2 (dois) exemplos:

1º Quando Nome e Sobrenome estão em colunas separada:

Para iniciar o teste criaremos uma tabela com o nome "tbl_cliente", com os seguintes campos: ID_cliente, Nome_cliente, e Sobre_nome.Como na figura abaixo:


 Em seguinda iremos criar uma consulta com o nome de "qry_iniciais", onde adicionaremos todos os campos da tabela nas colunas da consulta.Como na figura abaixo:


Agora na quarta coluna, colocaremos a função para nos retornar as iniciais. Digite a seguinte função: Esquerda(Nome_cliente;1)+Esquerda(sobrenome_cliente;1). O que estamos dizendo com esta função? Estamos falando para o access que, queremos pegar a primeira letra de cada coluna. Estamos dando as colunas, a quantidade de letras que o access vai pegar, e dizendo que vai ser da esquerda para a direita, como os nomes estão em colunas separadas, nos só usamos a função Esquerda.


E esta função nos restorna as iniciais como visto abaixo:



2º Quando Nome e Sobrenome estão na mesma coluna.
Então meus amores... Agora vamos criar outra tabela com o nome "tbl_iniciais", onde, vamso adicionar 2 campos, o primeiro vai ser ID_iniciais, e o segundo vai ser Nome_iniciais (colocaremos o nome e o sobrenome juntos na mesma coluna). Para fazermos o teste vamos utilizar como registro os nomes: Leyla Carolyne e Leandro Felix.


Agora vamos criar uma consulta para poder separar as iniciais. Vamos chamar a nossa consulta de "qry_iniciais2" e adicionaremos todos os campos da tabela nas colunas da consulta. Na ultima coluna após os campos adicionados é onde colocaremos a nossa nova função:

iniciais:Esquerda([nome_iniciais];1)+Meio([nome_iniciais];Emseq(1;nome_iniciais;" ")+1;1).

Que ao executar nos dará como resultado as iniciais dos nomes como desejado:



O que estamaos fazendo com esta função? Usando a função esquerda, pegamos a primeira letra do nome, a função meio só esta ali para direcionarmos o access para o meio do nome, e com a função emseq estamos dizendo que o meio é um espaço, como queremos pegar a primeira inicial do segundo nome e não o espaço nos colocamos "+1" no final da função, que quer dizer que queremos pular o espaço e pegar a proxima letra, e por ultimo pra terminar a função colocamos o numero"1" que é a quantidade de caracteres que queremos pegar depois do espaço.

Primeiro exemplo em SQL:

SELECT tbl_cliente.ID_cliente, tbl_cliente.Nome_cliente, tbl_cliente.Sobrenome_cliente, Left([nome_cliente],1)+Left([sobrenome_cliente],1) AS Expr1
FROM tbl_cliente;

Segundo exemplo em SQL:

SELECT tbl_iniciais.ID_Iniciais, tbl_iniciais.Nome_iniciais, Left([nome_iniciais],1)+Mid([nome_iniciais],InStr(1,[nome_iniciais]," ")+1,1) AS Expr1
FROM tbl_iniciais;

Abraço enorme para todos e espero ter ajudado!