Microsoft Access para Telecom - Parte 2

sábado, 2 de julho de 2011 16:04:00 Categories: Microsoft Access
Rate this Content 1 Votes

Olá, vamos continuar hoje com a serie de dicas sobre MS Access para Telecom e TI. Embora eu não goste de publicar dicas seguidas sobre o mesmo tópico, um grande número de leitores pediu, então vamos dar sequência.

 

 

Além disso, conhecendo e aprendendo mais sobre o MS Access ficamos cada vez mais preparados para criar suítes poderosas como o Hunter SDK.

Vamos seguir a mesma linha: apresentando um cenário real de Telecom, e em seguida como a solução no MS Access.

Então vamos direto ao assunto.

 

Cenário

A partir de uma tabela com dados não amigáveis, obter uma outra com os dados no formato adequado – desejado.

No caso, vamos supor que temos em nossa rede 2 tabelas: uma com informação de performance (tráfego), num formato padrão; e outra, com informação de network (dados físicos). Esta última porém, num formato não convencional, embora possível.

Não se preocupe, o objetivo aqui hoje é apenas de ilustrar o procedimento, por isso as tabelas serão extremamente simples – poucos dados.

 

Tabela Performance x Tabela Network

Suponha então, as duas tabelas a seguir, com dados de sua rede.

Perceba que ambas as tabelas tem dados para os mesmos setores (os 3 setores da BTS GAAA1, e os 2 setores da BTS GBBB1).

A primeira tabela tem dados de performance – tráfego – para os 5 setores, onde cada linha representa um setor.

Já a segunda tem dados da rede, porém tem apenas uma linha para cada BTS, e as colunas seguintes com os dados para os respectivos setores.

Então, como você faria para obter a tabela final abaixo?

 

Pois bem, esse é o exemplo que vamos descobrir hoje como fazer de forma bem simples no MS Access.

Observação: tente fazer essa 'transformação' usando qualquer outro programa, como por exemplo o Excel. Você vai ver que não é tão simples quanto parece!

 

Para começar – não se preocupe, você vai ver que não é tão complicado quando sabemos o que fazer.

Então, em um banco de dados vazio do MS Access, adicionamos as duas tabelas – usando CTRL + C / CTRL + V como vimos em turoriais anteriores. Nota: Lembre-se que quando colamos tabelas dessa forma, elas trazem o nome da guia do Excel de origem. Assim, renomeie as tabelas respectivamente para tbl_Performance e tbl_Network.

 

Tudo bem, agora criamos uma consulta certo?

Sim, em partes. Vamos criar uma consulta no Access que fará o trabalho para nós. Só que hoje, não usaremos as consultas padrão. Vamos conhecer – ou relembrar para aqueles que utilizam o Hunter – um tipo de consulta diferente: a consulta do tipo UNION.

Esse é um tipo de consulta bem poderoso – para quem sabe como utilizar. Permite, entre outras coisas, que transformemos os nossos dados em diferentes dimensões – como no nosso caso hoje, onde temos uma tabela com dados na vertical, e outra com dados na horizontal.

O único 'detalhe' é que esse tipo de consulta não tem representação gráfica, ou seja, não poderemos fazer tudo através da interface de usuário do MS Access. E sim: vamos ter que escrever o SQL.

Mas continue lendo, garanto que vai valer a pena.

Bom, se eu estivesse fazendo isso, eu já escreveria o SQL da consulta final.

Mas como temos leitores de diferentes níveis, vamos por partes.

Primeiro, criamos uma consulta (Query1) com os dados da nossa tabela de performance.

 

E vamos ver como é o SQL dessa consulta simples. Para isso, acessamos o Menu: Design -> View -> SQL View.

E temos o SQL (formatado numa linha, apenas para ficar mais fácil de explicar).

 

Ou seja: Selecione os campos 'sitename', 'TRX_cell1', 'TRX_cell2' e 'TRX_cell3' da tabela tbl_Network.

Mas se executarmos essa consulta, vamos ver que temos os mesmos dados da tabela. E isso não nos server para nada!

 

Então volte no SQL, e apague os campos 'TRX_cell2' e 'TRX_cell3' (você pode fazer isso na interface gráfica se desejar):

 

E execute novamente a consulta:

 

Já está ficando melhor, não é mesmo?

