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]Utilizar DCount dentro de Update

    Compartilhe

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    [Resolvido]Utilizar DCount dentro de Update

    Mensagem  Lu Kobe em Qua 02 Jul 2014, 15:28

    Bom dia a todos!
    Utilizo muito esse fórum para minhas dúvidas, mas nunca cheguei a precisar abrir um tópico... Acho que agora é o caso! Smile

    Seguinte: Tenho um banco com 3 níveis de dados (3 tabelas vinculadas): A primeira (001crit), possui vários registros vinculados da segunda (002item), que possui vários registros vinculados da terceira (003afirm)...
    Em português (!): São vários Critérios, que possuem vários Itens vinculados, que possuem várias Afirmativas vinculadas. As tabelas possuem relação um-pra-muitos...

    Tenho um form para a tabela 001crit, com subfor pra tabela 002item e um form popup para a tabela 003afirm...
    Um dos campos da tabela 002item é a quantidade de registros vincuados da tabela 003afirm.

    Fiz um código para o evento "fechar" do form popup (que exclui, edita vínculo aos Itens e inclui Afirmativas), utilizando Update com Dcount para atualizar o campo de qtde de afirmativas da tabela 002itens, mas o código está zerando esse campo para todos os registros...

    Segue o código:
    Private Sub Form_Close()

    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset

      Set dbs = CurrentDb
      Set rst = dbs.OpenRecordset("002item")
     
      Do Until rst.EOF
      DoCmd.RunSQL "UPDATE 002item SET 002item.itemqaf = DCount('[afirmn]', '003afirm', [itemn] = '[002item].[itemn]');"
      rst.MoveNext
      Loop

    Form_003Itemsub.Refresh

    End Sub
    _________________________________

    Estou a 3 dias tentando fazer esse código funcionar... Sem sucesso...
    Peço socorro!!!
    Abraço!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4471
    Registrado : 15/03/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  ahteixeira em Qua 02 Jul 2014, 16:27

    Olá,

    [002item].[itemn] é algum campo do formulário Form_003Itemsub?

    Se for exprimentar assim

    DoCmd.RunSQL "UPDATE 002item SET 002item.itemqaf = DCount('[afirmn]', '003afirm', [itemn] = """ &[002item].[itemn] &""");"

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  Lu Kobe em Qua 02 Jul 2014, 17:24

    Oi, ahteixeira!

    Pro código do Update e Dcount estou utilizando somente os campos das duas tabelas envolvidas: 003afirm (que será atualizada pelo form popup) e 002item (que terá o campo itemqaf atualizado pelo código, após as atualizações da 003afirm).

    Tentei usar os campos do formulário, mas não dá certo porque o código só utiliza a informação do campo em foco do subform, e a quantidade de afirmativas pode alterar para mais de um item se, por exemplo, no form popup eu alterar, para um afirmativa, a vinculação de um item para outro...

    O campo [itemn] é o campo em comum (com relação um-para-muitos) das tabelas 002item e 003afirm.

    Outra questão que identifiquei é que eu não posso usar aspas duplas dentro do Dcount, por ele estar dentro do Update.

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  Lu Kobe em Qua 02 Jul 2014, 17:35

    Estou anexando o bd simplificado para facilitar!!
    Smile
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (77 Kb) Baixado 9 vez(es)

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  Lu Kobe em Qui 03 Jul 2014, 17:28

    Ninguém????
     Crying or Very sad 
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4471
    Registrado : 15/03/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  ahteixeira em Qui 03 Jul 2014, 18:24

    Ola,

    Hoje tou com pouco tempo, mas não está esquecido
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4471
    Registrado : 15/03/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  ahteixeira em Sex 04 Jul 2014, 01:57

    Olá

    Exprimenta assim

    Código:

    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim contador As String

       Set dbs = CurrentDb
       Set rst = dbs.OpenRecordset("002item")
      
       Do Until rst.EOF
        contador = DCount("[afirmn]", "003afirm", "[itemn] = '" & rst.Fields(1) & "'")
        DoCmd.RunSQL "UPDATE 002item SET 002item.itemqaf = '" & contador & "' WHERE [002item].[itemn] = '" & rst.Fields(1) & "';"
       rst.MoveNext
       Loop

    Form_003Itemsub.Refresh

    Fico aguardar retorno

    Lu Kobe
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 26/08/2013

    Re: [Resolvido]Utilizar DCount dentro de Update

    Mensagem  Lu Kobe em Sex 04 Jul 2014, 14:56

    Uau!!! Ficou perfeito, ahteixeira!!
    Funcionou redondo!

    Obrigada!
     lol! 

      Data/hora atual: Sab 21 Out 2017, 04:20