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


3 participantes

    [Resolvido]Não consigo ir para Novo Registro em Formulário

    mfmaiafilho
    mfmaiafilho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 02/08/2018

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  mfmaiafilho 24/3/2021, 14:43

    Bom dia Srs.

    Resolvi corrigir o erro da Numeração Automática usando o Recordset nos botões salvar/fechar...

    porém tenho um problema

    ao digitar o registro.... eu consigo salvar normal.

    porém quando clico no botão novo não consigo ir para um novo registro.

    código do botão com falhas

    Private Sub btn_novo_Click()
    On Error GoTo Trata_Err

    DoCmd.GoToRecord , , acNewRec

    Exit Sub
    Trata_Err:
    Call ErrNovo
    End Sub

    Código do botão que salva

    Código:
    Private Sub btn_salvar_Click()
    On Error GoTo Trata_Err
    Dim rs As Recordset

        ' campos requeridos
        If IsNull(Me.descricao) = True Then
            MsgBox "O campo Descrição é requerido.", vbCritical, "Sistema"
            Me.descricao.SetFocus
            Exit Sub
        ElseIf IsNull(Me.corpoemail) = True Then
            MsgBox "O campo Mensagem é requerido.", vbCritical, "Sistema"
            Me.corpoemail.SetFocus
            Exit Sub
        Else
        Set rs = CurrentDb.OpenRecordset("TBL_CORPOEMAIL")
        With rs
            rs.AddNew
           
            ' ir para ultimo registro
            rs!id_corpoemail = Nz(DMax("[ID_CORPOEMAIL]", "[TBL_CORPOEMAIL]"), 0) + 1
            Me.id_corpoemail.Value = rs!id_corpoemail
           
            ' agregar novos valores nos campos
            rs!descricao = Me.descricao
            rs!corpoemail = Me.corpoemail
           
            ' registar histórico
            rs!usuariologado = Forms!FrmMain!usuariologado
            rs!dhcadastro = Now
            rs.Update
        End With
        rs.Close
        Set rs = Nothing
       
        ' ativar/desativar botões
        Me.btn_novo.Enabled = True
        Me.btn_salvar.Enabled = False
        Me.btn_desfazer.Enabled = False
        End If
       
    Exit Sub
    Trata_Err:
    Call ErrSalvar
    End Sub[b][/b]
    mfmaiafilho
    mfmaiafilho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 02/08/2018

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  mfmaiafilho 24/3/2021, 15:15

    hahahahaha

    estava errando mesmo ~.~

    Private Sub btn_novo_Click()
    On Error GoTo Trata_Err

    Form.Undo < = precisei usar isso pra ele não dá erros de chave primária ^^
    DoCmd.GoToRecord , , acNewRec

    Exit Sub
    Trata_Err:
    Call ErrNovo
    End Sub
    mfmaiafilho
    mfmaiafilho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 02/08/2018

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  mfmaiafilho 24/3/2021, 19:15

    Eu testei com Numeração Automática e com apenas o campo Número.

    Ao salvar o registro ao mesmo tempo em duas máquinas com Access usado em rede, ele dá erro diz que a chave primária já está sendo usada, acho que é 3022 não gravei o código do erro

    existe algum tipo de tratamento pra isso ?
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  DamascenoJr. 25/3/2021, 10:58

    Anexe seu projeto para analise.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    mfmaiafilho
    mfmaiafilho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 02/08/2018

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  mfmaiafilho 26/3/2021, 14:35

    Bom dia Damasceno, perdão pela demora, ontem estava me esquivando dos problemas hahaha

    Segue em anexo, o que acontece é o Seguinte, e eu testei também em um Programa ERP que tenho aqui.

    Abrir o mesmo formulário em duas máquinas, digitar os mesmos dados, e clicar em Salvar ao mesmo tempo em ambas as máquinas, no programa ERP ele tem um tratamento desse erro, no caso do Access ele não deixa você sair...

    =/

    sei que isso é quase impossível de acontecer, mas as chaves primarias do meu banco são inseridas manualmente com um contador de registros.

    optei fazer assim pra não ter aquele velho problema de pular os IDs em Numeração Automática...
    Anexos
    [Resolvido]Não consigo ir para Novo Registro em Formulário AttachmentRECORDSET.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (536 Kb) Baixado 37 vez(es)
    cristiano.vaz
    cristiano.vaz
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 48
    Registrado : 12/11/2020

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  cristiano.vaz 26/3/2021, 17:47

    Tem alguma macro que faz algum ajuste em algum dos campos?, pode ser quando você vai salvar ele altera a chave e retorna esse erro.
    mfmaiafilho
    mfmaiafilho
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 02/08/2018

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  mfmaiafilho 26/3/2021, 20:37

    o problema já foi resolvido, a dúvida não é mais o novo registro.

    a dúvida é quando duas pessoas salvam o mesmo registro ao mesmo tempo em qualquer banco de dados, ele dá erro.

    mas tá tranquilo eu só queria saber se podia fazer um tratamento desse erro.

    vou dá como resolvido.

    acredito que seja impossível tal feito
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  DamascenoJr. 27/3/2021, 13:03

    Você misturou formulário acoplado com o uso das operações via recordset.

    O ID estava sendo salvo duas vezes, por isso os constantes avisos que o ID já estava em uso.

    Código:
    Private Sub btn_salvar_Click()
    On Error GoTo Trata_Err

        ' campos requeridos
        If IsNull(Me.departamento) = True Then
            ...
        Else
        
    tentaNovamente:
            On Error Resume Next
            Me.id_departamento.Value = Nz(DMax("[ID_DEPARTAMENTO]", "[TBL_USUARIOS_DEPARTAMENTOS]"), 0) + 1
            DoCmd.RunCommand acCmdSaveRecord
            If Err.Number <> 0 Then Call Err.Clear: GoTo tentaNovamente
            On Error GoTo Trata_Err
        
            ' colocar foco em outro botão
            Me.btn_fechar.SetFocus
            
            ...

    End Sub


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado


    [Resolvido]Não consigo ir para Novo Registro em Formulário Empty Re: [Resolvido]Não consigo ir para Novo Registro em Formulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/5/2024, 17:53