RELA?ÃO ENTRE TABELAS

FULANO104 24/09/2016 10:38:28
#467415
Olá, pessoal. Gostaria de uma ajudinha.
Utilizando VB6 e DAO, criei um banco de dados Access com duas tabelas: tblUsers e tblSecurity.
Nas duas há um campo texto chamado [Ô]users[Ô], com tamanho definido para 50 caracteres, sendo que na tblUsers ele também é um índice único.
Quando tento criar uma relação entre as tabelas usando o comando:
SQL = [Ô]ALTER TABLE tblCadUsers ADD CONSTRAINT relUsers FOREIGN KEY (user) REFERENCES tblSecurity (user) ON DELETE CASCADE[Ô]
db.Execute SQL, dbFailOnError
Recebo a mensagem de Run-time error [ô]3289[ô]: Erro de sintaxe na cláusula CONSTRAINT.
Alguém poderia me ajudar?
Obrigado.
KERPLUNK 26/09/2016 18:42:42
#467542
Resposta escolhida
O que você quer fazer é adicionar uma chave estrangeira simplesmente, isso? Se for, é mais ou menos assim:
ALTER TABLE tblCadUses
ADD CONSTRAINT FK_relUsers
FOREIGN KEY ([txt-color=#e80000]CAMPO_ID_DE_TBLCADUSES[/txt-color]) REFERENCES
tblSecurity ([txt-color=#e80000]CAMPO_ID_DE_tblSecurity[/txt-color])
ON DELETE CASCADE

Obviamente, substitua os nomes de campos em vermelho pelos nomes dos campos nas respectivas tabelas.
FULANO104 27/09/2016 10:13:18
#467589
Citação:

:
O que você quer fazer é adicionar uma chave estrangeira simplesmente, isso? Se for, é mais ou menos assim:
ALTER TABLE tblCadUses
ADD CONSTRAINT FK_relUsers
FOREIGN KEY ([txt-color=#e80000]CAMPO_ID_DE_TBLCADUSES[/txt-color]) REFERENCES
tblSecurity ([txt-color=#e80000]CAMPO_ID_DE_tblSecurity[/txt-color])
ON DELETE CASCADE

Obviamente, substitua os nomes de campos em vermelho pelos nomes dos campos nas respectivas tabelas.



Obrigado pela resposta, KERPLUNK, mas continua dando o mesmo erro!
Encontrei a resposta hoje depois de vasculhar a net...rsrs. Era só um detalhe: o DAO não aceita esse tipo de Restrições de integridade referencial em cascata. Somente com ADO é possível!
Tópico encerrado , respostas não são mais permitidas