FIX: "Objek tidak sah atau tidak lagi mengatur" Error dengan Microsoft Jet

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 304536
Perbesar semua | Perkecil semua

GEJALA

Ketika membuka dan menutup koneksi atau recordsets menggunakan Microsoft ODBC Driver untuk akses atau Microsoft OLE DB penyedia untuk Jet, galat berikut mungkin melaporkan:
Objek tidak sah atau tidak lagi ditetapkan.
Setelah kesalahan ini dilaporkan, tidak ada lagi recordsets atau koneksi dapat dibuka dari proses yang sama.

Pesan galat mungkin lain dilaporkan aplikasi klien termasuk:
Terlalu banyak tabel buka.
Tidak dapat membuka setiap lebih tabel.

PEMECAHAN MASALAH

Untuk mengatasi masalah ini, instal Microsoft Jet 4.0 paket layanan 6. Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
239114Cara: Dapatkan paket layanan terbaru untuk Microsoft Jet 4.0 Database Engine

STATUS

Microsoft telah mengkonfirmasi bahwa ini merupakan masalah dalam produk Microsoft yang didaftar pada awal artikel ini. Masalah ini tetap di Jet 4.0 Service Pack 6 (SP6).

INFORMASI LEBIH LANJUT

Untuk mereproduksi masalah, jalankan berikut Microsoft Visual Basic for Applications (VBA) kode:
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
				

Properti

ID Artikel: 304536 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Kata kunci: 
kbhotfixserver kbqfe kbjet kbprb kbmt KB304536 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:304536
Sanggahan Konten KB yang Tidak Lagi Diperbarui
Artikel ini berisi tentang produk yang tidak lagi didukung oleh Microsoft. Oleh karena itu, artikel ini disajikan ?sebagaimana adanya? dan tidak akan diperbarui.

Berikan Masukan

 

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