• Nenhum resultado encontrado

MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS PEGADINHAS NA LÓGICA DOS DADOS

No documento Coleção Info_Banco de Dados (páginas 82-85)

POR CARLOS MACHADO TUTORIAL/CONSULTAS

86<C O L E Ç Ã O I N F O

uem gosta de música e organização costuma não resistir a um banco de dados. Em geral, uti- liza o Access, que já está ali mesmo no PC, no pacote Office. Vamos su- por que você tenha montado uma tabela no Access reunindo todos os seus arquivos de música em MP3. Como também gosta de analisar as letras — e decorar para cantar no chuveiro —, criou uma tabela para elas. Nem todas as músicas têm sua letra no banco, e você quer saber quais MP3 dispõem de letras.

A solução pode ser encontrada no Access a um toque do mouse, sem programação. Será preciso construir uma consulta simples, com o objetivo de identificar, em duas tabelas, quais registros contêm as mesmas informa- ções em dois campos indicados: um em cada tabela. Essa solução pode ser aplicada em muitas outras situações.

O problema pode ser representado por um diagrama que mostra dois con- juntos de dados, um para cada tabe- la. O xis da questão é identificar a por- ção comum às duas tabelas — corres-

pondente, no desenho, à área em que os dois conjuntos se superpõem. Ago- ra que já caracterizamos o problema, vamos à solução, passo a passo.

1.

A TABELA DE MP3

Para acompanhar o exemplo, crie no Access uma tabela com os cam- pos Intérprete e Título, ambos do ti- po Texto. Salve-a com o nome

tabMP3. Essa tabela, claro, vai con- ter a lista das músicas.

Q

2.

A TABELA DAS LETRAS

Crie outra tabela, com os campos Intérprete, Título e Letra. Este últi- mo deve ser do tipo Memorando, para abrigar a letra da música. O campo do tipo Texto tem capacida- de máxima para 255 caracteres. A letra não caberia nele. Por sua vez, o campo de memorando suporta até 65 536 caracteres. Dê à segun- da tabela o nome tabLetras. Tam- bém não haveria problema se o campo Título, que é o ponto comum entre as tabelas, tivesse nome dife- rente nas duas. No entanto, para fa- cilitar a compreensão, é mais cô- modo usar o mesmo nome.

3.

CRIE A CONSULTA

Na janela Banco de Dados, clique na orelha Consulta. Dê um duplo clique no comando Criar Consulta no Modo Design para projetar um objeto des- se tipo a partir do zero. O Access abre duas janelas: Mostrar Tabela e Con- sulta1. Selecione (mouse mais a te- cla Ctrl) o nome das duas tabelas — tabMP3 e tabLetras — na primeira ja- nela e clique no botão Adicionar.

4.

A LINHA NEGRA

Dois quadros com os campos das tabelas aparecem na área superior de Consulta1. Se as duas tabelas ti- verem chaves primárias chamadas Código (nome-padrão), o Access vai mostrar uma linha negra ligando es- ses dois campos. Clique nessa linha e acione a tecla Del para apagá-la. Isso porque o valor Código numa ta-

bela não tem nenhum parentesco com seu homônimo na outra.

5.

O PULO-D0-GATO

Com o mouse, clique no campo Tí- tulo de uma tabela e arraste-o para o campo de mesmo nome na outra tabela. Uma linha passa a ligar os dois campos, indicando que a con- sulta deve procurar neles informa- ções iguais. Dica: o procedimento também funciona quando o nome dos dois campos não é o mesmo.

No quadro tabLetras, arraste pa- ra a linha Campo, embaixo, os cam- pos Título e Intérprete. Opcional- mente, indique que o campo Intér- prete seja apresentado em ordem alfabética. Para isso, na linha Clas- sificação, escolha Crescente.

Salve a consulta (com um nome amigável, como cnsMP3comLetras1) e execute-a. Veja que ela exibe exa-

Consulta 1 (no alto) e seus resultados: a base é a tabLetras

Consulta 2: o resultado (embaixo) não

é igual ao da consulta 1 086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86

TUTORIAL/CONSULTAS

C O L E Ç Ã O I N F O>87

PESQUISE BEM

NO ACCESS

MONTE CONSULTAS COM DUAS TABELAS E ESCAPE DAS

PEGADINHAS NA LÓGICA DOS DADOS

POR CARLOS MACHADO TUTORIAL/CONSULTAS

86<C O L E Ç Ã O I N F O

uem gosta de música e organização costuma não resistir a um banco de dados. Em geral, uti- liza o Access, que já está ali mesmo no PC, no pacote Office. Vamos su- por que você tenha montado uma tabela no Access reunindo todos os seus arquivos de música em MP3. Como também gosta de analisar as letras — e decorar para cantar no chuveiro —, criou uma tabela para elas. Nem todas as músicas têm sua letra no banco, e você quer saber quais MP3 dispõem de letras.

A solução pode ser encontrada no Access a um toque do mouse, sem programação. Será preciso construir uma consulta simples, com o objetivo de identificar, em duas tabelas, quais registros contêm as mesmas informa- ções em dois campos indicados: um em cada tabela. Essa solução pode ser aplicada em muitas outras situações.

O problema pode ser representado por um diagrama que mostra dois con- juntos de dados, um para cada tabe- la. O xis da questão é identificar a por- ção comum às duas tabelas — corres-

