MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Numeração personalizada (com base num campo de texto)

    Compartilhe

    Ricardo84
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 49
    Registrado : 18/01/2014

    [Resolvido]Numeração personalizada (com base num campo de texto)

    Mensagem  Ricardo84 em Seg 25 Maio 2015, 20:34

    Boa tarde, tenho a necessidade de fazer funcionar o BD que deixo aqui com o seu link.

    [Você precisa estar registrado e conectado para ver este link.]

    A numeração de um determinado documento é dada com base no valor (texto) de um campo, o que dará um Ofício 1, Comunicado de imprensa 1, Despacho 1, etc. A numeração volta a zero todos os anos, mas em relação a isso já estou resolvido, assim como com a função para registar o Utilizador Logado (GetUserName).

    O problema começa com a macro que quer mostrar uma barra que não existe, eliminei essas duas partes da macro e ele abre bem, mas quando quero registar um documento, dá um erro numa parte do código VBA.

    No meu antigo trabalho, isto funcionava bem (acess 2007) agora em 2010 e 2013, não.

    Deixo também os códigos que estou a utilizar para a numeração voltar a 0 e a GetUserName.

    Para voltar a zero (será colocada no campo TipoDoc no evento on dirty)

    'Criado por Balem em 28/07/14
    If Me.RecordsetClone.RecordCount = 0 Then
    ' a tabela está sem registros
    Me.Numero = Format("1", "000") & "/" & Year(Date)

    Else
    If Val(Right(DMax("[Numero]", "TabCartao", "Right([Numero],4)= " & Year(Date)), 4)) <> Year(Date) Then
    MsgBox "Reiniciando contagem dos registros para o novo ano", vbInformation, "Aviso"
    Me.Numero = Format("1", "000") & "/" & Year(Date) + 1
    Else

    Me.Numero = Format(Left(DMax("[Numero]", "TabCartao", "Right([Numero],4)= " & Year(Date)), 4), "000") & "/" & Year(Date)

    End If
    End If

    Para a função GetUserName (atualizada para 64bits)

    'By JPaulo

    Declare PtrSafe Function TSB_API_GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Public Function GetUserName_TSB() As String

    Dim lngLen As Long
    Dim strBuf As String

    Const MaxUserName = 255

    strBuf = Space(MaxUserName)

    lngLen = MaxUserName

    If CBool(TSB_API_GetUserName(strBuf, lngLen)) Then
    GetUserName_TSB = Left$(strBuf, lngLen - 1)
    Else
    GetUserName_TSB = ""
    End If

    End Function


    Ricardo84
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 49
    Registrado : 18/01/2014

    Re: [Resolvido]Numeração personalizada (com base num campo de texto)

    Mensagem  Ricardo84 em Sab 08 Ago 2015, 17:22

    por falta de resposta, dou como resolvido.

      Data/hora atual: Sab 03 Dez 2016, 04:34