Avaliação do Usuário

Estrela ativaEstrela ativaEstrela ativaEstrela ativaEstrela inativa
 


{ads1} 

O FORMULÁRIO

Veja como deve se parecer o formulário após os objetos estarem incluídos e organizados:

Caixa de Listagem

Perceba que na caixa da esquerda temos uma lista de sucessos musicais sem nenhuma classificação. Já na caixa da esquerda temos os sucessos associados ao respectivo artista, além de estarem ordenados.

A idéia principal é podermos selecionar uma ou mais músicas na caixa da esquerda, escolher um artista na caixa de combinação e associar ao mesmo as músicas selecionadas, tranferindo-as para a caixa da direita utilizando os botões apropriados que contém as setas para esquerda e direita. O processo inverso também será possível. Para ordenar as músicas também utilizaremos botões que contém as setas para cima e para baixo.

VAMOS AOS CÓDIGOS

Compreendido o objetivo da tarefa vamos ao que interessa: como programar as caixas de combinação para movimentar os registros de uma para a outra?

Na verdade os registros não são movimentados de uma para a outra. As caixas da esquerda e da direita, conforme dito anteriormente, apenas exibem os registros não associados e os associados, respectivamente. O que fazemos, via código, é descobrir quais registros estão selecionados em cada caixa, realizando em seguida a associação correspondente via código SQL, e atualizando as caixas para que exibam os registros após a associação ou desassociação.

Antes de começarmos a codificação é necessário incluirmos uma biblioteca nas referências do VBA. Como iremos trabalhar com um Recordset do tipo ADODB, devemos marcar a referência para a biblioteca Microsoft ActiveX Data Objects 2.8 Library. Neste exemplo foi utilizando o Access 2007, então se você trabalha com uma versão diferente marque a referência que estiver presente, mesmo que seja inferior ou superior a esta.

Bibliotecas de referência do BD Caixa de Listagem

Resolvido o problema da referência à biblioteca então mãos à obra.

1 - Executando um Código SQL

Este é um procedimento genérico que fornece aos outros procedimentos a capacidade de executar um código SQL passado como argumento. O código reutilizável evita que os demais tenha que se preocupar com a desabilitação e habilitação das mensagens de aviso do Access, os quais são escritos apenas uma vez e servem para qualquer outro procedimento ou função.

Neste exemplo ele encontra-se no mesmo módulo de formulário que os demais procedimentos, porém em um programa maior, com mais códigos a serem executados ele deveria estar em um módulo padrão separado, para que estivesse acessível diretamente por qualquer um deles.

Sub executaSql(argSql As String)

  'Desabilitando os alertas
  DoCmd.SetWarnings False

  'Executando o sql
  DoCmd.RunSQL argSql

  'Desabilitando os alertas
  DoCmd.SetWarnings False

End Sub

2 - Incluindo uma Música

Para que possamos associar músicas a artistas é imprescindível que as tenhamos para realizar a associação. Então vamos incluir um código que inclui uma música no evento Ao Clicar do botão btnIncluirMusica, utilizando a caixa de texto txtIncluirMusica, utilizando para isto um código SQL.

Depois de incluir a música na tabela devemos atualizar a caixa de listagem para que a mesma seja exibida.

Private Sub btnIncluirMusica_Click()

  'Declarando a variável para o código SQL
  Dim strSql As String

  'Montando o código SQL para inclusão da nova música
  strSql = "Insert Into SucessoMusical(nomeMusica,ordem) " & _
            "Values('" & txtIncluirMusica & "',0)"

  'Executando o código SQL
  executaSql strSql

  'Atualizando a caixa de listagem
  lstMusica.Requery

  'Limpando a caixa de texto
  txtIncluirMusica = Null

End Sub

 

Seja social. Compartilhe!