> ## O Controle de dados : DATA CONTROL.

##### Conteúdo

- O que é o Controle de dados.
- Funcionamento e utilização.
- Definição de Propriedades.
- Control Data: Vantagens/Limitações.
- Adição, Alteração , inclusão e validação de dados
- Movendo-se em um recordset com o Controle Data
- Considerações finais.

### Oque é o Controle de dados Vinculados.

> O controle de dados foi criado para propocionar um meio simples de acesso a um banco de dados. Para usar o controle de dados, siga os passos a seguir:
> 1. Selecione o controle na caixa de ferramentas.
> 2. Desenhe o controle em seu formulário.
> 3. Defina a propriedade DatabaseName
> 4. Defina a propriedade Recordsource
> 5. Defina a propriedade RecordsetType
> A essa altura você criou os vinculos para o banco de dados e o Recordset com o qual deseja trabalhar. O controle assume para si as tarefas de:
> 1. Abrir o banco de dados e as tabelas ou consultas associadas.
> 2. Navegar pelos registros.(Utiliza métodos MoveFirst,Movelast,Movenext e Moveprevious.)
> 3. Carregar os valores diversos campos nos controles utilizados para exibir e editar os dados.
> 4. Gravar os dados editados dos controles no Recordset

> Conteúdo

### Funcionamento e Utilização.

> Com base nas propriedades Name e RecordSource o controle de dados cria um Recordset que fornece acesso aos seus dados.

> fig1. | De início selecione o objeto controle de dados na Toolbox do Visual Basic e acrescente-o ao seu formulário.(Fig.1)
> fig2. | Defina a seguir as propriedades Name - Nome do Controle (O padrão é data1) e Caption - Especifica o nome que aparece no controle de dados.(O padrão é Data1) e dimensione o controle de dados.(Fig.2)
> fig3. | A seguir acrescente ao seu formulário um quadro de texto(TextBox) para cada campo que desejar acessar a partir do Recordsource, anexe cada quadro de texto ao objeto de controle de dados(DataSource) e especifique o campo que cada quadro de texto deverá exibir(DataField).(fig3.)

> Conteúdo

### Definição das Propriedades.

> Agora você deve associar um banco de dados e um recordset a um controle de dados definindo as propriedades do controle. As propriedades necessárias a isso são :
> - DatabaseName - Para bancos de dados do Access, representa o nome do arquivo do banco de dados, inclusive o nome compleo do caminho. (Para banco de dados diferentes do Access é necessário informar o nome do caminho até o subdiretório dos dados.Ex-Para padrão Dbase : DatabaseName=c:\dir)
> - RecordSource - Especifica as informações que deseja obter no banco de dados - uma tabela , uma instrução SQL .
> - RecordsetType - Se deseja criar um 2-snapshot ou um acessar uma 0-table altere esta propriedade, pois o padrão é 1-dynaset.
> - Connect - Necessária quando o banco de dados não for do Access. Ex - Para banco de dados padrão Dbase - Connect=dBASEIII.
> É possível optar por ativar essas propriedades durante a execução do seu aplicativo. Vejamos um exemplo:
> Você acrescentou um controle dados a seu formulário e definiu a propriedade Name como Data1, e quer ter acesso no arquivo TESTE.MDB (arquivo access) aos dados da tabela clientes, vejamos o código abaixo:

>       data1.DatabaseName="C:\TESTE\TESTE.MDB" 'path/nome do arquivo
>       data1.RecordSource="Clientes"           'fonte dos dados(tabela clientes)
>       data1.recordsetType=0                   'tipo de recordset(0-tabela)
>       data1.Refresh                           'implementa as alterações

> Conteúdo

### Control Data: Vantagens/Limitações.

