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