Access
 sql >> Base de données >  >> RDS >> Access

Utilisation des vues SQL pour ajouter/modifier des données dans Microsoft Access

Utilisation des vues SQL pour ajouter/modifier des données dans Microsoft Access

Ceci est la deuxième partie d'une série en deux parties sur les vues que j'ai écrites, vous pouvez voir la partie I ici.

Au cours des deux dernières années, j'ai acquis une grande expérience du travail sur des bases de données Access avec les données liées à des tables stockées dans SQL Server. Avec les bases de données relationnelles et les tables de recherche, vous pouvez facilement vous retrouver avec une vue contenant plusieurs colonnes numériques contenant uniquement la clé primaire d'autres tables.

Supposons, par exemple, que vous ayez une base de données avec deux tables :une pour les informations sur l'entreprise et une autre uniquement pour les contacts, mais vous devez lier vos contacts à des entreprises et vous avez des situations où un contact est lié à plusieurs entreprises. Vous pouvez facilement gérer cela en créant une troisième table de CompanyContacts qui serait des lignes de données contenant CompanyID et ContactID. Il existe de nombreuses situations où vous auriez une table similaire qui relie les données d'une table à une autre, mais ces tables doivent être maintenues et gérées par des utilisateurs qui ont vraiment besoin de voir les données sous-jacentes et pas seulement les ID. Pour résoudre le problème, vous pouvez créer une vue avec toutes les tables nécessaires et baser votre formulaire sur la vue liée, mais vous remarquerez rapidement que vous ne pouvez modifier aucune donnée, tout est en lecture seule.

Conseils pour rendre votre vue modifiable

Pour modifier votre vue dans Access, vous devez vous assurer qu'elle contient une clé primaire de la table que vous souhaitez modifier, ainsi que le champ d'horodatage et un index. Les deux premiers peuvent facilement être accomplis en ajoutant les champs dans la conception de votre vue dans SQL Server, pour ce dernier, utilisez le CREATE UNIQUE INDEX comme indiqué ci-dessous, ainsi que le code pour ajouter votre vue en tant que table liée :

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.Exécutez "CREATE UNIQUE INDEX [PRIMARY] ON [ViewNameInAccess](MainTableID);", dbFailOnError