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.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. |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
adios muchachos...