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


2 participantes

    [Resolvido]Inserir dad automaticamente

    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Inserir dad automaticamente

    Mensagem  Veríssimo 26/6/2012, 16:59

    Em meu projeto, existe uma combo box "Situação" com cinco opções que devem ser selecionadas de acordo com a situação do arquivo.
    Com a ajuda deste fórum consegui o código abaixo que insere em uma tabela histórico, a data e o valor da combo "Situação" automaticamente após a sua seleção. Acontece que mesmo se eu clicar no botão Atualizar (desfazer = me.undo), os dados inseridos automaticamente na tabela histórico permanecem. Gostaria que só ficassem caso se clicasse em Salvar, enquanto que em Cancelar, não inserisse nada.
    Também gostaria de que ao se clicar em Novo, para inserção de um novo arquivo, nessa tabela histórico, fosse criado no campo data a data e no seu campo evento a palavra Instaurado.
    Código utilizado:

    Private Sub Situação_AfterUpdate()
    DoCmd.SetWarnings False
    Dim strSql As String
    strSql = "INSERT INTO tblHistoricos (idInquerito, DataHistorico, Ocorrencia) VALUES (" & Me.Id & ", Date(), '" & Situação & "')"
    DoCmd.RunSQL (strSql)
    DoCmd.SetWarnings False
    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 26/6/2012, 17:20

    Do jeito que está ai Verissimo, após atualizar a combo vai ser gerado um registro automaticamente na tabela.

    Se deseja gerar apenas ao Salvar, tens que mudar esse codigo par ao botão Salvar.

    Cumprimentos.
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 26/6/2012, 20:41

    Já tentei isso, mas o botão está com uma macro de salvar inserida e não deu certo.
    Qual seria o código para salvar?
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 26/6/2012, 21:45

    Esse é um código para o botão salvar, está bem completo:


    Private Sub Salvar_Click()
    On Error GoTo trataerro
    Dim Msg, Msg1, MsgErro

    If (Me.Dirty = True) Then
    Msg1 = MsgBox("Salvar registro no sistema ?", vbYesNo, "PEDIDOS")
    If Msg1 = vbNo Then
    Me.Undo
    Exit Sub
    Else
    RunCommand acCmdSaveRecord 'Aqui salva o registro
    DoCmd.GoToRecord , , acNewRec
    Msg = MsgBox("Registro salvo com Sucesso!", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")
    Me.Requery
    Me.Refresh
    Exit Sub
    End If
    End If

    If (Me.Dirty = False) Then
    MsgBox "Registro já salvo...", vbCritical, "Atenção"
    End If
    Exit Sub

    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    trataerro:
    If err.Number = 0 Then
    MsgBox "xxxxxxxxx", vbInformation, "Aviso"
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgErro = "Erro # " & Str(err.Number) & " gerado na " & err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox MsgErro, vbMsgBoxHelpButton + vbCritical, "Erro", err.Helpfile, err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 27/6/2012, 12:59

    Muito bom seu exemplo. vou implementá-lo.
    Quanto ao código abaixo, mesmo o colocando no botão salvar, ele continua a gravar mesmo clicando em cancelar.
    Private Sub Situação_AfterUpdate()
    DoCmd.SetWarnings False
    Dim strSql As String
    strSql = "INSERT INTO tblHistoricos (idInquerito, DataHistorico, Ocorrencia) VALUES (" & Me.Id & ", Date(), '" & Situação & "')"
    DoCmd.RunSQL (strSql)
    DoCmd.SetWarnings False
    End Sub
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 27/6/2012, 13:43

    Private Sub Salvar_Click()
    On Error GoTo trataerro
    Dim Msg, Msg1, MsgErro

    If (Me.Dirty = True) Then
    Msg1 = MsgBox("Salvar registro no sistema ?", vbYesNo, "PEDIDOS")
    If Msg1 = vbNo Then
    Me.Undo
    Exit Sub
    Else
    RunCommand acCmdSaveRecord
    DoCmd.SetWarnings False
    Dim strSql As String
    strSql = "INSERT INTO tblHistoricos (idInquerito, DataHistorico, Ocorrencia) VALUES (" & Me.Id & ", Date(), '" & Situação & "')"
    DoCmd.RunSQL (strSql)
    DoCmd.SetWarnings False

    DoCmd.GoToRecord , , acNewRec
    Msg = MsgBox("Registro salvo com Sucesso!", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")
    Me.Requery
    Me.Refresh
    Exit Sub
    End If
    End If

    If (Me.Dirty = False) Then
    MsgBox "Registro já salvo...", vbCritical, "Atenção"
    End If
    Exit Sub

    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    trataerro:
    If err.Number = 0 Then
    MsgBox "xxxxxxxxx", vbInformation, "Aviso"
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgErro = "Erro # " & Str(err.Number) & " gerado na " & err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox MsgErro, vbMsgBoxHelpButton + vbCritical, "Erro", err.Helpfile, err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 27/6/2012, 14:43

    Pois, então, Piloto, eu já havia realizado esta mudança, mesmo assim, continua gravando, independentemente de se confirmar ou cancelar as alterações.
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 27/6/2012, 19:22

    Mas tem que excluir o antigo amigão...

    Deixar apenas nesse botão Salvar..

    ele so será executado se salvar o registro.

    Cumprimentos.
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 3/7/2012, 16:30

    Eu exclui. O problema é que se colocado no evento Ao clicar do botão Salvar, qualquer alteração realizada no formulário (caixas de textos, caixa de combinação ou ou caixa de escolha), faz com que grave o valor da caixa de combinação na tabela. Eu só queria que ficasse gravado quando fosse alterado o valor da caixa de combinção tão somente, e somente quando fosse salvo e não cancelado.
    Lupércio
    Lupércio
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1143
    Registrado : 07/05/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Lupércio 3/7/2012, 16:40

    Olá companheiros que tal esse código do JPaulo!

    Private Sub SeuBotãoFecharForm_Click()
    'By JPaulo ® Maximo Access
    If Me.Dirty Then
    If MsgBox("Deseja Salvar ?", vbOKCancel, "Salvar?") = vbCancel Then
    Me.Undo
    End If
    End If
    DoCmd.Close
    End Sub



    Só salva se quiser!
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 3/7/2012, 17:40

    Já existe um botão Cancelar com a função Me. Undo, mas ele refaz somente as alterações no formulário e não na tabela.
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 3/7/2012, 17:49

    Bem li rapidamente o que falou...

    em um raciocinio rapido me veio algo. Teste ai.

    Crie nas declarações do form uma variável do tipo Boolean.

    Dim StrInsert as Boolean

    Após atualizar da combo defina a memas como True
    StrInsert = True


    e no código do botão salvar:


    Private Sub Salvar_Click()
    On Error GoTo trataerro
    Dim Msg, Msg1, MsgErro

    If (Me.Dirty = True) Then
    Msg1 = MsgBox("Salvar registro no sistema ?", vbYesNo, "PEDIDOS")
    If Msg1 = vbNo Then
    Me.Undo
    Exit Sub
    Else
    RunCommand acCmdSaveRecord
    If StrInsert = True Then
    DoCmd.SetWarnings False
    Dim strSql As String
    strSql = "INSERT INTO tblHistoricos (idInquerito, DataHistorico, Ocorrencia) VALUES (" & Me.Id & ", Date(), '" & Situação & "')"
    DoCmd.RunSQL (strSql)
    DoCmd.SetWarnings False
    End If

    DoCmd.GoToRecord , , acNewRec
    StrInsert = False
    Msg = MsgBox("Registro salvo com Sucesso!", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")
    Me.Requery
    Me.Refresh
    Exit Sub
    End If
    End If

    If (Me.Dirty = False) Then
    MsgBox "Registro já salvo...", vbCritical, "Atenção"
    End If
    Exit Sub

    Exit_TrataErro:
    DoCmd.Hourglass False
    DoCmd.Echo True
    Exit Sub

    trataerro:
    If err.Number = 0 Then
    MsgBox "xxxxxxxxx", vbInformation, "Aviso"
    Else
    DoCmd.Hourglass False
    DoCmd.Echo True
    MsgErro = "Erro # " & Str(err.Number) & " gerado na " & err.Source _
    & vbNewLine & vbNewLine & "Descrição: " & err.Description _
    & vbNewLine & vbNewLine & "Por favor contate o Administrador de Sistema."
    MsgBox MsgErro, vbMsgBoxHelpButton + vbCritical, "Erro", err.Helpfile, err.HelpContext
    Resume Exit_TrataErro
    End If
    End Sub


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 3/7/2012, 17:55

    Agora de acordo com o post numero um.. tambem pode tentar excluir o arquivo da tabela.. pra isso precisaria de paramentros para indicar qual registro.

    Abaixo do comando Me.Undo :

    CurrentDb.Execute "DELETE * From tblHistoricos WHEREidInquerito= '" & Me.Id & "';"



    Algo por ai
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 9/7/2012, 16:16

    Ok.
    Bem, não consegui o que pretendia, mas vou tentando.
    Obrigado pela ajuda.
    avatar
    Convidado
    Convidado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Convidado 9/7/2012, 17:53

    Bem... as soluções foram apresentadas.. é so ir testanto e adaptando.

    O Fórum agradece o Retorno.
    Veríssimo
    Veríssimo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 296
    Registrado : 07/06/2011

    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Veríssimo 9/7/2012, 17:57

    Sim. É claro. É assim que vou aprendendo...e muito...com a ajuda de vocês.

    Conteúdo patrocinado


    [Resolvido]Inserir dad automaticamente Empty Re: [Resolvido]Inserir dad automaticamente

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 03:08