MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

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!

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3214
    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 

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3214
    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

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3214
    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: Qua 07 Dez 2016, 20:12