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]Erro em tempo de execução '3021' - Nenhum registro atual

    Compartilhe
    avatar
    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 570
    Registrado : 05/02/2011

    [Resolvido]Erro em tempo de execução '3021' - Nenhum registro atual

    Mensagem  Samuel Ribeiro em Sab 31 Jan 2015, 20:04

    Boa tarde

    Faz dia que estou tentando resolver este erro mas não consigo, tenho um formulário onde digito o código interno de um produto da loja onde trababalho que uso para alterar o endereço do mesmo, mas assim que digito o código do produto me vem o seguinte erro:

    Erro em tempo de execução '3021':
    Nenhum registro atual

    Estou usando o seguinte código:

    Código:
    Private Sub txtCodInternoEndereco_AfterUpdate()

    Dim strDocNome As String
    Dim strLinkCriteria As String

        strDocNome = "FormCadastroEnderecoCodigo"
     
    If (Not IsNull(DLookup("[Cod_Interno_Item]", "Cadastro_Itens", _
            "[Cod_Interno_Item] ='" & Me!Cod_Interno_Item & "'"))) Then

         
            Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("Select * From Cadastro_Itens Where Cod_Interno_Item = '" & Me!txtCodInternoEndereco & "'")

          rs.MoveLast
         
    'Autopreencher os campos com os dados do registro encontrado:
    Me.txtCodigoFocItem = rs("Cod_Foc_Item")
    Me.txtCodigoBarrasItem = rs("Cod_Barras_Item")
    Me.txtMarcaItem = rs("Marca_Item")
    Me.txtDescricaoItem = rs("Descricao_Item")
    Me.TxtEndProdAtual = rs("Endereco_Item")

    Me.TxtNovoEndProduto.SetFocus

    End If

    End Sub

    E quando peço para depurar esta linha rs.MoveLast , aparece selecionada em amarelo.

    Desde ja agradeço.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6302
    Registrado : 05/11/2009

    Re: [Resolvido]Erro em tempo de execução '3021' - Nenhum registro atual

    Mensagem  Alexandre Neves em Dom 01 Fev 2015, 12:39

    Boa tarde,
    Veja qual o valor assumido pela variável, substitua-a na expressão e teste em consulta
    Select * From Cadastro_Itens Where Cod_Interno_Item = '" & Me!txtCodInternoEndereco & "'"
    Se não devolver qualquer registo, não deve utilizar o movelast


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 570
    Registrado : 05/02/2011

    Re: [Resolvido]Erro em tempo de execução '3021' - Nenhum registro atual

    Mensagem  Samuel Ribeiro em Qua 04 Fev 2015, 10:01

    Bom dia.

    Desculpe a demora, muito corrido ultimamente.
    Consegui pelo menos fazer funcionar, com pouco mudanças.
    Vejo que o colega Alexandre neves tem razão, o problema esta acontecendo devido a esta linha.

    "rs.MoveLast"

    Veja como ficou o código:

    Código:
    Private Sub txtCodInternoEndereco_AfterUpdate()

    Dim strDocNome As String
    Dim strLinkCriteria As String

        strDocNome = "FormCadastroEnderecoCodigo"
        
    If (Not IsNull(DLookup("[Cod_Interno_Item]", "Cadastro_Itens", _
            "[Cod_Interno_Item] ='" & Me!Cod_Interno_Item & "'"))) Then
            Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("Select * From Cadastro_Itens Where Cod_Interno_Item = '" & Me!txtCodInternoEndereco & "'")
        
     rs.MoveLast
        
    'Autopreencher os campos com os dados do registro encontrado:
    Me.txtCodigoFocItem = rs("Cod_Foc_Item")
    Me.txtCodigoBarrasItem = rs("Cod_Barras_Item")
    Me.txtMarcaItem = rs("Marca_Item")
    Me.txtDescricaoItem = rs("Descricao_Item")
    Me.TxtEndProdAtual = rs("Endereco_Item")

    Me.TxtNovoEndProduto.SetFocus
    'End If
    End If
    End Sub

    Continuo tentando fazer com que esta mensagem suma:
    Erro em tempo de execução: Nenhum registro atual. Acontece somente com os produtos que não estão cadastrados.
    Desde ja Agradeço.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Erro em tempo de execução '3021' - Nenhum registro atual

    Mensagem  JPaulo em Qua 04 Fev 2015, 15:58

    Set rs = CurrentDb.OpenRecordset("Select * From Cadastro_Itens Where Cod_Interno_Item = '" & Me!txtCodInternoEndereco & "'")

    'Se não existir registro, não avança  
    If rs.RecordCount = 0 Then Exit Sub


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

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

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 570
    Registrado : 05/02/2011

    Re: [Resolvido]Erro em tempo de execução '3021' - Nenhum registro atual

    Mensagem  Samuel Ribeiro em Qua 08 Abr 2015, 11:55

    Bom dia Pessoal

    Esqueci de finalizar este tópico, problema resolvido.
    Veja como ficou o código.

    Código:
    Private Sub txtCodInternoEndereco_AfterUpdate()

    Dim strDocNome As String
    Dim strLinkCriteria As String

        strDocNome = "FormCadastroEnderecoCodigo"
       
    If (Not IsNull(DLookup("[Cod_Interno_Item]", "Cadastro_Itens", _
            "[Cod_Interno_Item] ='" & Me!txtCodInternoEndereco & "'"))) Then
            Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("Select * From Cadastro_Itens Where Cod_Interno_Item ='" & Me.txtCodInternoEndereco & "'")
        'If rs.RecordCount > 0 Then
          rs.MoveLast
          'Autopreencher os campos com os dados do registro encontrado:
          Me.txtCodigoFocItem = rs("Cod_Foc_Item")
          Me.txtCodigoBarrasItem = rs("Cod_Barras_Item")
          Me.txtMarcaItem = rs("Marca_Item")
          Me.txtDescricaoItem = rs("Descricao_Item")
          Me.TxtEndProdAtual = rs("Endereco_Item")
          'Else
          'Não faz nada
        'End If
    Me.TxtNovoEndProduto.SetFocus
    End If
    End Sub

    Obrigado a todos.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

      Data/hora atual: Sex 18 Ago 2017, 02:22