PRB: Foutbericht 'Onbekende database-indeling' wanneer u een upgrade naar Access 2000 of 2002 uitvoert

Symptomen

Wanneer u toegang probeert te krijgen tot een Access 2000- of een Access 2002-database, treedt een van de volgende fouten op in het Visual Basic-programma:

Als u Microsoft ActiveX Data Objects (ADO) (of ADO-gegevensbesturing) gebruikt, wordt het volgende foutbericht weergegeven:

Runtimefout -2147467259 Onbekende database-indeling XXX
Als u Data Access Objects (DAO) (of de algemene DAO-gegevensbesturing) gebruikt, wordt het volgende foutbericht weergegeven:

Runtimefout 3343 Onbekende database-indeling XXX

Oorzaak

Access 2000 en Access 2002 gebruiken de Jet 4.0-engine. Deze engine maakt databasebestanden met de indeling Jet 4.0. Deze indeling wordt niet herkend door Jet 3.5-componenten.

  • Als u met ADO werkt, treedt fout -2147467259 op wanneer u via de provider Microsoft.Jet.OLEDB.3.51 verbinding probeert te maken met een Access 2000- of Access 2002-database.
  • Als u met DAO werkt, treedt fout 3343 op wanneer u de objectbibliotheek Microsoft DAO 3.51 gebruikt.
  • De generieke gegevensbesturing van DAO werkt niet in combinatie met Access 2000- of Access 2002-databases en resulteert altijd in fout 3343, tenzij u deze gebruikt volgens de aanwijzingen in de sectie 'Oplossing' van dit artikel. Aangezien deze besturing gebaseerd is op Jet 3.51, worden alleen databases in Jet 3.51-indeling (of in een eerdere indeling) herkend.

Oplossing

U kunt dit probleem op een van de volgende manieren oplossen:

  • Installeer Visual Studio Service Pack 4 of hoger. (Als u gegevensbesturing gebruikt, wijzigt u de eigenschap Verbinden in Access 2000.)
  • Voor ADO (of ADO-gegevensbesturing): gebruik de provider Microsoft.Jet.OLEDB.4.0.
  • Voor DAO: voeg een verwijzing toe naar de Microsoft-objectbibliotheek DAO 3.6.
  • Als u de generieke gegevensbesturing gebruikt, moet u een DAO 3.6-recordset openen. Wijs deze recordset toe aan de bron van de gegevensbesturing. Hiertoe gaat u als volgt te werk:
    Option Explicit
    Private daoDB36 As Database
    Private rs As DAO.Recordset
    Dim sPath As String

    Private Sub Form_Load()
    sPath = _
    "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
    Set daoDB36 = DBEngine(0).OpenDatabase(sPath)
    Set rs = daoDB36.OpenRecordset("Customers")
    Set Data1.Recordset = rs
    End Sub
  • Dit probleem is verholpen in Visual Basic Service Pack 4. Voor de eigenschap Connect is een nieuwe waarde toegevoegd (Access 2000). Door deze waarde is de DAO-gegevensbesturing in staat om Access 2000-databases te openen.

Status

In Visual Studio 6.0 Service Pack 4 is voor het eerst een correctie aangebracht voor dit probleem.Als u meer informatie wilt over service packs voor Visual Studio, klikt u op de volgende artikelnummers in de Microsoft Knowledge Base:
194022 Info: Visual Studio 6.0 Service Packs: wat, waar, waarom


194295 Procedure: Uitzoeken of er een service pack voor Visual Studio is geïnstalleerd
U kunt het laatste service pack voor Visual Studio downloaden van de volgende Microsoft-website:

Referenties

Als u meer informatie wilt over Jet 4.0, raadpleegt u de documentatie bij Access 2000.


Als u meer informatie wilt over ADO en DAO, raadpleegt u de documentatie bij Visual Basic.

Als u meer informatie wilt over de fout 'Onbekende database-indeling', doorzoekt u de MSDN-bibliotheek van Visual Basic aan de hand van deze fout.
Eigenschappen

Artikel-id: 238401 - Laatst bijgewerkt: 20 dec. 2005 - Revisie: 1

Feedback