Tenho o código VBA abaixo que salva um novo lançamento.
Ao Fechar o Formulário, mesmo que eu tenha digitado um nome qualquer, ele não é salvo.
Mas notei que automaticamente o Access gera uma nova chave primária, ou seja pula uma chave primária que não será mais utilizada.
Exemplo: se eu tinha até a chave primária 9, ao fechar o formulário o Access irá saltar a chave primária 10, e ao abrir novamente o formulário a próxima chave primária será 11.
É normal ou tem como evitar?
Ao Fechar o Formulário, mesmo que eu tenha digitado um nome qualquer, ele não é salvo.
Mas notei que automaticamente o Access gera uma nova chave primária, ou seja pula uma chave primária que não será mais utilizada.
Exemplo: se eu tinha até a chave primária 9, ao fechar o formulário o Access irá saltar a chave primária 10, e ao abrir novamente o formulário a próxima chave primária será 11.
É normal ou tem como evitar?
- Código:
Option Compare Database
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
Me.NomeGrupo.SetFocus
End Sub
Private Sub btSalvar_Click()
Me.NomeGrupo.SetFocus
If Me.NomeGrupo.Text = Empty Then
MsgBox "Operação cancelada!" & vbNewLine & vbNewLine & _
"O campo Nome do grupo está vazio!", vbInformation, " CADASTRO DE GRUPOS"
Exit Sub
End If
If (Not IsNull(DLookup("[NomeGrupo]", "tabGrupos", "[NomeGrupo] ='" & Me!NomeGrupo & "'"))) Then
MsgBox "Operação cancelada!" & vbNewLine & vbNewLine & _
"O grupo " & Me.NomeGrupo.Text & " já está cadastrado no sistema!", vbInformation, "CADASTRO DE GRUPO"
Cancel = True 'cancela o evento.
Me!NomeGrupo.Undo 'desfaz a digitação.
Else
DoCmd.GoToRecord , , acNewRec
MsgBox "Cadastro realizado com sucesso!", vbInformation, " CADASTRO DE GRUPOS"
End If
End Sub
Private Sub btFechar_Click()
Me.Undo
DoCmd.Close acForm, "FormGrupos"
End Sub