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

    Compartilhe

    Marioscruz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    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?
    avatar
    leicand
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    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 : 15
    Registrado : 18/07/2016

    Re: [Resolvido]Ajuda com Erro 3020

    Mensagem  Marioscruz em Qui 01 Set 2016, 19:24

    Grata!

      Data/hora atual: Seg 26 Jun 2017, 09:38