MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    Comando UPDATE VBA

    avatar
    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/10/2017

    Comando UPDATE VBA Empty Comando UPDATE VBA

    Mensagem  werlewow em 4/5/2020, 17:43

    Boa Tarde a todos, sou iniciante em VBA, peço que me expliquem com calma.

    O código abaixo era para inserir valores em uma tabela e em seguida atualizar um dos campos.
    Funciona legal a parte de inserir dados, porém, pelo que percebi, após inserir, não consigo atualizar os dados pois é como se não tivesse salvo ainda na tabela. Tanto que se eu primeiro só insiro os dados, paro a macro e depois executo só a parte de atualizar, dá certo. Deixei em anexo as imagens do erro.  


    Private Sub dias7_Click()

    If MsgBox("Tem certeza que deseja adiar mais 7 dias essa negociação? Lembre-se de preencher o campo 'observação'", vbYesNo, "Registrar Orçamento") = vbYes Then

    CurrentDb.Execute "INSERT INTO  tb_orc(CLIENTE_NOME,ORC,EMISAO,TOTAL,VENDEDOR,CONTATO,CLASSIFIC,OBS)" & _
    "VALUES ('" & Me.CLIENTE_NOME.Value & "','" & Me.ORCAMENTO.Value & "','" & Me.EMISAO_ORC.Value & "','" & Me.TOTAL_ORC.Value & "','" & Me.vendedor.Value & "','" & Date & "','Ignorado','" & Me.obs.Value & "')"


    Dim codigo As Integer
    codigo = Me.Cod_Ct.Value
    CurrentDb.Execute "UPDATE TB_ORC SET CONTATO = '" & Date + 15 & "' WHERE Cod_Ct = " & codigo & ""
    DoCmd.GoToRecord , , acNext

       Else
       End If
       end sub
    Anexos
    Comando UPDATE VBA AttachmentDesktop.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (21 Kb) Baixado 4 vez(es)
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 236
    Registrado : 19/08/2010

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  marcelo3092 em 5/5/2020, 17:02

    Bom na verdade não seria preciso criar essa variavel.
    coloca o nome do campo no criterio.

    DoCmd.SetWarnings False
    Dim StrSQL As String
    'Monta a consulta atualização utilizando
    'como critério o código da empresa
    StrSQL = "UPDATE TB_ORC SET CONTATO = Date + 15 WHERE Cod_Ct = " & Me.Cod_Ct.& ""
    'Executa a consulta
    DoCmd.RunSQL StrSQL
    'Atualiza o subformulário
    DoCmd.SetWarnings True

    'bom nessa instrução e para referenciar campos ('" & & "') e as apostrofes indica se o campo e tipo texto data ou numero., que no seu caso
    não e necessario informa tenho em vista que vc ta fazendo uma soma para atualizar o campo
    e essa instrução DoCmd.GoToRecord , , acNext e para ir para o proximo registro que no seu caso vc ta atualizando o registro.
    Voce usa variavel quando precisa usar o valor de um campo em outra parte ou em uma função.
    testa ai e veja se funciona se nao funciona posta parte do projeto.
    avatar
    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/10/2017

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  werlewow em 6/5/2020, 14:06

    Não deu boa, deu exatamente o mesmo problema.

    Bem na verdade, o que preciso é um botão que o usuário aperte e ignore o registro por mais 7 dias.
    O que eu pensei, foi primeiro inserir na tabela e depois dar o update na data pra mais 7 dias.
    Empaquei pois depois que inseri o registro, não consigo atualiza-lo, pois é como se não tivesse entrado ainda, preciso fechar e abrir a tabela que aí dá boa.
    Porém estava pensando aqui, se por acaso o usuário resolver ignorar 7 dias, e daqui 7 dias ignorar novamente, aí não vai dar certo, pois se for uma segunda ignorada, não precisa inserir na tabela, pois já foi inserido 7 dias atras, nesse caso, precisa apenas fazer  o update..

    Alguém pode ajudar?

    Postei o arquivo aí, o botão que aciona está no frm_orc, e se chama "ignorar 7 dias".
    Anexos
    Comando UPDATE VBA AttachmentPROBLEM.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (37 Kb) Baixado 4 vez(es)
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 236
    Registrado : 19/08/2010

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  marcelo3092 em 6/5/2020, 17:20

    Bom foi como te expliquei voce esta referenciando campo e não colocando o date +15 a escrita esta errada & date + 15& não e campo no formulario
    Testa ai e veja pq aqui funcionou perfeito

    StrSQL = "UPDATE TB_ORC SET CONTATO = date() + 7 WHERE Cod_Ct = " & Me.COD_CT & ""

    Substitua a sua linha por essa.

    no botao de 7 dias.

    Na verdade no seu caso vc precisa verificar na tabela se o registro ja existe e se existir somente atualizar. seria melhor
    com a função if
    avatar
    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/10/2017

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  werlewow em 6/5/2020, 19:12

    Aqui não deu boa, usei sua linha de código e da um erro (foto anexo).

    Sobre a sua ideia de utilizar o comando IF, será que pode me ajudar? Ou de repente algum exemplo para eu me basear.


    Obrigado

    Att
    Anexos
    Comando UPDATE VBA AttachmentCapturar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (49 Kb) Baixado 2 vez(es)
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 236
    Registrado : 19/08/2010

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  marcelo3092 em 7/5/2020, 01:33

    Veja ai
    https://drive.google.com/open?id=15oXIilFu8yyiZuNsZjREi9StaRenH-h3
    lembrando que meu office e 32 bits
    avatar
    werlewow
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 149
    Registrado : 09/10/2017

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  werlewow em 7/5/2020, 13:12

    Ainda não deu. Mesmo erro.
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 236
    Registrado : 19/08/2010

    Comando UPDATE VBA Empty Re: Comando UPDATE VBA

    Mensagem  marcelo3092 em 7/5/2020, 23:04

    Ficaria algo tipo isso.
    ele verifica se o n orc ja existe se existi atualiza e nao existi inseri.

    If DCount("*", "tb_orc", "ORC = '" & Me.CLIENTE_CONTATO & "'") = 0 Then
    CurrentDb.Execute "INSERT INTO tb_orc(CLIENTE_NOME,ORC,EMISAO,TOTAL,VENDEDOR,CONTATO,CLASSIFIC,OBS)" & _
    "VALUES ('" & Me.CLIENTE_NOME.Value & "','" & Me.ORCAMENTO.Value & "','" & Me.EMISAO_ORC.Value & "','" & Me.TOTAL_ORC.Value & "','" & Me.vendedor.Value & "','" & Now() & "','Preço','" & Me.OBS.Value & "')"
    MsgBox "Orçamento Inserido com Sucesso!", vbInformation, "Tarefa Finalizada"
    Else

    DoCmd.SetWarnings False
    Dim StrSQL As String
    StrSQL = "UPDATE TB_ORC SET CONTATO = date() + 7 WHERE Cod_Ct = " & Me.COD_CT & ""
    DoCmd.RunSQL StrSQL
    DoCmd.SetWarnings True
    MsgBox "Orçamento Atualizado com Sucesso!", vbInformation, "Tarefa Finalizada"

    End If

      Data/hora atual: 1/12/2020, 14:39