GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Numeração sequencial
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
-star Rating Vote!  Login/Cadastrar 
Iniciante

postado
Ola amigos;

Estou a tentar fazer uma aplicação para registar a corresponencia. O meu grande problema é a numeração sequencial, pois deverá ter a seguinte estrutura: 0001/2003-OBR2250, em que o 0001 é um numero sequencial e 2003 é o ano, o resto é fixo. O numero sequencial deve começar no 0001 e quando mudar de ano volta ao 0001 novamente, mas com o ano diferente.
Desde já agradeço a vossa ajuda e continuem o bom trabalho que tem feito
 
Postagens: 16 | Localização: Portugal | Registrado: 21 November 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
'Contador no formato numero/ano
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
    AnoData = Year(Date)

    '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
        CampoAno = Mid(strMax, (InStr(1, strMax, "/")) + 1, 4)
        'Aqui testo o Ano do último registro com o do sistema
        'Se for igual continue a contagem se nã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
    ContadorDeRegistros = StrZero(ContadorDeRegistros, 10)
    tbl.Close
    Set DB = Nothing
End Function  
 
Postagens: 448 | Localização: São Paulo | Registrado: 04 April 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Pleno

postado Hide Post
jrlopes,

Testei a função de nosso colega Jorge Myslinski Filho e funciona perfeitamente, mas você tambêm pode usar as funções abaixo dentro do próprio form q vc está inserindo os registro:

Function StrZero(nNumero As Variant, nCasas As Integer)
StrZero = Right("000000000000" + LTrim(nNumero), nCasas)
End Function

Function contar_registro()
On Error Resume Next

Dim str_contar As String
Dim str_data As String
Dim str_resultado As String

str_contar = DCount("campo", "tabela") + 1
str_contar = StrZero(str_contar, 4)
str_data = DatePart("yyyy", Date)
str_resultado = str_contar & "/" & str_data & "-OBR2250"

MsgBox str_resultado, vbInformation, "testando"

End Function

Não esqueça de que o msgbox é só para testar o resultado.

inté +,

paulo
 
Postagens: 175 | Localização: Campo Grande, MS, Brasil | Registrado: 30 July 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Iniciante

postado Hide Post
Ok, Jorge;

Como estou a começar, gostava que me explicasses onde coloco este código.
Desde já o meu muito obrigado pela tua disponiblidade.

JRLopes@iol.pt
 
Postagens: 16 | Localização: Portugal | Registrado: 21 November 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Pleno

postado Hide Post
jrlopes,

No caro da função de nosso amigo você deve criar um módulo.
 
Postagens: 175 | Localização: Campo Grande, MS, Brasil | Registrado: 30 July 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Iniciante

postado Hide Post
Paulo,

Obrigado pela ajuda. Vou tentar utilizar a vossa ajuda e darei noticias.
 
Postagens: 16 | Localização: Portugal | Registrado: 21 November 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Iniciante

postado Hide Post
Paulo;

Desculpa, mas não estou a conseguir. Cada vez me convenço mais que não percebo nada de access. Será pedir muito que me mandes ficheiro de exemplo para eu ver e entender o que devo fazer. Obrigado e aproveito para expressar a minha admiração por toda a gente que está disponivel para ajudar.
 
Postagens: 16 | Localização: Portugal | Registrado: 21 November 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Iniciante

postado Hide Post
quote:
Postado originalmente por jrlopes:
Paulo;

Desculpa, mas não estou a conseguir. Cada vez me convenço mais que não percebo nada de access. Será pedir muito que me mandes ficheiro de exemplo para eu ver e entender o que devo fazer. Obrigado e aproveito para expressar a minha admiração por toda a gente que está disponivel para ajudar.
JRLopes@iol.pt
 
Postagens: 16 | Localização: Portugal | Registrado: 21 November 2003Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Envie modelo de uso da função que postei. Ao construir o modelo senti a necessidade de pequena alteração na função.

Else
        tbl.MoveLast   'foi acrescentado
        'pega o registro
        strMax = tbl(strCampo)
        'Pega o ano
  


e

 'formata o número
   'ContadorDeRegistros = StrZero(ContadorDeRegistros, 10)
    ContadorDeRegistros = Trim(ContadorDeRegistros) 


já que StrZero() é uma função não presente no A97 (a menos que use a postada pelo Paulo Cordeiro Ramiro).

[This message was edited by Jorge Myslinski Filho on 21 November 2003 at 13:24.]

[This message was edited by Jorge Myslinski Filho on 21 November 2003 at 13:33.]
 
Postagens: 448 | Localização: São Paulo | Registrado: 04 April 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
Ops! Tem bobagem na mensagem anterior. Desculpem-me, volto a escrever assim que possível.
 
Postagens: 448 | Localização: São Paulo | Registrado: 04 April 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
Programador Sênior

postado Hide Post
jrlopes,
o modelo que enviei anteriormente está errado. Não são necessárias as alterações que fiz. Localizei e estou lhe enviando o modelo fornecido pelo autor daquela função.
Desculpe-me o transtorno.
 
Postagens: 448 | Localização: São Paulo | Registrado: 04 April 2002Reply With QuoteEditar ou Apagar MensagemReport This Post
 Tópico Anterior | Próximo Tópico Powered by Eve For Enterprise  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Numeração sequencial

©