Alexandre Fim 3/5/2019, 02:20
Crysostomo boa noite,
Não utilize o nome como parâmetro de verificação de registros na base, pois corre o risco de você ter 2 clientes com o mesmo nome (homônimos).
Geralmente, se faz a verificação por um campo que não se repete, no caso, o CPF.
Ou você pode utilizar um conjunto de parâmetros (nome, nome da mãe, local de nascimento, RG, Data de Nascimento e etc...) para fazer esta verificação.
Segue exemplo de instrução para INCLUIR ou ATUALIZAR o registro.
- Código:
Public Sub GravarCliente(nTipo As Integer)
On Error GoTo trata_erro
Dim db As DAO.Database
Dim sSQL As String
Dim stracao As String
Set db = CurrentDb
If nTipo = 1 Then
stracao = "incluído"
'Não inclui o código do cliente pq imagino que seja AUTONUMÉRICO
sSQL = "INSERT INTO TB_CLIENTE "
sSQL = sSQL & " ("
sSQL = sSQL & " NomeCli"
sSQL = sSQL & " ,DataNascCli"
sSQL = sSQL & " ,RGCli"
sSQL = sSQL & " ,EnderecoCli"
sSQL = sSQL & " )"
sSQL = sSQL & " VALUES"
sSQL = sSQL & " ("
sSQL = sSQL & " '" & Trim(Me.txtnomecli) & "'"
sSQL = sSQL & " ,'" & Trim(Me.txtdtnasccli) & "'"
sSQL = sSQL & " ,'" & Trim(Me.txtrgcli) & "'"
sSQL = sSQL & " ,'" & Trim(Me.txtnomecli) & "'"
sSQL = sSQL & " )"
ElseIf nTipo = 2 Then
stracao = "alterado"
sSQL = "UPDATE TB_CLIENTE SET"
sSQL = sSQL & " NomeCli = '" & Me.txtnomecli & "'"
sSQL = sSQL & " ,DataNascCli = '" & Me.txtdtnasccli & "'"
sSQL = sSQL & " ,RGCli= '" & Me.txtrgcli & "'"
sSQL = sSQL & " ,EnderecoCli= '" & Trim(Me.txtendcli) & "'"
sSQL = sSQL & " WHERE CodCli= " & Me.txtcodcli & ""
End If
'Executa a instrução de INCLUIR OU ATUALIZAR
db.Execute sSQL
MsgBox "Registro " & stracao & " com sucesso.", vbInformation, "Mensagem"
Exit Sub
'Tratamento de erro
trata_erro:
MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
Exit Sub
End Sub
O procedimento acima pode ser executado através de um botão de comando, com a seguinte instrução:
- Código:
'informe 1 para INCLUIR ou 2 para ATUALIZAR
Call GravaCliente(1)
Espero ter ajudado
Boa sorte