Bom dia amigos. Eu conheço muito pouco de VBA mas estou aventurando-me em tentar aprender e desenvolver alguma coisa para uso próprio mas não consegui sair do primeiro passo. Utilizo o Win 10 e o Office 2016. Comecei a fazer um cadastro pequeno como teste,
se desse certo eu daria continuidade. Esses foram os códigos que usei:
Módulo 1
Option Explicit
Global banco As Database
Global consulta As Recordset
Sub conecta()
'Set banco = OpenDatabase("C:\Users\Lucas\Desktop\Concurso STJ\Cadastro_Cliente.mdb")
Set banco = OpenDatabase("C:\Users\Lucas\Desktop\Concurso STJ\BancoCadastro.accdb")
'Estou usando os dois banco por causa de sistema diferentes tipo Win 10 e Win XP
End Sub
Sub desconecta()
Set banco = Nothing
Set consulta = Nothing
End Sub
Form
Private Sub btnSair_Click()
Unload Me
End Sub
Private Sub btnSalvar_Click()
Dim ComandoSQL As String
Dim ID As Integer
ID = txtMatricula
ComandoSQL = "select * from tabela_cliente.accdb"
Call conecta
Set consulta = banco.OpenRecordset(ComandoSQL)
With consulta
.AddNew
.Fields("Matrícula") = ID
.Fields("Nome") = Me.txtNome
.Fields("Endereço") = Me.txtEndereco
.Fields("CPF") = Me.txtCPF
On Error GoTo Sai:
Update
End With
consulta.Close
banco.Close
Call desconecta
Call Limpar_campos
End Sub
Private Sub txtMatricula_AfterUpdate()
'Cria a variavel que armazena os comandos SQL
Dim ComandoSQL As String
Dim ID As Integer
ID = txtMatricula
'Armazena na variavel o comando que fará a consulta SQL no BD Access
ComandoSQL = "select * from Matrícula where Tabela_Cliente like '" & ID & "' "
'Chama a rotina que faz a conexão com o BD
Call conecta
'Atribui a variavel objeto de BD a execução dos comandos SQL
Set consulta = banco.OpenRecordset(ComandoSQL)
On Error GoTo Sai
Me.txtMatricula = consulta("Matricula")
Me.txtNome = consulta("Nome")
Me.txtEndereco = consulta("Endereço")
Me.txtCPF = consulta("CPF")
'Habilita os botãoes
Me.btnEditar = True
Me.btnExcluir = True
'Desbilita o botão salvar
Me.btnSalvar = False
Exit Sub
Sai: 'O comando será desviado para cá caso haja erro de acesso aos dados
Dim resposta As String
resposta = MsgBox("Código não encontrado. Deseja Cadastrar?", vbYesNo)
If resposta = vbYes Then
Call Limpar_campos
Me.txtMatricula = ID
Me.btnSalvar.Enabled = True
Else
Call Limpar_campos
Call desconecta
End If
End Sub
Sub Limpar_campos()
Me.txtMatricula = Empty
Me.txtNome = Empty
Me.txtEndereco = Empty
Me.txtCPF = Empty
End Sub
Quando tento gravar apresenta ERRO 429 e na depuração marca essa linha: Set banco = OpenDatabase("C:\Users\Lucas\Desktop\Concurso STJ\BancoCadastro.accdb"), idependente do BD que estiver usando.
Alguem teria uma dica?????