Avaliação do Usuário

Estrela ativaEstrela ativaEstrela ativaEstrela ativaEstrela inativa
 


{ads1} 

3 - Incluindo um Artista

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

Depois de incluir o artista na tabela devemos atualizar a caixa de combinação para que o mesmo esteja disponível.

Private Sub btnIncluirArtista_Click()

  'Declarando a variável para o código SQL
  Dim strSql As String
  
  'Montando o código SQL para inclusão do novo artista
  strSql = "Insert Into Artista(nomeArtista) " & _
            "Values('" & txtIncluirArtista & "')"
  
  'Executando o código SQL
  executaSql strSql
  
  'Atualizando a caixa de combinação
  cbxArtista.Requery
  
  'Exibindo o novo artista na combobox
  cbxArtista = txtIncluirArtista
  
  'Limpando a caixa de texto
  txtIncluirArtista = Null
  
End Sub

4 - Filtrando a Exibição das Músicas

A caixa de listagem lstMusica nos oferece duas opções de exibição: todas as músicas ou somente as músicas ainda não associadas. Isto facilita a classificação, já que nos permite trabalhar sem misturar registros associados com registros não associados.

Quem nos permite controlar estas opções de exibição é o grupo de opção gpoMusica. Ele possui dois botões, btoTodas e btoNaoClassificadas, com os valores 1 e 2, respectivamente.

Clicando em um deles podemos escolher o que será exibido na caixa de listagem verificado qual dos botões foi clicado, através do código inserido no evento Ao Clicar do grupo de opção. O código verifica a opção escolhida e monta um código SQL que será atribuído à propriedade Origem da Linha (RowSource) da caixa de listagem. Um dos códigos busca todos os registros da tabela SucessoMusical e o outro busca apenas os registros em que o campo artista estiver vazio, ou seja, sem nenhuma associação.

Após a atribuição do código de origem da linha a caixa de listagem é atualizada para exibir os registros desejados.

Private Sub gpoMusica_Click()
   
    'Verificando qual botão foi
    'pressionado pelo valor do grupo
    If gpoMusica = 1 Then
       
        'Para o valor 1 o conjunto de registros será
        'composto por todos os registros
        lstMusica.RowSource = "SELECT SucessoMusical.codMusica, " & _
                "SucessoMusical.nomeMusica " & _
                                "FROM SucessoMusical;"
    Else
       
        'Para o valor 2 o conjunto de registros será
        'composto pelos registros sem artista definido
        lstMusica.RowSource = "SELECT SucessoMusical.codMusica, " & _
                "SucessoMusical.nomeMusica " & _
                                "FROM SucessoMusical " & _
                                "WHERE (((SucessoMusical.artista) Is Null));"
    End If
   
    'Atualizando a caixa de listagem
    lstMusica.Requery

End Sub

5 - Escolhendo um Artista

Antes de realizarmos uma associação devemos escolher o artista ao qual a música será associada. Ao escolhermos um artista a caixa de listagem que contém as músicas relacionadas deve ser atualizada. Neste momento qualquer item selecionado na mesma deve ser desmarcado. Isto é muito importante e deve ser feito para evitar conflitos no momento das associações e desassociações.

Os itens selecionados podem ser desmarcados atribuindo o valor False para a propriedade Selected de cada um dos itens da caixa de listagem. Isto é fácil de se fazer utilizando uma instrução For Each na coleção ItemsSelected, a propriedade que contém uma referência aos números de todos os itens selecionados.

Esta tarefa será codificada no evento Após Atualizar da caixa de combinação cbxArtista.

Private Sub cbxArtista_AfterUpdate()
  
  Dim item As Variant
  
  'Desfazendo a seleção dos itens
  For Each item In lstOrdemMusica.ItemsSelected
    lstOrdemMusica.Selected(item) = False
  Next item
  
  'Quando a combobox for alterada a
  'caixa de listagem deve ser atualizada
  lstOrdemMusica.Requery
  
End Sub

 

Seja social. Compartilhe!