Access
 sql >> Base de Dados >  >> RDS >> Access

Usando visualizações SQL para adicionar/editar dados no Microsoft Access

Usando visualizações SQL para adicionar/editar dados no Microsoft Access


Esta é a parte II de uma série de duas partes sobre visualizações que escrevi, você pode ver a parte I aqui.

Nos últimos dois anos, tive muita experiência em trabalhar em bancos de dados de acesso com os dados vinculados a tabelas armazenadas no SQL Server. Com bancos de dados relacionais e tabelas de pesquisa, você pode facilmente terminar com uma exibição que contém várias colunas numéricas que apenas contêm a chave primária de outras tabelas.

Digamos, por exemplo, que você tenha um banco de dados com duas tabelas:uma para informações da empresa e outra apenas para contatos, mas você precisa vincular seus contatos a empresas e tem situações em que um contato está vinculado a várias empresas. Você pode gerenciar isso facilmente criando uma terceira tabela de CompanyContacts que seriam linhas de dados contendo CompanyID e ContactID. Existem muitas situações em que você teria uma tabela semelhante que vincula dados de uma tabela a outra, mas essas tabelas precisam ser mantidas e gerenciadas por usuários que realmente precisam ver os dados subjacentes e não apenas os IDs. Para resolver o problema, você pode criar uma visualização com todas as tabelas necessárias e basear seu formulário na visualização vinculada, mas notará rapidamente que não pode editar nenhum dado, tudo é somente leitura.

Dicas para tornar sua visualização editável


Para editar sua visualização no Access, você precisará certificar-se de que ela tenha uma chave primária da tabela que deseja editar, juntamente com o campo de carimbo de hora e um índice. Os dois primeiros podem ser facilmente realizados adicionando os campos no design da sua view no SQL Server, para o último use o CREATE UNIQUE INDEX conforme mostrado abaixo, junto com o código para adicionar sua view como uma tabela vinculada:

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

Definir db =CurrentDb
Definir 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