:: Temos uma tabela com os dados dos primeiros setores (cell1) de cada uma das BTS.

Então, vamos agora apenas inserir um campo – cell – e atribuir o valor '1'. Novamente, você pode fazer diretamente no SQL, ou pela interface gráfica. O SQL com a inclusão de um campo 'cell' com o valor '1' fica assim:

 

Nota: é melhor fazer no SQL, porque os passos finais só podem ser feitos por lá.

Executando a consulta, temos:

 

Estamos quase lá para o primeiro setor. Só que agora podemos dar um nome mais genérico ao campo 'TRX_cell1' – pois as informações do setor 1 podem ser vistas no campo cell.

Então, modificamos o SQL para dar esse nome genérico - 'TRX_cell' - ao campo 'TRX_cell1' da consulta.

 

E executando, temos o resultado pronto para o setor 1 de todas as BTS.

 

Bom, até aqui não fizemos nada de extraordinário, e essa consulta, nesse momento, pode ser feita através da interface gráfica sem problemas.

Mas agora começa a ficar interessante.

Uma pequena pausa. Vamos tentar imaginar o que precisamos fazer para juntar nessa consulta os dados do setor 2?

 

A partir da consulta SQL atual, precisamos unir tudo (UNION ALL) novamente com o campo 'sitename' e agora o campo 'TRX_cell2' dessa mesma tabela de onde estamos selecionando os dados.

Nota: Os nomes dos campos da consulta UNION ALL são definidos pelos nomes definidos na primeira linha. Nas demais linhas, não precisamos mais colocar o nome 'cell' nem o nome 'TRX'.

Assim, a consulta final fica dessa forma:

 

Você pode digitar, usar a área de texto para copiar e colar e depois fazer as alterações necessárias, ou ainda utilizar um Bloco de Notas e colar a consulta toda aqui. E em casos muito complexos, bem mais específicos, você pode inclusive fazer um template no Excel e colar aqui. Mas perceba que não é complicado.

Basta seguir colando quantas linhas você deseja unir todos (UNION ALL) os campos indicados.

A consulta agora nos mostra os dados dos setores 1 e 2, adequadamente.

 

E da mesma forma que unimos os dados do setor 2, fazemos para o setor 3 (e quantos mais setores ou colunas existirem na tabela original).

 

Perceba por fim duas coisas: a tabela não está 'ordenada' – temos primeiro os dados dos primeiros setores, depois os dados dos segundos setores, etc. Mas isso não é problema, os valores são os correspondentes, confira você mesmo.

E também, quando não temos dados para uma determinada coluna, a mesma fica vazia. Isso pode ser facilmente contornado especificando um critéiro de campo 'diferente' de vazio. Mas isso não será necessário no nosso exemplo, como veremos logo log.

Então vamos lá, e finalmente obter a nossa tabela final.

Observação: veja que o tutorial foi de certa forma extenso, porque explicamos cada detalhe. Mas no dia a dia, você verá que logo estará criando consultas do tipo UNION ALL como qualquer outra consulta!

Salve então essa consulta – por exemplo como qry_Network_UNION.

Agora, crie uma segunda consulta qry_FINAL. Arraste a tabela tbl_Performance e a consulta qry_Network_UNION para a mesma.

Ligue os campos sitename e cell, e arraste os campos desejados para os campos de saída da consulta.

 

Pronto. Execute a consulta, e veja o resultado esperado!

 

Download

Para baixar os arquivos deste tutorial, clique aqui.

Observação: O Hunter SDK é o conjunto de ferramentas criadas e demonstradas no telecomHall – incluindo as Macros e Códigos. O Hunter SDK somente é enviado para Colaboradores Doadores, como forma de agradecimento pela contribuição realizada e reconhecimento do esforço dedicado. Clique aqui se desejar saber mais.

 

Conclusão

Este foi mais uma dica de utilização do Software Access, da Microsoft, com aplicações na área de TI e Telecom.

Entretanto, o escopo não está limitado a essas áreas apenas. Aprendendo a utilizar, e conhecendo as melhores práticas, você conseguirá facilmente criar soluções realmente poderosas.

Esse é o nosso objetivo, e vamos continuar sempre buscando apresentar o melhor conteúdo, sempre sendo práticos e indo direto ao assunto – somente aquilo que interessa ser visto.

Obrigado pela companhia, e até nosso próximo encontro!