MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


5 participantes

    [Resolvido]Duvida sobre numeração automática

    avatar
    davidapcon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 23/10/2010

    [Resolvido]Duvida sobre numeração automática Empty Duvida sobre numeração automática

    Mensagem  davidapcon 6/1/2011, 13:09

    Olá!
    A dúvida é a seguinte, tenho um formulário que gera um código por numeração automática mas estive observando a base e percebi que as vezes pula algum numero por ex: tem cod 10, 11, 12, 14 ou seja pulou o cod 13.
    Está normal acontecer isso ou pode ser algum problema no meu formulário?


    Desde já obrigado!
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  vieirasoft 6/1/2011, 13:16

    A numeração automática tem tendência a nos deixar ficar mal e criar buracos sem o sabermos porquê.

    Porque não utiliza outra autonumeração? Existem códigos para isso que substituem este problema
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  criquio 6/1/2011, 13:19

    Isso é normal. Quando se começa a digitar um registro em formulário acoplado, você deve ter percebido que o código auto numeração já é atribuído automaticamente. Isso significa que aquele código já está reservado para o registro que você começou a digitar. Se por algum motivo você não grava o registro, o código se perde. O Access deixa o código assim reservado porque se tiver alguem mais inserindo um registro via rede, esse número não pode ser usado pelo outro usuário, pois isso poderia acarretar em corrompimento do banco.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  vieirasoft 6/1/2011, 13:19

    veja por exemplo esta alternativa


    1 - ALTERNATIVA PARA O TIPO AUTO-NUMERAÇÃO COM A FUNÇÃO DMAX

    Como o Campo do tipo autonumeração que vem com o Access é muito útil
    mas tem seusinconvenientes, veja aqui uma alternativa para ele.

    Esta alternativa somente funciona em formulários únicos no
    Formulário principal.

    - Abra o formulário no modo estrutura
    - Selecione o campo chave primária da tabela em que o form se baseia
    - Abra a janela de propriedades.
    - Agora vá até a propriedade Valor padrão (aba Dados) e digite:

    Nz(DMax("[Código do Cliente]", "Cliente")) + 1

    O Nz previne valores nulos. [Código do Cliente] é o nome do Campo Chave.
    Clientes é o nome da Tabela.

    Para um controle mais sofisticado use a função abaixo no evento No atual
    do Formulário:

    Private Sub Form_Current()
    If Me.NewRecord Then
    On Error Resume Next 'Apenas por segurança...
    Me![Código do Cliente].DefaultValue = Nz(DMax("[Código do Cliente]", "Cliente"), 0) + 1
    End If
    End Sub
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  Dilson 6/1/2011, 14:56

    Tem esse exemplo da autoria do Rogério Carlos Silva,

    O VBA tá trancado, mas, o Autor se preocupou em deixar explicito o código.

    veja o que ele faz é só adaptar:

    Em um formulário ao disparar um botão ele vai reordenar sua numeração automática, acho que vai te servir:

    http://dl.dropbox.com/u/8080696/FMA/AcertarAutoNumera%C3%A7%C3%A3o.rar
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11023
    Registrado : 04/11/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  JPaulo 6/1/2011, 15:35

    Dilson nesse exemplo a questão passa de grave a muito grave.

    Na maoioria dos bancos, existem relações pelo autonumber,

    O DoCmd.RunSQL "alter table agenda drop ordem", vai apagar o campo autonumber

    E o DoCmd.RunSQL "alter table agenda add column ordem autoincrement" vai de novo adicionar, para ficar seguido.

    Agora imagine as centenas de bancos a darem o estoiro, rsrsrsrsrs


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Duvida sobre numeração automática Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duvida sobre numeração automática Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duvida sobre numeração automática Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11023
    Registrado : 04/11/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  JPaulo 6/1/2011, 15:42

    Aconselho vivamente a utilizarem este exemplo do Grande Plinio;

    http://dl.dropbox.com/u/771097/AutoNum_em%20falta.rar



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Duvida sobre numeração automática Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duvida sobre numeração automática Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duvida sobre numeração automática Folder_announce_new Instruções SQL como utilizar...
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  vieirasoft 6/1/2011, 15:46

    utilizei uma vez esse exemplo (postado pelo Dilson) e não deu certo, nunca me preocupei em averiguar o porquê, agora já sei.

    Existem inúmeros exemplos válidos como o que postei encima ou outros mais como estes

    Public Function Contador(strCampo As String, NomeTabela As String) As Long
    Dim strSQL As String, rkt As DAO.Recordset

    strSQL = "SELECT Max" & "(" & strCampo & ")" & " As MaxValor"
    strSQL = strSQL & " FROM " & NomeTabela
    Set rkt = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenForwardOnly)

    Contador = Nz(rkt("MaxValor")) + 1

    rkt.Close: Set rkt = Nothing
    End Function


    Para chamar a função, no evento do antes de inserir do seu formulário:

    Me.MeuCampo = Contador(“MeuCampoContador”, “MinhaTabela”)

    Para chamar a função, no evento corrente do seu formulário:

    Private Sub Form_Current()
    'Se está em um novo registro gera o número de serie
    If Me.NewRecord Then
    Me.SeuCampoContador = ContadorSimples("SeuCampo","SuaTabela")
    End If
    End Sub

    2) Função Alfanumérica

    Public Function ContaRegistro(strCampo As String, NomeTabela As String) As String
    Dim strMax As String
    strMax = DMax(strCampo, NomeTabela)
    ContaRegistro = "AM-" & Right(strMax, Len(strMax) - InStr(1, strMax, "-")) + 1
    End Function

    Função Contador Simples

    Public Function ContadorSimples(strCampo As String, NomeTabela As String) As Long
    Dim strMax As Long
    strMax = DMax(strCampo, NomeTabela)
    ContadorSimples = Nz(strMax) + 1
    End Function
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  Dilson 6/1/2011, 15:49

    Caracas ... João Paulo, é verdade, só raciocinei em tabela única.

    Bem visto amigo.

    David, Se sua tabela está relacionada, esse exemplo não é de forma alguma indicado, irá desordenar a ligação dos registros e será um desastre total.

    Ele só serve com tabela única, não relacionada.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  Dilson 6/1/2011, 16:05

    Vieira,

    é a primeira vez que publico esse exemplo, nunca o utilizei, tinha ele guardado aqui no acervo.

    Mas, para tabelas não relacionadas ele é funcional.
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  vieirasoft 6/1/2011, 16:09

    Eu também tenho esse exemplo à uns anos. Usei-o uma vez e não funcionou, realmente não me preocupei na altura em explora-lo pois tinha outras alternativas que uso regularmente como aquelas que postei e funcionam bem.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11023
    Registrado : 04/11/2009

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  JPaulo 6/1/2011, 16:26

    Aqui mais do mesmo ou....

    http://www.expertaccess.com.br/forumnew/forum_posts.asp?TID=9560



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Duvida sobre numeração automática Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Duvida sobre numeração automática Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Duvida sobre numeração automática Folder_announce_new Instruções SQL como utilizar...
    avatar
    davidapcon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 23/10/2010

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  davidapcon 6/1/2011, 17:19

    Muito bom pessoal, gostei muito desses exemplos que vcs passaram...
    Testei um exemplo que o Jpaulo passou e funcionou perfeitamente. Vou testar todos os outros até mesmo para que eu possa entender cada um deles...

    Muitissímo obrigado a todos pela a ajuda!
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  vieirasoft 6/1/2011, 17:21

    Obrigado pelo retorno o fórum agradece

    Conteúdo patrocinado


    [Resolvido]Duvida sobre numeração automática Empty Re: [Resolvido]Duvida sobre numeração automática

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/9/2024, 20:14