Font Size

Profile

Menu Style

Cpanel

18Novembro2017

MS Office Gurus

Onde os desenvolvedores Office se encontram

  • Criar conta
    *
    *
    *
    *
    *
    *

    Campos marcados com asterisco (*) são obrigatórios.

Mensagem
  • Kunena is not installed or the installed Kunena version is not supported. The plug-in has now been disabled. Please install/upgrade Kunena to version 1.7 for the Kunena Discuss Plug-in to function properly.

Curso Excel 2003 sobre ADO e ADOX (ActiveX Data Objects) - Parte 9

4.2.    Implementando uma transação usando um formulário: depositando dinheiro em uma conta corrente

O exemplo que inicia este subtópico será carregado para os subtópicos que seguem este. Iniciarei com o exemplo de como adicionar depósitos em uma tabela que representa uma conta bancária. Para este exemplo o leitor precisará de uma tabela contendo os campos a seguir (os nomes não precisam ser exatamente os mesmos desde que o leitor modifique a instrução SQL corretamente):

  • IDTransCc  --> Tipo: auto numérico 
  • Valor    --> Tipo: numérico/moeda (se numérico o tamanho deve ser “Duplo”)
  • Finalidade  --> Tipo: Texto
  •  Data   --> Tipo: Data

Crie um novo formulário com o layout abaixo (não acople o formulário e controles à tabela)

O usuário precisará preencher todos os campos antes de continuar. Caso os controles não tenham sido preenchidos a mensagem a seguir deve ser mostrada:

Com as explicações dadas de como o processo deve correr, vejamos como efetuar a transação:

Option Explicit

Private Sub cmdConfirmDep_Click()
Call execTrans
End Sub

Private Sub execTrans()
'   Dimensiona os objeto e variáveis que usaremos
Dim ctrl        As Control
Dim cn          As New ADODB.Connection
Dim strSQL      As String

'   Em caso de erro ir para Err_Handler
On Error GoTo Err_Handler

'   Varre todos os controles do formulário...
For Each ctrl In Me.Controls
'       Checa se é um 'TextBox" e se for...
If TypeName(ctrl) = "TextBox" Then

'           Checa se o valor do controle é nulo e se for...
If Len(ctrl.Value)<=1 Then

'               Mostra uma mensagem avisando que todos os controle devem
'               ser preenchidos
MsgBox "Você precisa preencher todos os campos " _
& "antes de continuar.", vbExclamation, _
"Preencher todos os campos"

'               Sai da sub-rotina. Nada mais deve ser executado até
'               que todos as TextBox tenham sido preenchidas
Exit Sub
End If
End If
Next ctrl

'   String SQL para insercao das informacoes. Estude a estrutura
'   desta instrucoes e como ela se relaciona com os campos na tabela
'   e os campos no formulário.
strSQL = "INSERT INTO tblCC (Valor, Finalidade, Data) "
strSQL = strSQL & " VALUES('" & Me.txtValor & "', '" & Me.txtFinalidade
strSQL = strSQL & "', '" & Me.txtData & "');"

'   Com a conexao
With cn

'       Abrir conexao
.Open strCn

'       Iniciar transacao
.BeginTrans

'       Executar transacao
.Execute strSQL

'       Aviso se deve ou nao continuar com a transacao
If MsgBox("Clique 'OK' para confirmar o depósito ou 'Cancelar' " _
& "para cancelar a operação.", vbExclamation + vbOKCancel) = _
vbOK Then

'           Se resposta afirmativa, concluir transacao
.CommitTrans

'           Avisar que transacao foi efetuada com sucesso
MsgBox "Operação efetuada com sucesso...", vbInformation, _
"Depósisto efetuado"
Else:

'           Caso resposta negativa, cancelar transacao
.RollbackTrans
End If
End With

' Limpar objetos da memória
Limpar:
On Error Resume Next
cn.Close
Set cn = Nothing
Set ctrl = Nothing
Exit Sub

Err_Handler:
MsgBox Err.Description, vbCritical, Err.Number
Resume Limpar

End Sub

O leitor pode agora executar o código para efetuar a operação de depósito na conta. Note que podemos usar o mesmo formulário para efetuar várias operações como a retirada de dinheiro da conta. Neste caso, o valor precisa ser negativo ao invés de positivo. Então precisamos checar se ele é maior ou igual a zero (para não efetuarmos um depósito quando positivo e para não efetuarmos uma retirada de R$0,00).

Deixo esta operação como exercício para o leitor. Vejamos agora como fazer uma transferência entre conta corrente e investimento.

Clique aqui para ler as partes anteriores deste curso!