MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Dificuldades com UPDATE

    Compartilhe

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 18:34

    Ola pessoal,
    eu preciso que quando eu seleciono o chkbox(PAGAMENTO) no subformulario(sub_pagamento) seja atualizado a data(DATA_PAGAMENTO) do registro que esta na tabela CAD_LANCAMENTO mas não esta dando certo não acusa nenhum erro porém o update não executa

    Código:
    Dim rst As Recordset
    Set rst = CurrentDb.OpenRecordset("CAD_LANCAMENTO", dbOpenTable)
    rst.MoveFirst
    Do While Not rst.EOF
    With rst
    .Edit

    CurrentDb.Execute "UPDATE CAD_LANCAMENTO Set CAD_LANCAMENTO.DATA_PAGAMENTO = now() where [cod_lancamento] = " & Me.sub_pagamento!cod_lancamento & " and [PAGAMENTO] = -1  "

    .Update
    .MoveNext
    End With

    Loop
    Set rst = Nothing

    att
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 244
    Registrado : 13/12/2016

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Alexandre Fim em Sab 13 Jan 2018, 18:53

    Olá Patrick,

    Poste seu banco de dados para os membros do fórum analisarem.

    Abraço
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3133
    Registrado : 06/11/2009

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Assis em Sab 13 Jan 2018, 19:05

    Boa noite

    O Now() resulta em ..... 13/01/2018 19:01:00 -----> é isto que quer ?

    Troque o Now() por Date()

    Trocando fica só 13/01/2018

    Ou como diz o Alexandre .... Poste só essa parte do BD


    .................................................................................
    *** Só sei que nada sei ***

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 19:35

    Obrigado o retorno

    então Alexandre Fim sobre postar o banco já tentei mas tem muita coisa relacionada, outros bancos, varias relações complicadas hehe e iria tomar um tempo longo para ir eliminando.

    Assis já tentei com date(), já tentei com um campo "# dt_hoje #" assumindo como valor a data, mas acredito que algo esteja acontecendo na condição(where), os campos cod_lancamento é numeração auto e PAGAMENTO é uma chkbox que assume valor numérico.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3133
    Registrado : 06/11/2009

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Assis em Sab 13 Jan 2018, 19:46


    Patrick

    Me.sub_pagamento!cod_lancamento ------> Isto está num subformulário?




    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2882
    Registrado : 29/06/2012

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Noobezinho em Sab 13 Jan 2018, 19:51

    Pelo fato de ter o sub_ na frente indica que é um subformulário, sim.

    Então a sintaxe correta é:

    Me.sub_pagamento.form!cod_lancamento

    Grande sacada Assis Wink

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 20:08

    Obrigado pelo retorno

    Isso mesmo Assis esta no sub

    impressionante como passam batido certas coisas

    isso mesmo Noobezinho corrigido o caminho

    mas sem sucesso
    o update não executa
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3133
    Registrado : 06/11/2009

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Assis em Sab 13 Jan 2018, 20:12

    E assim:

    Forms.Sub_pagamento.cod_lancamento




    .................................................................................
    *** Só sei que nada sei ***

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 20:14

    Assis

    agora deu que o objeto não aceita essa propriedade
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2882
    Registrado : 29/06/2012

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Noobezinho em Sab 13 Jan 2018, 20:15

    Não adianta Assis

    A referencia para subformulário tem que ter o .FORM que indica que a referencia é no subformulario.

    Então Patrick

    Não adianta ficarmos dizendo pra você fazer isso ou aquilo, pois devem ter outros motivos para que isso não funcione.

    Não tem jeito, amigo, precisa nos enviar as tabelas/consultas  e formulários afins com 2 registros no mínimo, para que possamos analisar.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 20:40

    Realmente Noobezinho

    tentei aqui, vejam se não dá nenhum erro

    formulário: frm_pagamento

    1 escolher um fornecedor na combo para filtrar o sub
    2 selecionar os registros a serem pagos
    digitar o desconto ou 0 (zero) para sem desconto
    3 o botão pagar q dispara o codigo
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2882
    Registrado : 29/06/2012

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Noobezinho em Sab 13 Jan 2018, 21:51

    Patrick

    Tai o código:

    Talvez falte algum critério, mas deixo para você verificar.

    Estude o código e entenda o que está sendo feito.

    Teste e diga se funfou.

    Código:

    Dim rst As Recordset, frm As Form, frmrst As Recordset

    Set frm = Me.sub_pagamento
    Set frmrst = frm.RecordsetClone
    Set rst = CurrentDb.OpenRecordset(frmrst)
    rst.MoveFirst
    With rst

    Do While Not .EOF

    'Duvidas aqui
    DoCmd.RunSQL "UPDATE CAD_LANCAMENTO SET CAD_LANCAMENTO.DATA_PAGAMENTO = Date(), CAD_LANCAMENTO.PAGAMENTO = True " & _
                 "WHERE (((CAD_LANCAMENTO.cod_lancamento)=" & !cod_lancamento & "));"
    .MoveNext
    End With


    Set rst = Nothing


    Aguardo...

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 22:01

    Obrigado pelo retorno

    então Noobezinho

    nesse código vc assume que o subformulário é o recodset ?
    necessariamente não precisava ser a tabela ?

    deu "Erro de compilação, tipos inconpatíveis"
    e setou "Set rst = CurrentDb.OpenRecordset(frmrst)"

    att
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 244
    Registrado : 13/12/2016

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Alexandre Fim em Sab 13 Jan 2018, 22:16

    Patrick,

    Fiz um pequeno exemplo onde vc seleciona o Tipo de Conta e clica no botão "Pagar", conforme abaixo:

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

    Após realizar o pagamento, o sistema exibe a seguinte tela:

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

    Segue database em anexo para sua análise.


    Espero ter ajudado.

    Um abraço.

    Att,

    Alexandre Fim
    Anexos
    Lancamentos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (58 Kb) Baixado 4 vez(es)
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2882
    Registrado : 29/06/2012

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Noobezinho em Sab 13 Jan 2018, 22:19

    ótimo

    Vou aguardar o retorno do Patrick


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 244
    Registrado : 13/12/2016

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Alexandre Fim em Sab 13 Jan 2018, 22:24

    Ok Noobezinho.

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Sab 13 Jan 2018, 22:36

    Obrigado pelo retorno

    muito bom seu exemplo Alexandre Fim

    estou tentando adaptar aqui mas com certa dificuldade pois posso precisar pagar vários registros do mesmo fornecedor com descrições parecidas e preciso diminuir o numero de operações do usuário, mas esta indo por enquanto

    tópico resolvido mas com possível reabertura
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2882
    Registrado : 29/06/2012

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Noobezinho em Sab 13 Jan 2018, 22:41

    Só substuindo o código que foi  errado:

    Mudei o nome do teu subformulário que estava mais comprido do que minha esperança de ganhar na mega.

    Código:

    Dim rst As Recordset, frm As Form, frmrst As Recordset

    Set frm = Me.subfrmPagamento.Form
    Set rst = frm.RecordsetClone
    rst.MoveFirst


    Do While Not rst.EOF

       'Duvidas aqui
       DoCmd.RunSQL "UPDATE CAD_LANCAMENTO SET CAD_LANCAMENTO.DATA_PAGAMENTO = Date(), CAD_LANCAMENTO.PAGAMENTO = True " & _
                 "WHERE (((CAD_LANCAMENTO.cod_lancamento)=" & rst!cod_lancamento & "));"
       rst.MoveNext



    Loop
    Set rst = Nothing


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Dom 14 Jan 2018, 00:15

    Oh glória !!!
    de Noobezinho vc nao tem nada
    obrigadão
    deu super certo o código, pela primeira vez ele tá rodando
    ainda tenho uns poréns mas esta indo
    Alexandre Fim seu exemplo me ajudou a mudar um pouco a forma de processamento, obrigado.

    Tópico resolvido

    patrickdanielli1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11
    Registrado : 22/07/2017

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  patrickdanielli1 em Dom 14 Jan 2018, 01:14

    ao Noobezinho e aos que tiverem o mesmo problema

    corrigi alguns detalhes
    estava marcando todos os registros e atualizando todos, coloquei também como condição do update a marcação do chkbox,"and ((CAD_LANCAMENTO.PAGAMENTO)= true));" dai resolveu, outra coisa era a mensagem "Você está prestes a atualizar 1 linha(s).", resolvi alterando  DoCmd.RunSQL por CurrentDb.Execute.
    segue o código

    Código:
    Dim rst As Recordset, frm As Form, frmrst As Recordset

    Set frm = Me.sub_pagamento.Form

    Set rst = frm.RecordsetClone
    rst.MoveFirst

    Do While Not rst.EOF

       CurrentDb.Execute "UPDATE CAD_LANCAMENTO SET CAD_LANCAMENTO.DATA_PAGAMENTO = Date() " & _
                 "WHERE (((CAD_LANCAMENTO.cod_lancamento)=" & rst!cod_lancamento & ") and ((CAD_LANCAMENTO.PAGAMENTO)= true));"
       rst.MoveNext
     
    Loop

    Set rst = Nothing

    ainda não tive problemas e esta funcionando bem.


    então vamos as dúvidas:
    o porque do uso do recordsetclone ? na minha cabeça apenas setando a tabela e não o subformulário como recordset deveria funcionar
    eu entendo que precisava ter um momento para identificar onde esta sendo modificado o registro, mas pensei que ao ter a tabela setada, ele buscaria a modificação do chkbox, compararia o cod_lancamento e faria o update, mas se eu entendi bem, agora esta buscando no subformulário.
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2882
    Registrado : 29/06/2012

    Re: [Resolvido]Dificuldades com UPDATE

    Mensagem  Noobezinho em Dom 14 Jan 2018, 10:41

    Patrick


    Está correto, como fiquei na dúvida, deixei assim, você é que tinha que definir isso, ótimo amigo.

    Para não aparecer a mensagem, coloque antes e depois da consulta ação,  as parte em azul:

    Docmd.Setwaring False

    CurrentDb.Execute "UPDATE  ......

    Docmd.Setwaring True

    O computador é burro, é você quem deve dizer a ele o que fazer através de comandos.

    Claro que setando diretamente a tabela (recordset quer dizer tabela), vai dar certo, mas não trabalhamos diretamente na tabela, pois qualquer erro, põe-se tudo a se perder.

    Ou seja,o usuário manipular tabelas diretamente , ou seja, abrindo a tabela e modificando-a de alguma forma, na computação isso é crime.


    O recordsetclone faz uma cópia  (tabela) clonada na memória do conteúdo do subformulário,nesse caso.

    Se o formulário em questão tiver mais de um registro, temos que dizer a ele para fazer a varredura no recordsetclone  e fazer

    o que deve ser feito, que nesse caso, é a atualização da tabela, registro por registro.

    Procure ler a ajuda do Access.

    Quando quiser saber sobre algum comando, basta clicar sobre a palavra e teclar F1.

    Ou no google: ms acess palavra a pesquisar.

    [ ]'s


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se ajudamos alguém e não retornou.
    Se não deu retorno, não ajudo novamente .

      Data/hora atual: Qua 17 Jan 2018, 20:07