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]Rotina não deleta registro - currentdb execute delete

    Compartilhe

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Sab 23 Jan 2016, 14:04

    Prezados colegas, bom dia.


    Tenho a necessidade de excluir registro, com um certo campo em branco, em uma tabela ao pressionar o botão salvar em certo formulário.  A Instrução que eu estou quebrando a cabeça é essa:

    CurrentDb.Execute ("delete * from tblcontatos Where representacao = '" & Forms!frmfornecedor!Representacao & "'" And CodFornecedor Is Null)

    " exclua da tabela contatos onde o nome do fornecedor seja igual ao que esta no formulário e que o campo codfornecedor é vazio"   -> essa é a ideia que eu estou querendo implementar.
    onde:

    a- representacao = campo texto
    b- CodFornecedor = campo numérico

    Simplesmente ele não exclui da tblcontato o registro.

    Grato a todos.

    formiga10x
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 11/09/2013

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  formiga10x em Sab 23 Jan 2016, 15:31

    Já tentou:
    CurrentDb.Execute ("delete * from tblcontatos Where representacao = '" & Forms!frmfornecedor!Representacao & "' And IsNull(CodFornecedor)")


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Sab 23 Jan 2016, 16:58

    Boas Formiga...

    Negativo meu amigo...nada de deletar.

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Sab 23 Jan 2016, 17:24

    De uma olhada na imagem abaixo.....


    [img][Você precisa estar registrado e conectado para ver esta imagem.][/img]

    formiga10x
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 11/09/2013

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  formiga10x em Sab 23 Jan 2016, 17:35

    A conversão para inteiro do codFornecedor?
    A tabela está relacionada?
    Já viu?


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Sab 23 Jan 2016, 17:39

    As tabelas não estão relacionadas não.

    A tabela contato é alimentada com alguns campos, através de um insert into.

    Essa tabela contato, serve de base para catalogo de e-mail´s ( CDOSys ) que o cliente utiliza.


    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Sab 23 Jan 2016, 17:49

    Testei com relacionamentos.....ficou bom claro !
    Mas mesmo assim, eu preciso deletar os fornecedores, que não tem o codfornecedor na tabela contatos.
    Se eu deixar isso, vai ter duplicidade de registros.

    Lupércio
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1134
    Registrado : 07/05/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Lupércio em Dom 24 Jan 2016, 00:51

    Silvio boa noite amigão, como vai?

    Desculpe ai Silvio e a todos, agora o que entendi, o que queres!


    .................................................................................
    Quando tua dúvida for resolvida, de o retorno de agradecimento á aqueles que gastaram seu tempo para te ajudar.
    Clique no botão “Resolvido” logo acima do botão “Enviar” ao lado direito. Todos nós agradecemos.[Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.]

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Dom 24 Jan 2016, 11:15

    Bom dia a todos....


    Lupércio, veja a mensagem de numero um....é o que eu preciso e estou quebrando a cabeça.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Assis em Dom 24 Jan 2016, 11:51

    Bom dia amigo
    Pode postar os objectos em causa ?


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

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Dom 24 Jan 2016, 12:24

    Bom dia Assis...

    Vou preparar um exemplo que os dados que cá eu tenho.


    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Dom 24 Jan 2016, 12:45

    Cá está o exemplo.   apenas copiem os dados da tblcontato, evitando de colocar o:
    a- codcliente
    b- codfornecedor.

    Tentem salvar, verão que os que estão sem o: codcliente e codfornecedor ainda ficam na tblcontato ao tentar salvar.
    Esses que contem os campos em brancos, tem que serem excluídos.
    Anexos
    Forum.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (131 Kb) Baixado 10 vez(es)

    gilberlanio
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 597
    Registrado : 30/08/2010

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  gilberlanio em Dom 24 Jan 2016, 12:57

    Acho que a lógica que está tentando usar não é correta.
    O que você pode fazer é excluir uma linha e não um campo.
    Nessa caso se excluir o campo em branco do do Código do cliente estará exlcuindo automaticamnte o código do fornecedor e vice-versa. É isso mesmo que pretende?

    [url=[Você precisa estar registrado e conectado para ver esta imagem.]]Imagem[/url]


    .................................................................................
    VIDEO CURSO DE ACCESS - Criando um sistema de vendas

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

    Loja virtual - Gilberlânio Rocha

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Dom 24 Jan 2016, 13:11

    Gilberlânio, bom dia e desde já grato por participar desse tópico.

    Na tabela original, eu tenho mais de 60 contatos sem o codcliente e o codfornecedor.

    Ao alterar e depois salvar, seja o cliente ou o fornecedor, desejo que os campos codcliente e codfornecedor que estão em branco sejam excluídos ficando apenas os registros que estão completos.

    Ou seja, se esses campos codcliente e codfornecedor estiverem em branco, sejam excluídos evitando duplicadas dentro da tblcontatos.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Assis em Dom 24 Jan 2016, 13:30

    Silvio

    Na tabela tblcontatos não tem nenhum campo chamado "representacao"

    No formulário "frmfornecedor" o campo parece que se chama "Fornecedor"

    Ou estarei errado ?

    CurrentDb.Execute ("delete * from tblcontatos Where representacao = '" & Forms!frmfornecedor!Representacao & "' And IsNull(CodFornecedor)")


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

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Dom 24 Jan 2016, 14:04

    Assis, acertou em cheio.....

    Que erro primário o meu, estava tão obcecado em representação e nem vi, nem me atinei que o campo era nome.

    Corrigido dessa forma e funfando do jeito que é necessário:

    CurrentDb.Execute ("delete * from tblcontatos Where nome= '" & Forms!frmfornecedor!Representacao & "' And IsNull(CodFornecedor)")

    Agora sim, ele deleta a linha onde o codfornecedor ou codcliente está em branco

    Fica aqui, registrado os meus agradecimentos a todos que me ajudaram a resolver esse tópico.

    Abraços.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Assis em Dom 24 Jan 2016, 14:12

    Obrigado pelo retorno Amigão

    Fico contente por ter ajudado .....

    Mas onde está este campo no formulário "Forms!frmfornecedor!Representacao"

    Não será  .... Forms!frmfornecedor!Fornecedor . aonde esta o nome ?

    [Você precisa estar registrado e conectado para ver esta imagem.]


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

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3236
    Registrado : 20/04/2011

    Re: [Resolvido]Rotina não deleta registro - currentdb execute delete

    Mensagem  Silvio em Dom 24 Jan 2016, 16:19

    Boa noite e boa tarde...

    Desculpe a demora em responder, mas estava a almoçar com a família.

    Assis, veja a rotina de exportação quando se clicar em salvar.
    'aqui faço a inserção do e-mail do fornecedor na tblcontatos
       Dim db1 As Database, rs1 As DAO.Recordset
       Set db1 = CurrentDb
       Set rs1 = db1.OpenRecordset("tblcontatos")
       With rs1
       ' os campos abaixo do formulário tem que ser iguais aos que estão na tabela para realizar a exportação
       .AddNew
       ' campos que estão na tabela = campos do fomulario
       ![CodFornecedor] = Me.CodFornecedor
      ![Nome] = Me.Fornecedor
       ![Email] = Me.Email
       ![Grupo] = "Profissional"
       .Update
       End With
       End If

    Eu não alterei as propriedades do campo na aba outras, permanecendo como estava. Peguei o projeto para melhorar de um cliente novo.

      Data/hora atual: Sex 09 Dez 2016, 09:35