> Vantagens Controle de Dados
> A principal vantagem do controle de dados é a necessidade de menor trabalho de programação para desenvolver um aplicativo de acesode dados. Você não precisa fornecer código de programa para abrir ou criar um banco de dados ou um recordset, para se movimentar pelos registros ou para editar registros.
> - Vínculo direto com os dados.Você não precisa invocar os métodos Edit e Update para modificar os dados contindos no banco de dados. As alterações aparecem no banco de dados tão logo são digitadas.
> - Os varios controles vinculados(DbList, DbCombo, DbGrid, ...) oferecem um meio fácil de realizar tarefas que via código seriam complexas,
> As limitações do Controle de dados
> - Não apresentam função para alterar ou excluir registros.
> - É mais difícil a implementação do processamento de transações.
> - Um número excessivo de controles vinculados em um formulário torna a sua carga mais lenta.
> Conteúdo

### Adição, Alteração , inclusão e validação de dados

> Para contornar a ausência de funções para excluir e alterar registros podemos acrescentar as mesmas á tela de entrada de dados usando comandos de programa atribuídos a um botão de comando ou a eventos do controle de dados. Vejamos um exemplo de código que poderia ser atribuido a botões de comando de um formulário de entrada de dados:

>     1-Botão para inclusão de dados:

>         data1.Recordset.AddNew

>     2-Botão para exclusão de dados:

>         data1.Recordset.Delete
>         data1.Recordset.MoveLast

> Observe que não foi necessário utilizar o comando Update, pois as atualizações são feitas automaticamente pelo controle de dados quando do deslocamento para um novo registro ou ao fechar o formulário através dos eventos Validate e Reposition.

> Validate
> Este evento ocorre sempre antes de um registro se tornar o registro corrente ou antes da execução do método Update ou antes da exclusão de um registro ou do fechamento do recordset/formulário; Você pode associar a este evento o código para validação de seus dados , como no exemplo abaixo:

>     Private Sub data1_Validate(Action As Integer, Save As Integer)
>     If Save Then
>       Select Case MsgBox("Salvar Alterações ?", vbQuestion + vbYesNo)
>         Case vbYes '6
>          If nome.Text = Empty Then
>             MsgBox "Informe o nome do Cliente !", , "Gravar Clientes"
>             nome.SetFocus
>             Save = False
>             Action = vbDataActionCancel
>             Exit Sub
>          ElseIf endereco.Text = Empty Then
>             MsgBox "Informe endereço do cliente !", , "Gravar Clientes"
>             endereco.SetFocus
>             Save = False                '-não salva
>             Action = vbDataActionCancel '-cancela
>             Exit Sub
>          End If
>         Case vbNo  '7
>           Save = False
>           End Select
>     End If
>     End Sub

> Outro evento que pode ser utilizado para validar dados é o evento Reposition:

> Evento Reposition
> Ocorre sempre após o controle posicionar o registro corrente e após a carga do recordset pelo controle Data, neste momento o primeiro registro do recordset torna-se o registro corrente e o evento Reposition é gerado.

> Conteúdo

### Movendo-se em um recordset com o Controle Data.

> | Quando você move o registro corrente do recordset, através dos botões de comando disponíveis , temos as seguintes ações sendo executadas:

> 1. Todos os controles vinculados informam ao Controle Data as alterações ocorridas no seu conteúdo.
> 2. O Controle Data gera um evento Validate, indicando a ação tomada.
> 3. O Controle Data salva os dados no banco de dados , ou se for o caso gera um evento Error
> 4. O Controle se move para o registro solicitado e gera um evento Reposition informando a todos os controles vinculados os novos valores dos campos
> Conteúdo

### Considerações Finais

> Você pode utilizar o controle de dados sozinho no caso de aplicativos em que o usuário tenha acesso somente para leitura ou quando não existe a necessidade de inclusão/exclusão de registros.
> O Controle de dados é ótimo para prototipação de um aplicativo, pois você pode desenvolver rapidamente os formulários.
> Para um sistema multiusuário de uso intenso o controle de dados pode não ser uma boa escolha, pois pode aumentar a quantidade de conflitos de bloqueio de registros.
> Provavelmente a melhor solução seja o uso combinado dos controle de dados e de código de programa.

> Conteúdo

Retorna