... Pague apenas R$67,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


Criar relacionamentos entre as tabelas, usando o CONSTRAINT

No exemplo abaixo foi criado o relacionamento de Um para Muitos.  O lado Um tem a tabela exemplo tblClientes e o lado Muitos tem a tabela exemplo tblClienteContatos.  Observe que estou usando a conexão ADO para que funcionem as declarações ON UPDATE e ON DELETE.

currentproject.Connection.Execute "ALTER TABLE tblClienteContatos _ 
ADD CONSTRAINT rel FOREIGN KEY (idCliente) _ 
REFERENCES tblClientes (idCliente) _ 
ON UPDATE CASCADE ON DELETE CASCADE"

O nome rel (pode ser qualquer nome) serve para identificar o relacionamento e foi utilizado no código abaixo para excluir o relacionamento.  A declaração ON UPDATE CASCADE marca a opção "Propagar atualizações dos campos relacionados" e ON DELETE CASCADE marca a opção "Propagar exclusão dos registros relacionados".  Veja na imagem abaixo:

Usando Access - ADD CONSTRAINT

Para excluir o relacionamento, utilize o DROP CONSTRAINT:

currentdb.Execute "ALTER TABLE tblClienteContatos DROP CONSTRAINT rel"

Também é possível utilizar o CreateRelation do DAO para criar os relacionamentos.  Observe o código abaixo:

Dim bd As DAO.Database
Dim relNew As DAO.Relation

Set bd = CurrentDb
'---------------------------------------------------------------------------
'Define o relacionamento entre as tabelas, incluindo exclusões em cascata e
'atualizações em cascata
'---------------------------------------------------------------------------
Set relNew = bd.CreateRelation("rel", "tblClientes", "tblClienteContatos", _
dbRelationDeleteCascade + dbRelationUpdateCascade)
'--------------------------------
'Define os campos relacionados
'--------------------------------
relNew.Fields.Append relNew.CreateField("IdCliente") 
relNew.Fields!IdCliente.ForeignName = "IdCliente" 
'-----------------------
'Cria o relacionamento
'-----------------------
bd.Relations.Append relNew

Set bd = Nothing
Set relNew = Nothing

Segue abaixo, a tabela dos atributos que podemos configurar no CreateRelation:

Nome Atributo Valor Descrição
dbRelationDeleteCascade 4096 Exclusão em cascata
dbRelationDontEnforce 2 Relação não imposta (sem integridade referencial)
dbRelationInherited 4 Existe relação no banco de dados que contém as duas tabelas vinculadas
dbRelationLeft 16777216 Exibir LEFT JOIN como tipo de associação padrão
dbRelationRight 33554432 Exibir RIGHT JOIN como tipo de associação padrão
dbRelationUnique 1 Relação um para um
dbRelationUpdateCascade 256 Atualização em cascata

 

Bom estudo!


 

 


Não há comentário

Envie seu comentário: