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


5 participantes

    [Resolvido]Apagar dados de subformulário

    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Apagar dados de subformulário

    Mensagem  João 10/4/2011, 11:16

    Tenho um formulário principal e um subformulário, ligados atrvés de Nº Processo (campo chave).
    O subformulário contem todos os documentos emitidos para esse processo e os dados tem origem numa tabela de documentos emitidos que é actualizada através de uma consulta.
    Na tabela processos tenho um campo com a data de fecho do processo e um campo sim/não para Arquivo.
    Pretendia, se fosse possivel, que ao fechar o processo colocando a data de fecho ou o arquivado, me apagasse todos os documentos do subfomulário, em virtude de já não serem necessários e estarem a sobrecarregar a tabela.
    obrigado
    abraço
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  vieirasoft 10/4/2011, 11:23

    Se está ligado a uma tabela não tem problema. Temos um sub form, então coloque um botão para apagar os campos que desejar. O assistente do access até faz tudo por si.
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 10/4/2011, 11:37

    Expliquei-me mal, porque o sub está ligado a uma consulta e não á tabela e o que pretendia realmente era que apagasse todos os registos do processo automaticamente, pois um processo pode ter muitos documentos não haverá maneira de fazer isso através de uma condição ou mesmo de uma outra consulta de eliminar ?
    Obrigado
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  vieirasoft 10/4/2011, 11:43

    Só se o fizer através de uma consulta de eliminar, porque os dados terão que ser apagados na tabela.
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 10/4/2011, 11:48

    Mas só para apagar os desse processo, como poderei construir essa consulta ?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  JPaulo 10/4/2011, 12:21

    No evento VBA do seu campo sim/não para Arquivo

    Private Sub SuaChekBox_AfterUpdate()
    Dim strSql As String
    strSql = "DELETE * FROM SuaTabela WHERE SuaChekBox = -1"
    DoCmd.RunSQL (strSql)
    Me.Requery
    End Sub



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Apagar dados de subformulário Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Apagar dados de subformulário Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Apagar dados de subformulário Folder_announce_new Instruções SQL como utilizar...
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  vieirasoft 10/4/2011, 12:27

    O Mestre já deu a resposta, só para não perder o trabalho, penso que também iria funfar

    Dim qdfNew As DAO.QueryDef
    Dim strSQL As String

    If Len(Nz(DLookup(“Name”, “msysobjects”, _
    “type=5 and Name= ‘nomeconsulta’”), “”)) <> 0 Then
    DoCmd.DeleteObject acQuery, “nomeconsulta”
    End If

    strSQL = “SELECT nomecampo1,nomecampo2 ” & _
    “FROM dbo_nometabela ” & _
    “WHERE codigo>= xxxx;”

    Set qdfNew = CurrentDb.CreateQueryDef(“nomeconsulta”, strSQL)
    DoCmd.OpenQuery “nomeconsulta”, acNormal, acEdit

    Set nomeconsulta = Nothing
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 10/4/2011, 12:44

    Dá erro. Diz que não encontra a tabela ou a consulta
    Obrigado
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  JPaulo 10/4/2011, 12:59

    Amigo Vieira, se a consulta é proveniente de uma tabela, para quê deletar a consulta e voltar a criá-la ?

    Não é uma consulta temporaria, é uma consulta definitiva que alimenta o subformulario, daí termos o cuidado necessário para que o subform tenha sempre ligação.

    João:

    Teste como lhe passei que é o simples, apenas colque o nome correto da sua tabela e campo sim/nao.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Apagar dados de subformulário Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Apagar dados de subformulário Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Apagar dados de subformulário Folder_announce_new Instruções SQL como utilizar...
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  vieirasoft 10/4/2011, 13:11

    Bom dia Mestre

    Realmente a sua solução é nota 10, sem qualquer dúvida. Pareceu-me ou melhor, entendi que esses dados eram temporários.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  JPaulo 10/4/2011, 13:18

    Certo.

    E ainda é muito provavel que o João tenha que lhe dar com o comando de salvar antes da instrução, para que quando marcar a chekbox salve essa marcação na tabela e depois apague o registro.

    Private Sub SuaChekBox_AfterUpdate()
    Dim strSql As String
    'salva a marcação da chekbox
    DoCmd.RunCommand acCmdSaveRecord
    'apaga o registro da tabela
    strSql = "DELETE * FROM SuaTabela WHERE SuaChekBox = -1"
    DoCmd.RunSQL (strSql)
    'faz um refresh ao subform
    Me.Requery
    End Sub



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Apagar dados de subformulário Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Apagar dados de subformulário Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Apagar dados de subformulário Folder_announce_new Instruções SQL como utilizar...
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 10/4/2011, 13:29

    Dá erro 3078 diz que não encontra a tabela ou consulta
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  criquio 10/4/2011, 14:08

    Você está inserindo o nome da sua tabela direitinho? Dê uma checada no nome, se não tem letra a mais ou a menos ou diferente.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 10/4/2011, 14:17

    Realmente tinha o nome com um "s" a mais. Mas agora tem outro problema apaga a tabela toda e não só os registos desse processo.,
    Ao passar o comando apagou os registos de todos os processos ou seja apagou a tabela toda.
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 11/4/2011, 10:09

    Mais ninguém tem nenhuma sugestão ?
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  Dilson 11/4/2011, 11:23

    Olá amigos,

    Vejo que se trata de tabelas relacionadas. assim sendo, as duas tabelas tem um número em comum, por exemplo:

    Tabela Processo >> Tabela (subformulário do Processo)


    Então a chave primária do Processo está presente e relaciona os registros no subformulário.

    Para dar certo, terá que pegar a chave primária do Processo e armazenar em uma variável, a frente você passa o valor dessa variável como parâmetro / critério que apagará certinho somente os registros relacionados.

    Acredito que o código do Mestre JPaulo dê para implementar dessa forma, declarando a variável e depois a colocando no critério.
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 11/4/2011, 11:42

    Amigo Dilson:
    Realmente o formulário principal e o subformulário estão ligados pelo Nº Processo.
    Dava para explicar um pouco melhor o que fazer ou exemplificar, pois sou iniciante e tenho dificuldade em aplicar as indicações que me deu.
    Obrigado
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  Dilson 11/4/2011, 12:51

    Olá João,

    Peguei o código do JPaulo e apliquei no formulário, em um botão no evento ao clicar:

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Dim strSql As String

    'apaga o registro da tabela
    strSql = "DELETE * FROM Sua Tabela do SubForm WHERE SeuCodigoDoProcesso = " & Me!SeuCodigoDoProcesso

    DoCmd.RunSQL (strSql)
    'faz um refresh ao subform
    Me.Requery
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Funcionou.

    Veja que referenciei no sql o campo que co-ralaciona os registros em ambas as tabelas.

    Minha sugestão agora, é que você deixe esse botão desativado e ao clicar na checkbox indicando "Sim" como concluído, ele ative o botão para excluir os registros do subformulário, sacou?!!

    Lembrando que SeuCodigoDoProcesso, trata-se da chave pimária da tabela Processos

    Faça um teste e veja.


    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  Dilson 11/4/2011, 13:06

    Utilizando a checkbox funcionou assim:

    No evento ao clicar da checkbox:

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    If SuaCheckBox = -1 Then
    Dim strSql As String

    'salva a marcação da chekbox
    DoCmd.RunCommand acCmdSaveRecord
    'apaga o registro da tabela
    strSql = "DELETE * FROM Sua Tabela do SubForm WHERE SeuCodigoDoProcesso = " & Me!SeuCodigoDoProcesso

    DoCmd.RunSQL (strSql)
    'faz um refresh ao subform
    Me.Requery
    Else
    Exit Sub
    End If
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Observe que não foi preciso armazenar em variável, apenas referenciar na instrução.
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 11/4/2011, 14:17

    Já coloquei o código mas mesmo assim não deleta os registos do subformulário
    Obrigado
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  Dilson 11/4/2011, 14:50


    Veja o exemplo que fiz utilizando as duas maneiras descritas acima:

    http://www.speedyshare.com/files/27903232/ExcluiRegistrosDoSubForm.rar
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 11/4/2011, 16:12

    Obrigado amigo Dilson.
    Assunto resolvido.
    Um abraço
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  JPaulo 11/4/2011, 16:39

    Resolvido está desde o inicio, agora gostariamos de saber o que você estava a fazer de errado.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Apagar dados de subformulário Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Apagar dados de subformulário Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Apagar dados de subformulário Folder_announce_new Instruções SQL como utilizar...
    avatar
    João
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 105
    Registrado : 07/10/2010

    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  João 11/4/2011, 19:32

    Estava a colocar o Nº Processo com erro

    Conteúdo patrocinado


    [Resolvido]Apagar dados de subformulário Empty Re: [Resolvido]Apagar dados de subformulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 04:18