Access
 sql >> Datenbank >  >> RDS >> Access

Verwenden von SQL-Ansichten zum Hinzufügen/Bearbeiten von Daten in Microsoft Access

Verwenden von SQL-Ansichten zum Hinzufügen/Bearbeiten von Daten in Microsoft Access

Dies ist Teil II einer zweiteiligen Serie über Ansichten, die ich geschrieben habe. Sie können Teil I hier sehen.

In den letzten Jahren habe ich viel Erfahrung mit der Arbeit an Access-Datenbanken gesammelt, wobei die Daten mit Tabellen verknüpft sind, die in SQL Server gespeichert sind. Bei relationalen Datenbanken und Nachschlagetabellen können Sie leicht mit einer Ansicht enden, die mehrere numerische Spalten enthält, die nur den Primärschlüssel aus anderen Tabellen enthalten.

Angenommen, Sie haben eine Datenbank mit zwei Tabellen:eine für Unternehmensinformationen und eine andere nur für Kontakte, aber Sie müssen Ihre Kontakte mit Unternehmen verknüpfen und Sie haben Situationen, in denen ein Kontakt mit mehreren Unternehmen verknüpft ist. Sie können dies einfach verwalten, indem Sie eine dritte Tabelle mit CompanyContacts erstellen, die aus Datenzeilen besteht, die CompanyID und ContactID enthalten. Es gibt viele Situationen, in denen Sie eine ähnliche Tabelle haben würden, die Daten aus einer Tabelle mit einer anderen verknüpft, aber diese Tabellen müssen von Benutzern gepflegt und verwaltet werden, die wirklich die zugrunde liegenden Daten und nicht nur die IDs sehen müssen. Um das Problem zu lösen, können Sie eine Ansicht mit allen erforderlichen Tabellen erstellen und Ihr Formular auf der verknüpften Ansicht basieren, aber Sie werden schnell feststellen, dass Sie keine Daten bearbeiten können, es ist alles schreibgeschützt.

Tipps, um Ihre Ansicht bearbeitbar zu machen

Um Ihre Ansicht in Access zu bearbeiten, müssen Sie sicherstellen, dass sie einen Primärschlüssel aus der Tabelle enthält, die Sie bearbeiten möchten, zusammen mit dem Zeitstempelfeld und einem Index. Die ersten beiden können leicht erreicht werden, indem Sie die Felder in Ihrem Ansichtsdesign in SQL Server hinzufügen, für letzteres verwenden Sie CREATE UNIQUE INDEX wie unten gezeigt, zusammen mit dem Code, um Ihre Ansicht als verknüpfte Tabelle hinzuzufügen:

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 UNIQUE INDEX [PRIMARY] ON [ViewNameInAccess](MainTableID);“, dbFailOnError