Jet OLEDB provider requires a Jet 4.0 system database in Access 2002 (286376)



The information in this article applies to:

  • Microsoft Access 2002

This article was previously published under Q286376
Advanced: Requires expert coding, interoperability, and multiuser skills.

This article applies only to a Microsoft Access database (.mdb).

For a Microsoft Access 2000 version of this article, see 243466.

SYMPTOMS

When you try to use a Microsoft Jet 3.x workgroup information file (system database) with the Microsoft Jet 4.0 OLE DB provider, you may receive the following error message:
Run-time error '3251':

Object or provider is not capable of performing requested operation.

CAUSE

The OLE DB APIs make calls that are not supported in the Jet 3.x IISAM.

RESOLUTION

You must use the Workgroup Administrator utility in Microsoft Access to create a new workgroup file. You must then re-create all user and group accounts using the exact account name and personal identification number (PID) that was used to create them in the earlier version of Microsoft Access.

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

278329 How to run the Workgroup Administrator program

MORE INFORMATION

Steps to Reproduce the Behavior

  1. On a computer that has Access 2002 installed, create a folder and name it C:\Test.
  2. On a computer that has Access 97 installed, copy a System.mdw file and the sample Northwind database to the C:\Test folder. The Access 97 System.mdw file is, by default, stored in the Windows\System folder (or on Windows NT, in the Winnt\System32 folder).
  3. In a new Access 2002 database, create a new module.
  4. On the Tools menu, click References, and make sure the following references are selected:

    Microsoft ActiveX Data Objects 2.1 (or later) Library
    Microsoft ADO Ext. 2.5 (or later) for DDL and Security

  5. Type the following function into the new module:
    Option Compare Database
    Option Explicit
    
    Function fncTest()
        Dim conn As ADODB.Connection
        Dim cat As ADOX.Catalog
        Dim grp As ADOX.Group
        
        Set conn = New ADODB.Connection
    
        conn.Provider = "Microsoft.Jet.OLEDB.4.0"
        conn.Properties("Jet OLEDB:System database") = "C:\Test\System.mdw"
        conn.ConnectionString = "Data Source=C:\Test\Northwind.mdb;" & _
                                "User Id=Admin;Password="
        conn.Open
    
        Set cat = New ADOX.Catalog
    
        cat.ActiveConnection = conn
    
        Set grp = New ADOX.Group
        
        For Each grp In cat.Groups    '<== error occurs here
            Debug.Print grp.Name
        Next grp
    End Function
    					
  6. In the Immediate window, type the following line, and then press ENTER:
    ?fncTest()
    						
    Note that you receive the error message that is mentioned in the "Symptoms" section of this article.

Modification Type:MinorLast Reviewed:1/26/2005
Keywords:kberrmsg kbnofix kbprb KB286376