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]Erro em tempo de execução 3420 - objeto nao é valido ou nao esta definido.

    Compartilhe

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 303
    Registrado : 13/10/2011

    [Resolvido]Erro em tempo de execução 3420 - objeto nao é valido ou nao esta definido.

    Mensagem  ifahidalgo em Qui 28 Jan 2016, 17:11

    Em um evento ao clicar no botão salvar apresenta erro na linha do While e não consigo ver o erro.


    Dim strSql5 As String, rstVerifica As DAO.Recordset
    Dim strSql4 As String, rstImped As DAO.Recordset

    strSql4 = "Select * From tblimpedimento WHERE coduser = int(val('" & Me.txtcoduser & "'))"
    Set rstImped = CurrentDb.OpenRecordset(strSql4, dbOpenSnapshot)

    If Not rstImped.EOF Then
    rstImped.MoveFirst
    xid = " "
    xresultado = 0
    Do While Not rstImped.EOF
    xid = rstImped("idfuncional")
    xdatainicio = txtdatainicio
    xdatafim = txtdatatermino
    strSql5 = "Select * From tblFerias WHERE idfuncional = '" & xvid & "' and anoreferencia = int(val('" & txtanoref & "')) and mes = '" & cmbmesref & "' AND status <> 'QUITADO' and datainicial >= cdate('" & xdatainicio & "') and datainicial <= cdate('" & xdatafim & "')" 'and datafinal cdate('" & xdatainicio & "') and cdate('" & xdatafim & "')"
    Set rstVerifica = CurrentDb.OpenRecordset(strSql5, dbOpenSnapshot)
    If Not rstVerifica.EOF Then
    xresultado = xresultado + 1
    End If
    rstImped.MoveNext
    If rstImped.EOF Then
    rstImped.Close
    rstVerifica.Close
    End If
    Loop
    End If
    Set rstImped = Nothing
    Set rstVerifica = Nothing

    If xresultado = 0 Then
    Call UltimoReg
    strSql = "Select * from tblFerias where idferias = int(val('" & txtidferias & "'))"
    Set rstTemp = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
    rstTemp.AddNew
    rstTemp("coduser") = txtcoduser
    rstTemp("idfuncional") = txtidfuncional
    rstTemp("anoreferencia") = txtanoref
    rstTemp("mes") = cmbmesref
    rstTemp("datainicial") = txtdatainicio
    rstTemp("datafinal") = txtdatatermino
    rstTemp("datasolicitacao") = Now()
    rstTemp("status") = "PENDENTE"
    rstTemp.Update
    rstTemp.Close
    Set rstTemp = Nothing
    MsgBox "Informações salvas com sucesso.", vbOKOnly + vbInformation, "Atenção!"
    Call LimpaCampo
    Call Desabilita
    cmdnovo.Enabled = True
    cmdnovo.SetFocus
    cmdsalvar.Enabled = False

    Else
    MsgBox "Sua solicitação não será deferida." & vbNewLine & "Seu(s) Impedidor(es) já solicitou férias nesse período." & vbNewLine & "Favor selecionar outro mês e intervalo de data.", vbExclamation + vbOKOnly, "Atenção!"
    Call LimpaCampo
    Call Desabilita
    cmdnovo.Enabled = True
    cmdnovo.SetFocus
    cmdsalvar.Enabled = False
    End If

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Erro em tempo de execução 3420 - objeto nao é valido ou nao esta definido.

    Mensagem  JPaulo em Qui 28 Jan 2016, 17:33

    Ola;

    Antes do If Not rstImped.EOF Then tem de ter o:
    If rstImped.RecordCount = 0 Then Exit Sub

    Outra coisa é que não deve declarar strings na mesma linha do DAO, deve separar;

    Dim strSql5 As String
    Dim strSql4 As String
    Dim rstVerifica As DAO.Recordset
    Dim rstImped As DAO.Recordset

    Faça os testes e retorne;


    .................................................................................
    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.]

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 303
    Registrado : 13/10/2011

    Re: [Resolvido]Erro em tempo de execução 3420 - objeto nao é valido ou nao esta definido.

    Mensagem  ifahidalgo em Qui 28 Jan 2016, 19:03

    fiz as alterações e ainda continua o erro.

    Dim strSql4 As String
    Dim strSql5 As String
    Dim rstVerifica As DAO.Recordset
    Dim rstImped As DAO.Recordset

    strSql4 = "Select * From tblimpedimento WHERE coduser = int(val('" & Me.txtcoduser & "'))"
    Set rstImped = CurrentDb.OpenRecordset(strSql4, dbOpenSnapshot)

    If rstImped.RecordCount = 0 Then Exit Sub

    If Not rstImped.EOF Then
    rstImped.MoveFirst
    xid = " "
    xresultado = 0
    Do While Not rstImped.EOF
    xid = rstImped("idfuncional")
    xdatainicio = txtdatainicio
    xdatafim = txtdatatermino
    strSql5 = "Select * From tblFerias WHERE idfuncional = '" & xvid & "' and anoreferencia = int(val('" & txtanoref & "')) and mes = '" & cmbmesref & "' AND status <> 'QUITADO' and datainicial >= cdate('" & xdatainicio & "') and datainicial <= cdate('" & xdatafim & "')" 'and datafinal cdate('" & xdatainicio & "') and cdate('" & xdatafim & "')"
    Set rstVerifica = CurrentDb.OpenRecordset(strSql5, dbOpenSnapshot)
    If Not rstVerifica.EOF Then
    xresultado = xresultado + 1
    End If
    rstImped.MoveNext
    If rstImped.EOF Then
    rstImped.Close
    rstVerifica.Close
    End If
    Loop
    End If
    Set rstImped = Nothing
    Set rstVerifica = Nothing

    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 303
    Registrado : 13/10/2011

    Re: [Resolvido]Erro em tempo de execução 3420 - objeto nao é valido ou nao esta definido.

    Mensagem  ifahidalgo em Seg 15 Fev 2016, 16:21

    resolvido.

      Data/hora atual: Sex 09 Dez 2016, 03:47