INNER JOIN

CAIO.FR.SP 04/12/2012 08:42:57
#415363
sSQL = [Ô]SELECT * FROM ((autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca)[Ô]
OMAR2011 04/12/2012 08:44:57
#415364
Como eu também tive como tenho dificuldades com Inner join,uso de forma mais simples como este exemplo.

sSql = [Ô]SELECT Autorizadas.CodAut,Autorizadas.codassis,Assistencias.NomeAssi,Autorizadas.codmarca, Marcas.NomeMar FROM Autorizadas,Assistencias,Marcas WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô] And Assistencias.codassis = Autorizadas.codassis And Marcas.CodMarca = Autorizadas.codmarca [Ô]
Set rs = oConCadC.Execute(sSql)
[ô]Set DataGrid1.DataSource = rs
Do While Not rs.EOF = True
gridmarca.AddItem [Ô][Ô] & rs(3) & vbTab & rs(4)
rs.MoveNext
Loop

Este teste foi feito em Access 2003.
Valeu.
JOEYRFS 04/12/2012 08:45:47
#415365
Bom dia.
Se ainda estiver com problemas com o JOIN.
Defina quais campos vc precisa puxar das tabelas, não deixa com * .
E se estiver com campos com o mesmo nome, defina Alias para eles com o AS.
OMAR2011 04/12/2012 09:34:12
#415372
O caio [txt-color=#e80000]CAIO_FR_SP[/txt-color] ARREBENTOU.
Teste aqui com Access e deu certo.
Valeu maluco.
ADILSOO 04/12/2012 20:29:01
#415452
Cara, até deu certo com apenas o campo da tabela, agora quando tento pegar o nome da marca que está em outra tabela, ele não consegue encontrar o campo...
 sSQL = [Ô]SELECT * FROM ((autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca)[Ô]

Set rs = Conexao.Execute(sSQL)

Do While Not rs.EOF = True
gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]autorizadas.marca[Ô]) & vbTab & rs([Ô]marcas.marca[Ô])
rs.MoveNext
Loop
OMAR2011 04/12/2012 22:31:48
#415457
Tente ai mudando de acordo sua tabela.
Este é o meu teste.

sSql = [Ô]SELECT Autorizadas.CodAut, Autorizadas.codassis, Assistencias.NomeAssi, Autorizadas.codmarca, Marcas.NomeMar FROM (( autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca) WHERE autorizadas.codassis = [Ô] & txtCodassis.Text & [Ô];[Ô]

Set rs = Conexao.Execute(sSQL)
Do While Not rs.EOF = True
[ô]gridmarca.AddItem [Ô][Ô] & rs(0) & vbTab & rs(4) & vbTab & rs(5)
gridmarca.AddItem [Ô][Ô] & rs([Ô]CodAut[Ô]) & vbTab & rs([Ô]NomeMar[Ô])
rs.MoveNext
Loop
Valeu
ADILSOO 05/12/2012 10:51:24
#415473
E deu certo com voce assim? Pois quando coloquei assim no meu apresenta o erro dizendo que não foi encontrado o campo, mas dessa forma já tentei, mas tento novamente a noite, agora estou no trabaljo mas a noite eu tento novamente, ###o access, só da trabalho viu,
OMAR2011 05/12/2012 12:08:37
#415476
Cara,coloque seu banco para baixar e fazer o teste ou escreva as tabelas com seus referidos campos.
O campo não encontrado é porque na sua tabela não tem este campo.
Terá que modificar a consulta acima com os seus campos.Este é o meu.Se você copiar e colar
no seu projeto vai dar erro porque os campos são diferentes.Então,este é um exemplo e basta
modificar com os campos da suas tabelas.
ADILSOO 05/12/2012 13:28:41
#415479
Caro amigo OMAR2011, creio eu que quem não esteja entendendo aqui é voce, pois não sou como esses que só querem copiar e colar códigos daqui do forum, como disse, eu estou colocando dessa exata maneira que o amigo Marcelo indicou, e funciona perfeitamente, oque não funciona é do jeito que voce indicou, agora, sem querer ofender, se voce não esta com vontade de explicar ou nem sabe do que está falando, peco por favor que nem responda, me desculpa se fui grosso, mas do jeito que voce mencionou voce praticamente me disse que sou uma pessoa que não se importa com o seu trabalho e que espera vir tudo na mão e o código pronto pra finalizar seu projeto, e eu com certeza não sou assim, mesmo assim peco desculpas mais uma vez e espero contar com sua colaboracão, abracos.
OMAR2011 05/12/2012 15:28:34
#415489
Meu caro ADILSOO,acho que você apelou.Copiar e colar o código para fazer um teste não tem nada a ver.
Códigos do TREZE copiei e colei e fiz um teste com ACCESS e deu errado.Código que deu certo aqui no meu teste
foi do [txt-color=#e80000]CAIO_FR_SP[/txt-color].Pelo erro mencionado é erro de Campo na tabela que não existe,deduzi
que você copiou e colou para verificar.Isto é imterpretação sua.O grande problema de BRASILEIRO é ser sentimental
demais,não pode falar nada que ofende.Peguei,copiei,colei e aprendi fazendo dessa forma com ajuda do pessoal do
forum e de outros.Continuo a mesma pessoa.Não esqueço do dia que pede ajuda e obtive a seguinte resposta.

Não vou te dar o peixe,mas vou ensinar você pescar.

Nem por isso fiquei magoado com a pessoa e agradeci a ela por fazer isso por mim.



Página 2 de 4 [33 registro(s)]
Tópico encerrado , respostas não são mais permitidas