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]Ajuda com Erro 3020

    Compartilhe

    Marioscruz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 18/07/2016

    [Resolvido]Ajuda com Erro 3020

    Mensagem  Marioscruz em Ter 02 Ago 2016, 21:41

    Olá, boa tarde!

    Tenho um código para alteração de registro que está gerando o erro 3020 (Update ou CancelUpdate sem AddNew ou Edit). Segue abaixo:

    Código:
    Dim db As Database
    Dim rsPlan As Recordset

    Set db = CurrentDb
    Set rsPlan = db.OpenRecordset("SELECT * FROM Tab_Carros WHERE Tipo_carro = 'Me.Tipo_carro'")

    If rsPlan.EOF = False Then
            rsPlan.Edit
        
    End If
    rsPlan("Marca") = Me.Marca
    rsPlan("Capacidade") = Me.Capacidade
    rsPlan("Diaria_inteira") = Me.Diaria_inteira
    rsPlan("Meia_diaria") = Me.Meia_diaria
    rsPlan.Update
    rsPlan.Close
    db.Close

    Se eu substituir o nome do campo Me.Tipo_carro em SELECT por exemplo por 'UNO' (que é um tipo_carro), este erro não acontece. O erro só acontece quando eu referencio o campo que deve ser comparado. O comando Edit está lá, então por que será que o erro persiste?

    leicand
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 43
    Registrado : 04/01/2016

    Re: [Resolvido]Ajuda com Erro 3020

    Mensagem  leicand em Qua 03 Ago 2016, 12:43

    Bom dia Mariana,

    Provavelmente porque sua condicionar é falsa, então ele não passa pelo rsPlan.Edit, mas depois do End If tem o .Update.

    Não entendi totalmente o que você deseja, mas veja se resolve:



       Dim db As Database
       Dim rsPlan As Recordset

       Set db = CurrentDb
       Set rsPlan = DB.OpenRecordset("SELECT * FROM Tab_Carros WHERE Tipo_carro = 'Me.Tipo_carro'")
       
       If rsPlan.Recordcount>0 then
    With rsPlan
       rsPlan.Edit  
       !Marca = Me.Marca
       !Capacidade= Me.Capacidade
       !Diaria_inteira = Me.Diaria_inteira
       !Meia_diaria = Me.Meia_diaria
       .Update
    End With
       End If
       rsPlan.Close
       DB.Close

    Marioscruz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 11
    Registrado : 18/07/2016

    Re: [Resolvido]Ajuda com Erro 3020

    Mensagem  Marioscruz em Qui 01 Set 2016, 19:24

    Grata!

      Data/hora atual: Sab 03 Dez 2016, 02:27