sql >> Databáze >  >> RDS >> Access

Použití zobrazení SQL k přidání/úpravě dat v aplikaci Microsoft Access

Použití zobrazení SQL k přidání/úpravě dat v aplikaci Microsoft Access

Toto je část II dvoudílné série o pohledech, které jsem napsal, část I můžete vidět zde.

Za posledních pár let jsem měl velké zkušenosti s prací na databázích Accessu, kde jsou data propojena s tabulkami uloženými na SQL Serveru. S relačními databázemi a vyhledávacími tabulkami můžete snadno skončit s pohledem, který obsahuje více číselných sloupců, které pouze obsahují primární klíč z jiných tabulek.

Řekněme například, že máte databázi se dvěma tabulkami:jedna pro informace o společnosti a druhá pouze pro kontakty, ale potřebujete propojit své kontakty se společnostmi a máte situace, kdy je kontakt spojen s více společnostmi. Můžete to snadno spravovat vytvořením třetí tabulky CompanyContacts, což by byly řádky dat obsahující CompanyID a ContactID. Existuje mnoho situací, kdy byste měli podobnou tabulku, která propojuje data z jedné tabulky do druhé, ale tyto tabulky musí být udržovány a spravovány uživateli, kteří skutečně potřebují vidět podkladová data a nejen ID. Chcete-li problém vyřešit, můžete vytvořit zobrazení se všemi potřebnými tabulkami a založit svůj formulář na propojeném zobrazení, ale rychle zjistíte, že nemůžete upravovat žádná data, všechna jsou pouze pro čtení.

Tipy pro úpravu zobrazení

Abyste mohli upravit svůj pohled v Accessu, musíte se ujistit, že má primární klíč z tabulky, kterou chcete upravit, spolu s polem časového razítka a indexem. První dvě lze snadno provést přidáním polí do návrhu zobrazení na serveru SQL Server, pro druhé použijte CREATE UNIQUE INDEX, jak je uvedeno níže, spolu s kódem pro přidání vašeho pohledu jako propojené tabulky:

Dim tdf jako DAO.TableDef
Dim db jako DAO.Database

Nastavit db =CurrentDb
Nastavit tdf =db.CreateTableDef
tdf.Name =“ViewNameInAccess”
tdf.SourceTableName =“dbo.ViewName ”
tdf.Connect =“ODBC;<řetězec připojení k serveru SQL>”
db.TableDefs.Append tdf

db.Execute “CREATE UNIQUE INDEX [PRIMARY] ON [ViewNameInAccess](MainTableID);”, dbFailOnError


  1. Jak vybrat více než 1 záznam za den?

  2. Proč je výběr konkrétních sloupců a všech nesprávných v Oracle SQL?

  3. Jak mohu importovat soubor JSON do PostgreSQL?

  4. Vytvořte databázi SQL Server pomocí Azure Data Studio