"Microsoft Office Access-databasmotorn kan inte hitta indatatabellen" när du försöker öppna en tabell i en Access 2010-mall
Anteckning
Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.
Symptom
Tänk dig följande situation:
- Du skapar en Microsoft Access 2010 databas.
- Du länkar en tabell i den här databasen till externa datatjänsttabeller från BDC-tjänstsystemtabeller (Business Data Catalog) på en Microsoft SharePoint server.
- Du sparar databasen som en Access 2010-mall (.accdt) och sedan kan du skapa mallen.
- Du försöker öppna tabellen som är kopplad till Data Services-tabellerna.
I det här scenariot får du följande felmeddelande:
The Microsoft Office Access database engine cannot find the input table or query 'MSysBDCMetadata'. Make sure that it exists and that its name is spelled correctly.
Orsak
Det här problemet uppstår eftersom BDC-systemtabellerna som du har länkat till inte ingår i mallen som du sparade från databasen.
Lösning
Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa dig att förklara funktionaliteten i en viss procedur. De ändrar dock inte de här exemplen för att ge ytterligare funktioner eller skapa procedurer så att de uppfyller dina specifika krav.
Följ de här anvisningarna för att komma runt det här problemet:
Skapa en tom databas i Access 2010.
På fliken Externa data går du till listrutan Mer, som finns i gruppen Importera & Data, och klickar på Datatjänster.
Klicka på Installera ny anslutning i dialogrutan Skapa länk till datatjänster.
Välj den XML-källfil som definierar anslutningen och klicka sedan på Öppna.
Klicka på Stäng.
Klicka på Fliken Databasverktyg i gruppen Makro på fliken Visual Basic.
Klicka på Modul på Infoga-menyn.
Lägg till följande kod i den nya modulen.
'// Set all the MSysBDC* system tables so that they become visible to Save As Template '// This should only be needed as soon as in the database that will be used to create the template (accdt) Sub PrepareBDCTables() Dim db As Database, tbl As TableDef Set db = CurrentDb For Each tbl In db.TableDefs If tbl.Name Like "MSysBDC*" Then '//Set all the bdc tables so that they are visible to the save as template wizard tbl.Attributes = 0 End If Next End SubKlicka på Direktfönster på menyn Visa.
Skriv in följande kommando och tryck sedan på RETUR:
FörberedaBDCTables
Obs! Med det här kommandot blir BDC-tabellerna tillgängliga för mallen.
Högerklicka Project den nya modulen i fönstret Project och klicka sedan på Ta bort module_name.
Klicka på Nej när du uppmanas att exportera modulen.
Stäng Microsofts Visual Basic redigeraren.
Klicka på Spara och publicera på & Arkiv.
Klicka på Mall (*.accdt) under Spara databas som.
I dialogrutan Skapa ny mall från den här databasen anger du information om mallen och markerar kryssrutan Inkludera data i mall genom att klicka på den.
Klicka på OK.