CORRECÇÃO: Erro de "Objeto inválido ou não definido" com o Microsoft Jet

Traduções deste artigo Traduções deste artigo
ID do artigo: 304536 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Ao abrir e fechar conexões ou conjuntos de registros usando o Driver Microsoft ODBC para Access ou o Microsoft OLE DB Provider para Jet, pode ser reportado ao seguinte erro:
Objeto inválido ou não definido.
Após esse erro for relatado, não há mais conjuntos de registros ou conexões podem ser abertos do mesmo processo.

Outras mensagens de erro possíveis relatadas para o aplicativo cliente incluem:
Muitas tabelas abrir.
Não é possível abrir mais tabelas.

Resolução

Para resolver esse problema, instale o Microsoft Jet 4.0 service pack 6 mais recente. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
239114Como: Obter o Service Pack mais recente para o Microsoft Jet 4.0 Database Engine

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo. Esse problema foi corrigido no Jet 4.0 Service Pack 6 (SP6).

Mais Informações

Para reproduzir o problema, executar o seguinte Microsoft Visual Basic para código Applications (VBA):
Public Sub Jet_TableID_Repro()
Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.recordset
Dim i As Long
    
    Set conn = New ADODB.Connection
    ' Modify this connection string to point to some blank database.
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\YourTestDatabase.mdb;"
    
    ' Drop and re-create test query.
    On Error Resume Next
    conn.Execute "drop procedure sp_param_test", , adExecuteNoRecords
    On Error GoTo 0
    conn.Execute "create procedure sp_param_test as " & _
                 "parameters iInput Long; " & _
                 "select iInput as iOutput;", , adExecuteNoRecords
    
    For i = 1 To 10000

        ' Code should fail at around 2000-3000 iterations.
        Set rs = New ADODB.recordset
        Set cmd = New ADODB.Command
        Set cmd.ActiveConnection = conn
        cmd.CommandType = adCmdStoredProc
        cmd.CommandText = "sp_param_test"
        cmd.Parameters.Append cmd.CreateParameter("iInput", adInteger)
        cmd.Parameters(0).value = 12

        ' This will fail at around 2000-3000 iterations.
        rs.Open cmd, , adOpenKeyset, adLockOptimistic
        Set cmd = Nothing
        Debug.Print i
        DoEvents
        rs.Close
        Set rs = Nothing

    Next i

End Sub
				

Propriedades

ID do artigo: 304536 - Última revisão: segunda-feira, 26 de setembro de 2005 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Driver Microsoft Open Database Connectivity para Access 4.0
  • Microsoft OLE DB Provider for Jet 4.0
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbjet kbprb kbqfe KB304536 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 304536
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com