colegas, estou tendo um problema com a geração de código para um sistema de protocolo. o sistema começa tudo bem, depois de uns 300 dados gravados ele dá um erro: ele repete um codigo ja cadastrado, gerando assim duplicidade de chave primaria e a unica solução que eu tenho é deletar o bd e começar a partir do ultimo codigo. o que fazer? segue o codigo:
Private Sub cmdincluir_Click()
cmdincluir.Enabled = False
cmdalterar.Enabled = False
cmdconsultar.Enabled = False
cmdexcluir.Enabled = False
cmdanterior.Enabled = False
cmdproximo.Enabled = False
cmdprimeiro.Enabled = False
cmdultimo.Enabled = False
cmdgravar.Enabled = True
cmdsair.Enabled = True
cmdcancelar.Enabled = True
LimpaFormulario
Frame1.Enabled = True
cmbescola.SetFocus
Dim cod As Integer
txtcodigo.Text = Format(txtcodigo.Text, "000000")
TBProtocolo2011.Seek "=", txtcodigo.Text
If TBProtocolo2011.NoMatch = False Then
TBProtocolo2011.AddNew
cod = TBProtocolo2011.RecordCount
txtcodigo = cod + 1
txtcodigo.Text = Format(txtcodigo.Text, "000000")
' MsgBox "Código de contato já existente. Tente outro código.", vbCritical, "ATENÇÃO..."
' AtualizaFormulairo
' cmdincluir.Enabled = True
' cmdexcluir.Enabled = True
' cmdconsultar.Enabled = True
' cmdalterar.Enabled = True
' cmdgravar.Enabled = False
' cmdsair.Enabled = True
' cmdprimeiro.Enabled = True
' cmdanterior.Enabled = True
' cmdproximo.Enabled = True
' cmdultimo.Enabled = True
' MsgBox ("Favor Utilizar os Códigos na Sequência. Verifique o último registro..."), vbInformation, "ATENÇÃO..."
' Frame1.Enabled = False
Else
TBProtocolo2011.AddNew
cod = TBProtocolo2011.RecordCount
txtcodigo = cod + 1
txtcodigo.Text = Format(txtcodigo.Text, "000000")
End If
txtcodigo.Enabled = False
End Sub