pondente, no desenho, à área em que os dois conjuntos se superpõem. Ago- ra que já caracterizamos o problema, vamos à solução, passo a passo.

1.

A TABELA DE MP3

Para acompanhar o exemplo, crie no Access uma tabela com os cam- pos Intérprete e Título, ambos do ti- po Texto. Salve-a com o nome

tabMP3. Essa tabela, claro, vai con- ter a lista das músicas.

Q

2.

A TABELA DAS LETRAS

Crie outra tabela, com os campos Intérprete, Título e Letra. Este últi- mo deve ser do tipo Memorando, para abrigar a letra da música. O campo do tipo Texto tem capacida- de máxima para 255 caracteres. A letra não caberia nele. Por sua vez, o campo de memorando suporta até 65 536 caracteres. Dê à segun- da tabela o nome tabLetras. Tam- bém não haveria problema se o campo Título, que é o ponto comum entre as tabelas, tivesse nome dife- rente nas duas. No entanto, para fa- cilitar a compreensão, é mais cô- modo usar o mesmo nome.

3.

CRIE A CONSULTA

Na janela Banco de Dados, clique na orelha Consulta. Dê um duplo clique no comando Criar Consulta no Modo Design para projetar um objeto des- se tipo a partir do zero. O Access abre duas janelas: Mostrar Tabela e Con- sulta1. Selecione (mouse mais a te- cla Ctrl) o nome das duas tabelas — tabMP3 e tabLetras — na primeira ja- nela e clique no botão Adicionar.

4.

A LINHA NEGRA

Dois quadros com os campos das tabelas aparecem na área superior de Consulta1. Se as duas tabelas ti- verem chaves primárias chamadas Código (nome-padrão), o Access vai mostrar uma linha negra ligando es- ses dois campos. Clique nessa linha e acione a tecla Del para apagá-la. Isso porque o valor Código numa ta-

bela não tem nenhum parentesco com seu homônimo na outra.

5.

O PULO-D0-GATO

Com o mouse, clique no campo Tí- tulo de uma tabela e arraste-o para o campo de mesmo nome na outra tabela. Uma linha passa a ligar os dois campos, indicando que a con- sulta deve procurar neles informa- ções iguais. Dica: o procedimento também funciona quando o nome dos dois campos não é o mesmo.

No quadro tabLetras, arraste pa- ra a linha Campo, embaixo, os cam- pos Título e Intérprete. Opcional- mente, indique que o campo Intér- prete seja apresentado em ordem alfabética. Para isso, na linha Clas- sificação, escolha Crescente.

Salve a consulta (com um nome amigável, como cnsMP3comLetras1) e execute-a. Veja que ela exibe exa-

Consulta 1 (no alto) e seus resultados: a base é a tabLetras

Consulta 2: o resultado (embaixo) não

é igual ao da consulta 1 086_CONSULTA_TAB_ACCESS 26/02/2006 00:22 Page 86

TUTORIAL/CONSULTAS

88<C O L E Ç Ã O I N F O

tamente os títulos comuns às duas ta- belas. A solução descrita acima apa- rentemente resolve o problema apre- sentado no início deste tutorial.

6.

TESTE A CONSULTA

Faça, agora, uma experiência impor- tante. Inclua, na tabela MP3, uma música cujo título já existe em tabLe- tras, mas registre aí outro intérpre- te. Escolha, de propósito, uma can- ção que não faz parte do núcleo co- mum entre as duas tabelas. Execu- te novamente a consulta. O que ocor- re? A nova música não aparece. Is- so porque a consulta está sendo fei- ta com base na tabela tabLetras.

7.

MESMO TÍTULO

Agora, na janela Banco de Dados, selecione a consulta cnsMP3com- Letras1 e copie-a. Cole-a no mesmo lugar, com o nome de cnsMP3com- Letras2. Selecione essa nova con- sulta e clique no botão Design. Na janela da consulta, linha Tabela, es-

colha, nos dois campos, tabMP3 em vez de tabLetras. Salve a consulta. Em outras palavras, estamos fazen- do a mesma consulta, só que ago- ra a outra tabela é nosso ponto de partida. Execute essa consulta mo- dificada. O que ocorre? A música aparece, mas com outro intérpre- te. Para comparar, abra as duas.

Ao trabalhar com bancos de da- dos, é preciso pensar em coisas des- se tipo. A questão é que duas can- ções com o mesmo título e cantores diferentes podem ser a mesma mú- sica ou não. Assim, se você quiser garantir a identidade de título e in- térprete, precisa construir uma con- sulta ligeiramente diferente.

8.

OS INTÉRPRETES

Experimente mais. Copie a pri- m e i ra consulta e cole-a como cnsMP3comLetras11. Abra-a em mo- do Design e arraste o campo Intér- prete de uma tabela para o mesmo campo na outra. Com isso, estamos dizendo que tanto o título como o intérprete devem coincidir nas duas tabelas. Agora, copie a tabela cnsMP3comLetras2 e cole-a como cnsMP3comLetras22. Arraste o cam- po Intérprete da mesma forma.

9.

BUSCA DUPLA

Execute, lado a lado, as consultas 11 e 22. Embora se baseiem em ta- belas diferentes, elas dão os mes- míssimos resultados. A diferença está na busca de dupla identidade: de título e de intérprete.

Consultas 11 e 22: bases diferentes,

mas com resultados iguais

O EXIF VAI

No documento Coleção Info_Banco de Dados (páginas 82-85)