CÓDIGO DA APLICAÇÃO


Objeto Controle de Dados(Data Control)

Lembre-se que você esta usando um banco de dados do Microsoft Access , então:

Para o objeto Data voce deve configurar as propriedades como abaixo:

1- A propriedade Connect deve estar como: Access.

2- A propriedade Name do controle deve ser: DtaCli.

3- O DatabaseName é o nome do seu arquivo de banco de dados, no caso: Controle.mdb

4- O RecordSource poderá ser uma tabela ou uma instrução SQL, no seu caso , é a 
   tabela Clientes do banco de dados Controle.mdb.

5- A propriedade RecordSetType deve ser definida como 0-Table.
   Por isso criamos o índice com o campo código, para utilizar com o método Seek do
   Recordset Tabela. Se recordSetType fosse definido como 1-Dynaset> ou 2-Snapshot
   não poderiamos usar o método Seek e sim o FindFirst, FindNext, FindLast, etc.

obs-Voce poderia ter incluido o código no evento Load do seu formulário
    configurando as propriedades discutidas acima da seguinte forma:
    
    Sub Form_load 
      dtacli.Databasename="C:\Controle\Controle.mdb" 
      dtacli.Recordsource="Clientes" 
      dtacli.RecordSetType= 0      
    End Sub
    

Caixas de Texto(TextBox)

Agora para cada Textbox voce deve configurar as propriedades como segue: 

1- A propriedade DataSource deve receber o nome do objeto Data: DtaCli

2- A propriedade DataField de cada TextBox deve ser vinculada ao respectivo campo
   da tabela Clientes.(Selecione na lista de campos).

Feito isto o Controle de dados, DtaCli fornecerá o vinculo entre o seu formulário e o 
banco de dados através da propriedade DataField das Caixas de Texto(TextBox)
e também as ferramentas para a navegação através do banco de dados.

Para movimentar-se pelos registros da tabela Clientes basta clicar nos
botões do objeto DtaCli.
Movimentar registros

Código associado a cada botão de commando


Dica: - A palavra Recordset pode representar um objeto e uma propriedade.
         Desta forma você pode atribuir um Recordset a uma variável 
         objeto, da seguinte forma:

         Set meusdados = Data1.Recordset

         A seguir você pode se referir ao seu Recordset usando 
         a variável objeto.(Não esqueça de definí-la previamente.) 
         No exemplo a seguir não usaremos esta notação.
Para inserir as linhas de código basta clicar duas vezes no botão correspondente
do seu formulário. 

1-Código para botão incluir dados:

      
        Private Sub Incluir_Click()
            dtacli.Recordset.AddNew    'insere informações no buffer de cópia preparando
                                        para incluir um novo registro no recordset
            excluir.Enabled = False    'desabilita o botão excluir
            incluir.Enabled = False    'desabilita o botão incluir
            localizar.Enabled = False  'desabilita o botão localizar
            sair.Caption = "&Cancelar" 'Muda o nome do botão Sair para Cancelar
            gravar.Enabled = True      'Habilita o botão gravar
            nome.SetFocus              'põe o foco na caixa de texto nome
        End Sub
      
Após clicar no botão Incluir, voce pode digitar os dados referentes a
cada cliente e a seguir clicar no botão Gravar para gravar as informações
na sua tabela Clientes ou cancelar o processo de inclusão.

2-Código do botão gravar dados:

    
    Private Sub gravar_Click()
      If nome.Text = Empty Then
        MsgBox "Informe o nome do Cliente.", vbExclamation, "Gravar Clientes"
        nome.SetFocus
        Exit Sub
      End If
      If endereco.Text = Empty Then
        MsgBox "Informe o endereco do cliente.", vbExclamation,"Gravar Clientes"
        endereco.SetFocus
        Exit Sub
      End If
      If cidade.Text = Empty Then
        MsgBox "Informe a cidade do cliente.", vbExclamation,"Gravar Clientes"
        cidade.SetFocus
        Exit Sub
      End If
      If uf.Text = Empty Then
        MsgBox "Informe a UF do cliente.", vbExclamation, "Gravar Clientes"
        uf.SetFocus
        Exit Sub
      End If
      If cep.Text = Empty Then
        MsgBox "Informe o Cep do cliente.", vbExclamation, "Gravar Clientes"
        cep.SetFocus
        Exit Sub
      End If
      dtacli.UpdateRecord
      dtacli.Recordset.Bookmark = dtactl.Recordset.LastModified
      sair(4).Caption = "&Sair"
      localizar.Enabled = True
   End Sub
   
