"Databázový stroj Microsoft Office Access nemůže najít vstupní tabulku" při pokusu o otevření tabulky v šabloně aplikace Access 2010

Příznaky

Zvažte následující příklad:

  • Vytvoříte Microsoft® Access® 2010 databázi.
  • Tabulku v této databázi můžete propojit s externími tabulkami datových služeb ze systémových tabulek služby Business Data Catalog (BDC) na serveru Microsoft SharePoint.
  • Databázi uložíte jako šablonu Accessu 2010 (.accdt) a pak šablonu hydratujete.
  • Pokusíte se otevřít tabulku, která je propojena s tabulkami datových služeb.

V tomto scénáři se zobrazí následující chybová zpráva:

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.

Příčina

K tomuto problému dochází, protože systémové tabulky služby BDC, které jste propojili, nejsou zahrnuty v šabloně, kterou jste uložili z databáze.

Řešení

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Technici podpory společnosti Microsoft mohou pomoci vysvětlit funkce konkrétního postupu. Nebudou však upravovat tyto příklady tak, aby poskytovaly přidanou funkcionalitu nebo sestavovaly postupy, které splňují vaše specifické požadavky.

Chcete-li tento problém vyřešit, postupujte takto:

  1. V Accessu 2010 vytvořte prázdnou databázi.

  2. Na kartě Externí data klikněte v rozevíracím seznamu Další ve skupině Importovat & data na datové služby.

  3. V dialogovém okně Vytvořit propojení na datové služby klikněte na Nainstalovat nové připojení.

  4. Vyberte zdrojový soubor XML, který definuje připojení, a potom klikněte na Otevřít.

  5. Klikněte na Zavřít.

  6. Na kartě Databázové nástroje klikněte ve skupině Makro na položku Visual Basic.

  7. V nabídce Vložit klikněte na položku Modul.

  8. V novém modulu přidejte následující kód.

    '// 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 Sub
    
  9. V nabídce View (Zobrazení ) klikněte na Immediate Window (Okamžité okno).

  10. Zadejte následující příkaz a stiskněte klávesu ENTER:

    PrepareBDCTables

    Poznámka Tento příkaz zpřístupní šabloně tabulky služby BDC.

  11. V podokně Projekt klikněte pravým tlačítkem na nový modul a potom klikněte na Odebrat module_name.

  12. Po zobrazení výzvy k exportu modulu klikněte na Ne .

  13. Zavřete editor jazyka Microsoft Visual Basic.

  14. Na kartě Soubor klikněte na Uložit & Publikovat.

  15. V části Uložit databázi jako klikněte na Šablona (*.accdt).

  16. V dialogovém okně Vytvořit novou šablonu z této databáze zadejte informace o šabloně a kliknutím zaškrtněte políčko Zahrnout data do šablony .

  17. Klikněte na OK.