INNER JOIN

JABA 20/08/2009 15:13:23
#320441
Olá pessoal, gostaria de fazer um INNER JOIN com 4 tabelas no BD ACCESS, alguem poderia me ajudar nessa ae? vlw

Tentei o Seguinte:

TBtmp.Open [Ô]SELECT Medico.Codigo, Medico.Nome, Medico.Crm, Profissao.Tipo, Especialidade1.Especialidade, Especialidade2.Especialidade FROM Medico [Ô] & _
[Ô] INNER JOIN Profissao ON Medico.CodProfissao = Profissao.Codigo [Ô] & _
[Ô] INNER JOIN Especialidade as Especialidade1 ON Medico.CodEspecialidade1 = Especialidade1.Codigo [Ô] & _
[Ô] INNER JOIN Especialidade as Especialidade2 ON Medico.CodEspecialidade2 = Especialidade2.Codigo [Ô] & _
[Ô] WHERE Medico.codigo = [Ô] & CodMedico, Conexao.Abrir, adOpenStatic, adLockOptimistic

Não funcionou desta forma, tentei de outra forma:

TBtmp.Open [Ô]SELECT Medico.Codigo, Medico.Nome, Medico.Crm, Profissao.Tipo, Especialidade.Especialidade FROM Medico [Ô] & _
[Ô] INNER JOIN Profissao ON Medico.CodProfissao = Profissao.Codigo [Ô] & _
[Ô] INNER JOIN Especialidade ON Medico.CodEspecialidade1 = Especialidade.Codigo [Ô] & _
[Ô] WHERE Medico.codigo = [Ô] & CodMedico, Conexao.Abrir, adOpenStatic, adLockOptimistic

Desta forma Tambem nao funcionou. Aguem saberia me informar o que estou fazendo errado, ou me explicar como fazer um INNER JOIN com 4 tabelas no ACCESS? vlw
ASHKATCHUP 20/08/2009 15:38:51
#320442
Resposta escolhida
Cara, bem vindo ao inferno... Inner Join no Access é algo bonito de se ver.
Você tem que [Ô]fechar com parênteses[Ô] cada Inner.
Curte:

[Ô]SELECT Medico.Codigo, Medico.Nome, Medico.Crm, Profissao.Tipo, Especialidade1.Especialidade, Especialidade2.Especialidade FROM (((Medico [Ô] & _
[Ô] INNER JOIN Profissao ON Medico.CodProfissao = Profissao.Codigo) [Ô] & _
[Ô] INNER JOIN Especialidade as Especialidade1 ON Medico.CodEspecialidade1 = Especialidade1.Codigo )[Ô] & _
[Ô] INNER JOIN Especialidade as Especialidade2 ON Medico.CodEspecialidade2 = Especialidade2.Codigo )[Ô] & _
[Ô] WHERE Medico.codigo = [Ô] & CodMedico, Conexao.Abrir, adOpenStatic, adLockOptimistic


TECLA 20/08/2009 15:39:15
#320444
Realmente, INNER JOIN no ACCESS deve se ter uma certo [Ô]cuidado[Ô] para rodar.

Vamos lá! Primeiro vou mostrar um exemplo funcional:
SELECT Aluno.nome, Disciplina.descricao, Professor.nome, Turma.descricao
FROM ((Aluno INNER JOIN Disciplina ON Aluno.codigo = Disciplina.codigo)
INNER JOIN Professor ON Aluno.codigo = Professor.codigo)
INNER JOIN Turma ON Aluno.codigo = Turma.codigo;


Teste o código abaixo com as alterações:
TBtmp.Open [Ô]SELECT Medico.Codigo, Medico.Nome, Medico.Crm, Profissao.Tipo, Especialidade1.Especialidade, Especialidade2.Especialidade  ((FROM Medico [Ô] & _
[Ô] INNER JOIN Profissao ON Medico.CodProfissao = Profissao.Codigo) [Ô] & _
[Ô] INNER JOIN Especialidade as Especialidade1 ON Medico.CodEspecialidade1 = Especialidade1.Codigo) [Ô] & _
[Ô] INNER JOIN Especialidade as Especialidade2 ON Medico.CodEspecialidade2 = Especialidade2.Codigo [Ô] & _
[Ô] WHERE Medico.codigo = [Ô] & CodMedico, Conexao.Abrir, adOpenStatic, adLockOptimistic


Retorne o resultado aqui no tópico.
EWERTONESTACIO 20/08/2009 15:55:37
#320450
Fala Garoto...
Seguinte No Access vc recisa necessáriamente usar os PARENTESES senão .. XABÚ... dá erro

Como os caros colegas msotraram...... e nas datas o caracter # no inico e no final......

são algumas peculiariddes......



JABA 20/08/2009 17:07:21
#320457
vlw ae pessoal, mais uma vez o vbmania me ajudando, brigadão ae pelas dicas. um forte abraço.
Tópico encerrado , respostas não são mais permitidas