vieirasoft 19/9/2010, 12:45
Caro Assis
Crie um novo Módulo e coloque este código (chame ModuloSimulaAutonumerico)
Option Compare Database
Option Explicit
Public Function MaximoValorTabela(Campo As String, Tabela As String) As String
On Error GoTo Error_Mc
If IsNull(DMax(Campo, Tabela)) Then
MaximoValorTabela = 1
Else
MaximoValorTabela = DMax(Campo, Tabela) + 1
End If
Sair_Error_MC:
Exit Function
Error_Mc:
Select Case Err.Number
Case 2471
MsgBox "Campo " & Campo & ", Não definido na Função. Contacte o serviço de Manutenção", vbCritical + vbOKOnly, "AVISO"
MaximoValorTabela = ""
Case 3078
MsgBox "Tabla " & Tabela & " , Não definido na Função. Contacte o serviço de Manutenção", vbCritical + vbOKOnly, "AVISO"
MaximoValorTabela = ""
Case 13
MsgBox "Só são admitidos camps com valores númericos Numéricos. Contacte o serviço de Manutenção", vbCritical + vbOKOnly, "AVISO"
MaximoValorTabela = ""
Case Else
MsgBox "Aviso Nº: " & Err.Number & " desde Função MaximoValorTabela" & Chr(13) + Chr(10) _
& "Concepto: " & Err.Description & Chr(13) + Chr(10) _
& "Contacte o serviço de Manutenção.", vbCritical + vbOKOnly, "AVISO"
MaximoValorTabela = ""
End Select
Resume Sair_Error_MC
End Function
..................................................
Na Tabela defina:
Nome do Campo-Número -Texto -Número seqüencial no ano
Máscara
999-9999;0;_ e defina o max do campo para 8
...............................
Crie um Botão de comando
On Error Resume Next
DoCmd.RunCommand acCmdRecordsGoToNew
Altere a máscara a seu bel prazer
Tenha um bom trabalho