Predestined 28/9/2014, 23:00
Saudações ahteixeira! Estou grato pela sugestão.
Eu estava a testar a sua sugestão entre os exemplos daqui fórum, quando tive uma clareza de modificação em um dos exemplos.
O exemplo que modifiquei fica no link [Resolvido]Auto numeração com mascara no formato 0001/2014
Fiz adequações em três linhas do código basContador
de: AnoData = Year(Date)
para: AnoData = Format(Date, "yy")
de: CampoAno = Mid(strMax, (InStr(1, strMax, "/")) + 1, 4)
para: CampoAno = Mid(strMax, (InStr(1, strMax, "/")) + 1, 2)
de: ContadorDeRegistros = StrZero(ContadorDeRegistros, 10)
para: ContadorDeRegistros = StrZero(ContadorDeRegistros, 8)
- Código:
Option Compare Database
Option Explicit
Public Function ContadorDeRegistros(strCampo As String, strSql As String)
'Autor: Carlos em 20/01/99 e-mail: crpmoura@ig.com.br
'Contador de registros personalizado no formato numero/ano
Dim strNum As String, DB As Database
Dim strMax As String, CampoAno As String
Dim AnoData As String, tbl As Recordset
Set DB = CurrentDb
'Ano tirado da data do sistema
'Modificado em 2014. Versão anterior da linha abaixo, acima do codigo modificado
'AnoData = Year(Date)
AnoData = Format(Date, "yy")
'Abre a Tabela
Set tbl = DB.OpenRecordset(strSql)
'Se não há registros na tabela
If tbl.RecordCount = 0 Then
'Primeiro registro
ContadorDeRegistros = 1 & "/" & AnoData
Else
'pega o registro
strMax = tbl(strCampo)
'Pega o ano
'Modificado em 2014. Versão anterior da linha abaixo, acima do codigo modificado
'CampoAno = Mid(strMax, (InStr(1, strMax, "/")) + 1, 4)
CampoAno = Mid(strMax, (InStr(1, strMax, "/")) + 1, 2)
'Aqui testo o Ano do último registro com o do sistema
'Se for igual continue a contagem senão...
If CampoAno = AnoData Then
strNum = Left(strMax, (InStr(1, strMax, "/") - 1)) + 1
ContadorDeRegistros = strNum & "/" & AnoData
Else
MsgBox "O sistema iniciará uma nova contagem dos registros" _
& vbCrLf & " em função da virada do ano", vbInformation, "ATENÇÃO"
ContadorDeRegistros = 1 & "/" & AnoData
End If
End If
'formata o número
'Modificado em 2014. Versão anterior da linha abaixo, acima do codigo modificado
'ContadorDeRegistros = StrZero(ContadorDeRegistros, 10)
ContadorDeRegistros = StrZero(ContadorDeRegistros,
tbl.Close
Set DB = Nothing
End Function
Sendo assim, vou encerar este post. Agradeço mais uma vez.