sql >> Database >  >> RDS >> Access

SQL-weergaven gebruiken om gegevens toe te voegen/bewerken in Microsoft Access

SQL-weergaven gebruiken om gegevens toe te voegen/te bewerken in Microsoft Access

Dit is deel II van een tweedelige serie over meningen die ik heb geschreven, deel I kun je hier bekijken.

De afgelopen jaren heb ik veel ervaring opgedaan met het werken aan Access Databases waarbij de Data is gekoppeld aan tabellen die zijn opgeslagen in SQL Server. Met relationele databases en opzoektabellen kun je gemakkelijk eindigen met een weergave die meerdere numerieke kolommen bevat die alleen de primaire sleutel van andere tabellen bevatten.

Stel dat u bijvoorbeeld een database hebt met twee tabellen:een voor bedrijfsinformatie en een andere alleen voor contacten, maar u moet uw contacten aan bedrijven koppelen en u hebt situaties waarin een contactpersoon aan meerdere bedrijven is gekoppeld. U kunt dit eenvoudig beheren door een derde tabel met CompanyContacts te maken, dit zijn rijen met gegevens die CompanyID en ContactID bevatten. Er zijn veel situaties waarin u een vergelijkbare tabel zou hebben die gegevens van de ene tabel naar de andere koppelt, maar deze tabellen moeten worden onderhouden en beheerd door gebruikers die echt de onderliggende gegevens moeten zien en niet alleen de ID's. Om het probleem op te lossen, kun je een weergave maken met alle benodigde tabellen en je formulier baseren op de gekoppelde weergave, maar je zult snel merken dat je geen gegevens kunt bewerken, het is allemaal alleen-lezen.

Tips om uw weergave bewerkbaar te maken

Om uw weergave in Access te bewerken, moet u ervoor zorgen dat deze een primaire sleutel heeft uit de tabel die u wilt bewerken, samen met het tijdstempelveld en een index. De eerste twee kunnen eenvoudig worden bereikt door de velden in uw weergaveontwerp in SQL Server toe te voegen, voor de laatste gebruikt u de CREATE UNIEKE INDEX zoals hieronder weergegeven, samen met de code om uw weergave toe te voegen als een gekoppelde tabel:

Dim tdf As DAO.TableDef
Dim db As DAO.Database

Set db =CurrentDb
Set tdf =db.CreateTableDef
tdf.Name =“ViewNameInAccess”
tdf.SourceTableName =“dbo.ViewName ”
tdf.Connect =“ODBC;
db.TableDefs.Append tdf

db.Execute “CREATE UNIEKE INDEX [PRIMAIR] OP [ViewNameInAccess](MainTableID);”, dbFailOnError


  1. Weet iemand welke coderingstechniek JDeveloper/SQL Developer gebruikt om inloggegevens te behouden?

  2. Snelste manier om geneste bulk-inserts uit te voeren met scope_identity() gebruik?

  3. Een database automatisch comprimeren en repareren in Access 2016

  4. C#:Object kan niet van DbNull naar andere typen worden gecast