3-Código do botão Cancelar a inclusão de dados:

  
   Private Sub Sair_Click()
     If sair.Caption = "&Cancelar" Then
        dtacli.Recordset.CancelUpdate
        dtacli.Recordset.MoveLast
        incluir.Enabled = True
        excluir.Enabled = True
        localizar.Enabled = True
        sair.Caption = "&Sair"
     Else
        If MsgBox("Quer sair do sistema ?", vbYesNo,"Sair do Sistema") = vbYes Then
          End
        Else
          Exit Sub
        End If
     End If
   End Sub
4-Código para o botão Excluir dados:

  
  Private Sub excluir_Click()
    If MsgBox("Confirma Exclusão do cliente  -> " & dtactl.Recordset![codigo], vbQuestion + vbYesNo, "Excluir Clientes") = vbYes Then 
      dtacli.Recordset.Delete
      dtacli.Refresh
    End If
  End Sub
(Refresh).

5-Código para o botão Localizar dados:

  
  Private Sub localizar_Click()
    Dim criterio As long
    Dim marcador As variant
 
    marcador = dtacli.Recordset.Bookmark
    dtacli.Recordset.Index = "codigo" 'recordset é do tipo Table !!!
  
    criterio = InputBox$("Codigo do cliente a localizar: ", "Localizar Clientes")
 
    If criterio <> Empty Then
      dtacli.Recordset.Seek "=", criterio
      If dtacli.Recordset.NoMatch Then
        MsgBox "Cliente não localizado ! ", vbExclamation, "Localizar Clientes"
        dtacli.Recordset.Bookmark = marcador
      End If
    Else
        dtacli.Recordset.Bookmark = marcador
    End If
  End Sub
6-Código do evento Reposition:
  

 Private Sub dtactl_Reposition() 'primeiro evento a ocorrer
  If dtacli.Recordset.RecordCount < > 0 Then
    incluir(0).Enabled = True
    excluir(1).Enabled = True
    dtacli.Caption = "Total de Clientes: " & dtactl.Recordset.RecordCount
  Else
    excluir(1).Enabled = False
    incluir(0).Enabled = True
    gravar(2).Enabled = False
    dtacli.Caption = "O arquivo esta vazio"
  End If
 End Sub
7-Código do evento Validate:
  

Private Sub dtactl_Validate(Action As Integer, Save As Integer)
   If Save Then
      Select Case MsgBox("Deseja Salvar Alterações ?", vbQuestion + vbYesNo)
        Case vbYes '6
          If nome.Text = Empty Then
             MsgBox "Nome do Cliente deve ser informado !", , "Gravar Clientes"
             nome.SetFocus
             Save = False 'nao salva os dados
             Action = vbDataActionCancel 'Cancela acao
             Exit Sub
          ElseIf endereco.Text = Empty Then
             MsgBox "Endereco do Cliente deve ser informado !", , "Gravar Clientes"
             endereco.SetFocus
             Save = False
             Action = vbDataActionCancel
             Exit Sub
          ElseIf cidade.Text = Empty Then
             MsgBox "Por favor, informe a cidade do Cliente !", , "Gravar Clientes"
             cidade.SetFocus
             Save = False
             Action = vbDataActionCancel
             Exit Sub
          ElseIf cep.Text = Empty Then
             MsgBox "Cep do Cliente deve ser informado !", , "Gravar Clientes"
             cep.SetFocus
             Save = False
             Action = vbDataActionCancel
             Exit Sub
          ElseIf uf.Text = Empty Then
             MsgBox "Por favor, informe a UF do Cliente !", , "Gravar Clientes"
             uf.SetFocus
             Save = False
             Action = vbDataActionCancel
             Exit Sub
          End If
        Case vbNo  '7
          Save = False
      End Select
  End If
End Sub
  • Utilizamos o evento para validar os dados , cancelar a ação(vbDataActionCancel) e mudar o valor de Save quando necessário. 8-Código para tratamento de erros
    
    
    Private Sub dtactl_error(dataerr As Integer, response As Integer)
      'trata erros quando nenhum código esta sendo executado
    
        Select Case dataerr
    
             Case 3044 'caminho invalido
                MsgBox "O caminho informado não é valido, verifique !"
                End 'uma maneira muito rude de interromper sua aplicacao, mas...
    
             Case 3024 'nao achou banco de dados
                MsgBox "O arquivo definido não foi encontrado !"
                End
    
             Case Else
             'MsgBox "Erro  em  : " & Error$(dataerr) 'para mostrar o erro.
             response = vbDataErrcontinue  'ou vbdataErrdisplay
    
        End Select
    
    End Sub
    
    

    A rotina acima é utilizada para interceptar erros que ocorrem quando nenhum código está sendo executado. Estes erros podem ocorrer quando a carga do formulário ainda não estiver completa. Agora basta rodar o projeto.

    adios muchachos...


    Retorna