Galera,
Alguém podeira me ajudar com esta rotina, ver onde esta o erro ?
No meu Form eu tenho esta função.
Option Compare Database
Option Explicit
Private Sub btnExcluir_Click()
Dim objLocador As clsLocador
If Not IsNull(txtCodigo) Then
If MsgBox("Confirma a exclusão do registro?", vbQuestion + vbYesNo, "Excluir Locador") = vbYes Then
Set objLocador = buscaCampos
If objLocador.excluir Then
MsgBox "O registro foi excluído com sucesso.", vbInformation, "Excluir Locador"
LstLocador.Requery
Call limpaCampos
Else
MsgBox "Ocorreu um erro durante a exclusão.", vbExclamation, "Excluir Locador"
End If
End If
End If
End Sub
Private Sub btnNovo_Click()
Call limpaCampos
End Sub
Private Sub btnSalvar_Click()
Dim objLocador As clsLocador
If Not IsNull(txtCpf) And Not IsNull(txtNome) Then
Set objLocador = buscaCampos
If objLocador.salvar Then
MsgBox "O Locador foi salvo com sucesso.", vbInformation, "Salvar Locador"
LstLocador.Requery
Call atualizaCampos(objLocador)
Else
MsgBox "Ocorreu um erro durante o salvamento.", vbExclamation, "Salvar Locador"
End If
Else
MsgBox "Informe os dados do Locador.", vbExclamation, "Salvar Locador"
End If
End Sub
Private Sub lstLocador_Click()
Dim objLocador As New clsLocador
Dim codigoLocador As Long
codigoLocador = LstLocador.Value
If objLocador.obter(codigoLocador) Then
Call atualizaCampos(objLocador)
End If
End Sub
Private Sub limpaCampos()
txtCodigo = Null
txtCpf = Null
txtNome = Null
TxtCNPJ = Null
TxtRG = Null
TxtData_Nascimento = Null
TxtNacionalidade = Null
TxtNaturalidade = Null
TxtEstado_Civil = Null
TxtNome_Mae = Null
TxtNome_Pai = Null
TxtTelefone_Res = Null
TxtTelefone_Cel1 = Null
TxtTelefone_Cel2 = Null
TxtTelefone_Rec = Null
Txtemail = Null
TxtBanco = Null
TxtAgencia = Null
TxtConta = Null
TxtCod_Verif = Null
TxtTit_Conta = Null
TxtAdm = Null
TxtObservacoes = Null
txtNome.SetFocus
End Sub
Private Sub atualizaCampos(argLocador As clsLocador)
txtCodigo = argLocador.codLocador
txtCpf = argLocador.cpf
txtNome = argLocador.nomeLocador
TxtCNPJ = argLocador.CNPJ
TxtRG = argLocador.RG
TxtData_Nascimento = argLocador.Data_Nascimento
TxtNacionalidade = argLocador.Nacionalidade
TxtNaturalidade = argLocador.Naturalidade
TxtEstado_Civil = argLocador.Estado_Civil
TxtNome_Mae = argLocador.Nome_Mae
TxtNome_Pai = argLocador.Nome_Pai
TxtTelefone_Res = argLocador.Telefone_Res
TxtTelefone_Cel1 = argLocador.Telefone_Cel1
TxtTelefone_Cel2 = argLocador.Telefone_Cel2
TxtTelefone_Rec = argLocador.Telefone_Rec
Txtemail = argLocador.email
TxtBanco = argLocador.Banco
TxtAgencia = argLocador.Agencia
TxtConta = argLocador.Conta
TxtCod_Verif = argLocador.Cod_Verif
TxtTit_Conta = argLocador.Tit_Conta
TxtAdm = argLocador.Adm
TxtObservacoes = argLocador.Observacoes
End Sub
Private Function buscaCampos() As clsLocador
Set buscaCampos = New clsLocador
If IsNull(txtCodigo) Then
txtCodigo = proximoCodigo("codLocador", "Tbl_Locador")
End If
buscaCampos.codLocador = txtCodigo
buscaCampos.cpf = txtCpf
buscaCampos.nomeLocador = txtNome
buscaCampos.CNPJ = TxtCNPJ
buscaCampos.RG = TxtRG
buscaCampos.Data_Nascimento = TxtData_Nascimento
buscaCampos.Nacionalidade = TxtNacionalidade
buscaCampos.Naturalidade = TxtNaturalidade
buscaCampos.Estado_Civil = TxtEstado_Civil
buscaCampos.Nome_Mae = TxtNome_Mae
buscaCampos.Nome_Pai = TxtNome_Pai
buscaCampos.Telefone_Res = TxtTelefone_Res
buscaCampos.Telefone_Cel1 = TxtTelefone_Cel1
buscaCampos.Telefone_Cel2 = TxtTelefone_Cel2
buscaCampos.Telefone_Rec = TxtTelefone_Rec
buscaCampos.email = Txtemail
buscaCampos.Banco = TxtBanco
buscaCampos.Agencia = TxtAgencia
buscaCampos.Conta = TxtConta
buscaCampos.Cod_Verif = TxtCod_Verif
buscaCampos.Tit_Conta = TxtTit_Conta
buscaCampos.Adm = TxtAdm
buscaCampos.Observacoes = TxtObservacoes
End Function
Private Sub txtPesquisa_Change()
LstLocador.RowSource = "SELECT Tbl_Locador.codLocador, Tbl_Locador.nomeLocador, Format(Tbl_Locador.cpf,'000\.000\.000-00') AS cpf " & _
"FROM Tbl_Locador " & _
"WHERE nomeLocador Like '*" & txtPesquisa.Text & "*' " & _
"ORDER BY Tbl_Locador.nomeLocador;"
LstLocador.Requery
End Sub
Que depois chama a seguinte função:
Option Compare Database
Option Explicit
'Objeto da classe Utilitario
Private objUtil As New aclUtilitario
'Atributos da Classe
'Atributo de backup e atributo identificador da Classe
'PK - Código que identifica o Locador.
Private bkpCodLocador As Variant
Private lngCodLocador As Variant
'Classe social do Locador, calculada de acordo com a renda.
'Private strClasse As Variant
'CPF do Locador.
Private strCpf As Variant
Private strNomeLocador As Variant
Private strCNPJ As Variant
Private strRG As Variant
Private strData_Nascimento As Variant
Private strNacionalidade As Variant
Private strNaturalidade As Variant
Private strEstado_Civil As Variant
Private strNome_Mae As Variant
Private strNome_Pai As Variant
Private strTelefone_Res As Variant
Private strTelefone_Cel1 As Variant
Private strTelefone_Cel2 As Variant
Private strTelefone_Rec As Variant
Private strEmail As Variant
Private strBanco As Variant
Private strAgencia As Variant
Private strConta As Variant
Private strCod_Verif As Variant
Private strTit_Conta As Variant
Private strAdm As Variant
Private strObservacoes As Variant
'Métodos Get, Set e Let da Classe
Property Get codLocador() As Variant
codLocador = lngCodLocador
End Property
Property Let codLocador(argCodLocador As Variant)
lngCodLocador = argCodLocador
If IsEmpty(bkpCodLocador) Then
bkpCodLocador = lngCodLocador
End If
End Property
Property Get cpf() As Variant
cpf = strCpf
End Property
Property Let cpf(argCpf As Variant)
If Not IsNull(argCpf) Then
If Not objUtil.validaCPF(argCpf) Then
MsgBox "O CPF <" & Format(argCpf, "000\.000\.000\-00") & _
"> não é válido.", vbExclamation, "CPF Inválido"
strCpf = Null
Else
strCpf = argCpf
End If
Else
strCpf = argCpf
End If
End Property
Property Get email() As Variant
email = strEmail
End Property
Property Let email(argEmail As Variant)
If Not IsNull(argEmail) Then
If Not objUtil.validaEmail(argEmail) Then
If MsgBox("O E-mail <" & argEmail & "> não possui um formato válido." _
& vbCrLf & "Deseja incluir este e-mail?", vbQuestion + vbYesNo, _
"E-mail Inválido") = vbYes Then
strEmail = argEmail
End If
Else
strEmail = argEmail
End If
Else
strEmail = argEmail
End If
End Property
Property Get nomeLocador() As Variant
nomeLocador = strNomeLocador
End Property
Property Let nomeLocador(argNomeLocador As Variant)
If Not IsNull(argNomeLocador) Then
strNomeLocador = objUtil.nomeProprio(argNomeLocador)
Else
strNomeLocador = argNomeLocador
End If
End Property
Property Get CNPJ() As Variant
CNPJ = strCNPJ
End Property
Property Let CNPJ(argCNPJ As Variant)
If Not IsNull(argCNPJ) Then
If Not objUtil.validaCNPJ(argCNPJ) Then
MsgBox "O CNPJ <" & Format(argCNPJ, "00\.000\.000\/0000\-00") & _
"> não é válido.", vbExclamation, "CNPJ Inválido"
strCNPJ = Null
Else
strCNPJ = argCNPJ
End If
Else
strCNPJ = argCNPJ
End If
End Property
Property Get RG() As Variant
RG = strRG
End Property
Property Let RG(argRG As Variant)
strRG = argRG
End Property
Property Get Data_Nascimento() As Variant
Data_Nascimento = strData_Nascimento
End Property
Property Let Data_Nascimento(argData_Nascimento As Variant)
strData_Nascimento = argData_Nascimento
End Property
Property Get Nacionalidade() As Variant
Nacionalidade = strNacionalidade
End Property
Property Let Nacionalidade(argNacionalidade As Variant)
strNacionalidade = argNacionalidade
End Property
Property Get Naturalidade() As Variant
Naturalidade = strNaturalidade
End Property
Property Let Naturalidade(argNaturalidade As Variant)
strNaturalidade = argNaturalidade
End Property
Property Get Estado_Civil() As Variant
Estado_Civil = strEstado_Civil
End Property
Property Let Estado_Civil(argEstado_civil As Variant)
strEstado_Civil = argEstado_civil
End Property
Property Get Nome_Mae() As Variant
Nome_Mae = strNome_Mae
End Property
Property Let Nome_Mae(argNome_Mae As Variant)
strNome_Mae = argNome_Mae
End Property
Property Get Nome_Pai() As Variant
Nome_Pai = strNome_Pai
End Property
Property Let Nome_Pai(argNome_Pai As Variant)
strNome_Pai = argNome_Pai
End Property
Property Get Telefone_Res() As Variant
Telefone_Res = strTelefone_Res
End Property
Property Let Telefone_Res(argTelefone_Res As Variant)
strTelefone_Res = argTelefone_Res
End Property
Property Get Telefone_Cel1() As Variant
Telefone_Cel1 = strTelefone_Cel1
End Property
Property Let Telefone_Cel1(argTelefone_Cel1 As Variant)
strTelefone_Cel1 = argTelefone_Cel1
End Property
Property Get Telefone_Cel2() As Variant
Telefone_Cel2 = strTelefone_Cel2
End Property
Property Let Telefone_Cel2(argTelefone_Cel2 As Variant)
strTelefone_Cel2 = argTelefone_Cel2
End Property
Property Get Telefone_Rec() As Variant
Telefone_Rec = strTelefone_Rec
End Property
Property Let Telefone_Rec(argTelefone_Rec As Variant)
strTelefone_Rec = argTelefone_Rec
End Property
Property Get Banco() As Variant
Banco = strBanco
End Property
Property Let Banco(argBanco As Variant)
strBanco = argBanco
End Property
Property Get Agencia() As Variant
Agencia = strAgencia
End Property
Property Let Agencia(argAgencia As Variant)
strAgencia = argAgencia
End Property
Property Get Conta() As Variant
Conta = strConta
End Property
Property Let Conta(argConta As Variant)
strConta = argConta
End Property
Property Let Tit_Conta(argTit_Conta As Variant)
strTit_Conta = argTit_Conta
End Property
Property Get Tit_Conta() As Variant
Tit_Conta = strTit_Conta
End Property
Property Get Cod_Verif() As Variant
Cod_Verif = strCod_Verif
End Property
Property Let Cod_Verif(argCod_Verif As Variant)
strCod_Verif = argCod_Verif
End Property
Property Get Adm() As Variant
Adm = strAdm
End Property
Property Let Adm(argAdm As Variant)
strAdm = argAdm
End Property
Property Get Observacoes() As Variant
Observacoes = strObservacoes
End Property
Property Let Observacoes(argObservacoes As Variant)
strObservacoes = argObservacoes
End Property
'Método Existe [Com conhecimento de SQL]
'Verifica a existência do objeto Locador na tabela correspondente
'no Banco de Dados
Function existe(argCodLocador As Variant) As Boolean
On Error GoTo Err_existe
Dim objCon As New aclConexaoBD
Dim rstExiste As Recordset
Dim strSql As String
existe = False
strSql = "Select * " & _
"From Tbl_Locador " & _
"Where codLocador = " & objCon.valorSql(argCodLocador)
Set rstExiste = objCon.consulta(strSql)
If rstExiste.RecordCount > 0 Then
existe = True
End If
'Fecha o Recordset existe
rstExiste.close
Exit_existe:
Set rstExiste = Nothing
Exit Function
Err_existe:
existe = False
GoTo Exit_existe
End Function
'Método Incluir [Com conhecimento de SQL]
'Inclui um novo objeto na tabela correspondente dentro do Banco de dados
Private Function incluir() As Boolean
On Error GoTo Err_incluir
Dim objCon As New aclConexaoBD
Dim strSql As String
strSql = "Insert Into " & _
"Tbl_locador(codLocador,CPF,NomeLocador,CNPJ,RG,Data_Nascimento,Nacionalidade,Naturalidade,Estado_Civil,Nome_Mae,Nome_Pai,Telefone_Res,Telefone_Cel1,Telefone_Cel2,Telefone_Rec,email,Banco,Agencia,Conta,Cod_Verif,Tit_Conta,Adm,Observacoes) " & _
"Values(" & objCon.valorSql(codLocador) & "," _
& objCon.valorSql(cpf) & "," & objCon.valorSql(nomeLocador) _
& "," & objCon.valorSql(CNPJ) & "," & objCon.valorSql(RG) _
& "," & objCon.valorSql(Data_Nascimento) & "," & objCon.valorSql(Nacionalidade) _
& "," & objCon.valorSql(Naturalidade) & "," & objCon.valorSql(Estado_Civil) _
& "," & objCon.valorSql(Nome_Mae) & "," & objCon.valorSql(Nome_Pai) _
& "," & objCon.valorSql(Telefone_Res) & "," & objCon.valorSql(Telefone_Cel1) _
& "," & objCon.valorSql(Telefone_Cel2) & "," & objCon.valorSql(Telefone_Rec) _
& "," & objCon.valorSql(email) & "," & objCon.valorSql(Banco) _
& "," & objCon.valorSql(Agencia) & "," & objCon.valorSql(Cod_Verif) _
& "," & objCon.valorSql(Tit_Conta) & "," & objCon.valorSql(Adm) _
& "," & objCon.valorSql(Observacoes) & ")"
incluir = (objCon.executa(strSql) > 0)
If incluir Then
'Atualiza os campos de backup
bkpCodLocador = codLocador
End If
Exit_incluir:
Exit Function
Err_incluir:
incluir = False
GoTo Exit_incluir
End Function
'Método Excluir [Com conhecimento de SQL]
'Exclui o objeto atual na tabela correspondente dentro do Banco de dados
Function excluir() As Boolean
On Error GoTo Err_excluir
Dim objCon As New aclConexaoBD
Dim strSql As String
strSql = "Delete From Tbl_Locador " & _
"Where codLocador = " & objCon.valorSql(codLocador)
excluir = (objCon.executa(strSql) > 0)
Exit_excluir:
Exit Function
Err_excluir:
excluir = False
GoTo Exit_excluir
End Function
'Método Obter [Com conhecimento de SQL]
'Recupera o objeto Locador através dos argumentos informados
Function obter(argCodLocador As Variant) As Boolean
On Error GoTo Err_obter
Dim objCon As New aclConexaoBD
Dim rstObter As Recordset
Dim strSql As String
strSql = "Select * " & _
"From Tbl_locador " & _
"Where codLocador = " & objCon.valorSql(argCodLocador)
Set rstObter = objCon.consulta(strSql)
If rstObter.RecordCount = 0 Then
obter = False
Exit Function
End If
'Atualiza os campos de backup e os identificadores
codLocador = argCodLocador
bkpCodLocador = argCodLocador
'Atualiza os campos restantes
'strClasse = rstObter.Fields("classe")
cpf = rstObter.Fields("CPF")
strEmail = rstObter.Fields("email")
nomeLocador = rstObter.Fields("nomeLocador")
CNPJ = rstObter.Fields("CNPJ")
RG = rstObter.Fields("RG")
Data_Nascimento = rstObter.Fields("Data_Nascimento")
Nacionalidade = rstObter.Fields("Nacionalidade")
Naturalidade = rstObter.Fields("Naturalidade")
Estado_Civil = rstObter.Fields("Estado_civil")
Nome_Mae = rstObter.Fields("Nome_Mae")
Nome_Pai = rstObter.Fields("Nome_Pai")
Telefone_Res = rstObter.Fields("Telefone_Res")
Telefone_Cel1 = rstObter.Fields("Telefone_Cel1")
Telefone_Cel2 = rstObter.Fields("Telefone_Cel2")
Telefone_Rec = rstObter.Fields("Telefone_Rec")
Banco = rstObter.Fields("Banco")
Agencia = rstObter.Fields("Agencia")
Conta = rstObter.Fields("Conta")
Cod_Verif = rstObter.Fields("Cod_Verif")
Tit_Conta = rstObter.Fields("Tit_Conta")
Adm = rstObter.Fields("Adm")
Observacoes = rstObter.Fields("Observacoes")
obter = True
'Fecha o Recordset obter
rstObter.close
Exit_obter:
Set rstObter = Nothing
Exit Function
Err_obter:
obter = False
MsgBox Err.Description
GoTo Exit_obter
End Function
'Método Salvar [Com conhecimento de SQL]
'Salva o objeto atual na tabela correspondente dentro do Banco de dados
Function salvar() As Boolean
On Error GoTo Err_salvar
Dim objCon As New aclConexaoBD
Dim strSql As String
If existe(bkpCodLocador) Then
strSql = "Update Tbl_locador " & _
"Set codLocador = " & objCon.valorSql(codLocador) _
& ", CPF = " & objCon.valorSql(cpf) & ", email = " _
& objCon.valorSql(email) & ", NomeLocador = " _
& objCon.valorSql(nomeLocador) & ", CNPJ = " _
& objCon.valorSql(CNPJ) & ", RG = " _
& objCon.valorSql(RG) & ", Data_Nascimento = " _
& objCon.valorSql(Data_Nascimento) & ", Nacionalidade = " _
& objCon.valorSql(Nacionalidade) & ", Naturalidade = " _
& objCon.valorSql(Naturalidade) & ", Estdo_Civil = " _
& objCon.valorSql(Estado_Civil) & ", Nome_Mae = " _
& objCon.valorSql(Nome_Mae) & ", Nome_Pai = " _
& objCon.valorSql(Nome_Pai) & ", Telefone_Res = " _
& objCon.valorSql(Telefone_Res) & ", Telefone_Cel1 = " _
& objCon.valorSql(Telefone_Cel1) & ", Telefone_Cel2 = " _
& objCon.valorSql(Telefone_Cel2) & ", Telefone_Rec = " _
& objCon.valorSql(Telefone_Rec) & ", Banco = " _
& objCon.valorSql(Banco) & ", Agencia = " _
& objCon.valorSql(Agencia) & ", Conta = " _
& objCon.valorSql(Conta) & ", Cod_Verif = " _
& objCon.valorSql(Cod_Verif) & ", Tit_Conta = " _
& objCon.valorSql(Tit_Conta) & ", Adm = " _
& objCon.valorSql(Adm) & ", Observacoes = " _
& objCon.valorSql(Observacoes) _
& " Where codLocador = " & objCon.valorSql(bkpCodLocador)
salvar = (objCon.executa(strSql) > 0)
Else
salvar = incluir
End If
If salvar Then
'Atualiza as variáveis de backup com o novo valor da chave
bkpCodLocador = codLocador
End If
Exit_salvar:
Exit Function
Err_salvar:
salvar = False
GoTo Exit_salvar
End Function
Não consigo achar o erro de forma alguma.
Obrigado.