sql >> Base de Datos >  >> RDS >> Access

Uso de vistas SQL para agregar/editar datos en Microsoft Access

Uso de vistas SQL para agregar/editar datos en Microsoft Access

Esta es la segunda parte de una serie de dos partes sobre vistas que he escrito, puedes ver la primera parte aquí.

En los últimos años he tenido mucha experiencia trabajando en bases de datos de acceso con los datos vinculados a tablas almacenadas en SQL Server. Con las bases de datos relacionales y las tablas de búsqueda, puede terminar fácilmente con una vista que contiene varias columnas numéricas que solo contienen la clave principal de otras tablas.

Digamos, por ejemplo, que tiene una base de datos con dos tablas:una para información de la empresa y otra solo para contactos, pero necesita vincular sus contactos con empresas y tiene situaciones en las que un contacto está vinculado con varias empresas. Puede administrar esto fácilmente creando una tercera tabla de CompanyContacts que serían filas de datos que contienen CompanyID y ContactID. Hay muchas situaciones en las que tendría una tabla similar que vincula datos de una tabla a otra, pero estas tablas deben ser mantenidas y administradas por usuarios que realmente necesitan ver los datos subyacentes y no solo las ID. Para resolver el problema, puede crear una vista con todas las tablas necesarias y basar su formulario en la vista vinculada, pero notará rápidamente que no puede editar ningún dato, todo es de solo lectura.

Consejos para hacer que su vista sea editable

Para editar su vista en Access, deberá asegurarse de que tenga una clave principal de la tabla que desea editar, junto con el campo de marca de tiempo y un índice. Los primeros dos pueden lograrse fácilmente agregando los campos en su diseño de vista en SQL Server, para el último use CREAR ÍNDICE ÚNICO como se muestra a continuación, junto con el código para agregar su vista como una tabla vinculada:

Dim tdf como DAO.TableDef
Dim db como DAO.Base de datos

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

db.Ejecute "CREAR ÍNDICE ÚNICO [PRIMARIO] EN [ViewNameInAccess](MainTableID);", dbFailOnError