INNER JOIN
OMAR, de maneira nenhuma, não quero que você entenda assim, a amizade do pessoal do fórum é um privilégio que eu consegui e não quero perder de jeito nenhum, mas pelo que eu entendi que você disse aqui...
deu a entender que eu quero o código pronto só pra copiar e colar, mas tudo bem, não vamos desviar o foco do tópico, muito obrigado pela ajuda que com certeza você já me ajudou muito aqui no fórum, obrigado mais uma vez e volto a dizer que...
Vamos ver se eu estou fazendo certo, eu preciso mostrar uma coisa meio estranha, pois tanto uma marca pode ir em varias assistencias, quanto uma assistencia pode ir varias marcas, é isso que eu estou me perdendo, segue uma foto das tabelas, obrigado a todos desde já.. abraços.
Citação:Este é o meu.Se você copiar e colar
no seu projeto vai dar erro porque os campos são diferentes
deu a entender que eu quero o código pronto só pra copiar e colar, mas tudo bem, não vamos desviar o foco do tópico, muito obrigado pela ajuda que com certeza você já me ajudou muito aqui no fórum, obrigado mais uma vez e volto a dizer que...
Vamos ver se eu estou fazendo certo, eu preciso mostrar uma coisa meio estranha, pois tanto uma marca pode ir em varias assistencias, quanto uma assistencia pode ir varias marcas, é isso que eu estou me perdendo, segue uma foto das tabelas, obrigado a todos desde já.. abraços.
Isso,desde quando li as primeiras mensagens imaginei sendo de carros.Depois das imagens vi que
são de celular.Gastar bastante raciocÃnio é o que terá de fazer.Se você trabalha em algo assim
acho a melhor forma de fazer esse sistema é observar dentro da empresa com funciona para
personalizar.Tem um leque de várias opções,várias marcas e modelos.Prepara te para o
desafio.Vai gastar um bom tempo para ficar legal.Já imaginou quantos modelos cada Marca tem?
Inté.
são de celular.Gastar bastante raciocÃnio é o que terá de fazer.Se você trabalha em algo assim
acho a melhor forma de fazer esse sistema é observar dentro da empresa com funciona para
personalizar.Tem um leque de várias opções,várias marcas e modelos.Prepara te para o
desafio.Vai gastar um bom tempo para ficar legal.Já imaginou quantos modelos cada Marca tem?
Inté.
Acho que é falta de parênteses.
Hoje eu uso o MySQL. Porém, outro dia precisei criar uma base de dados ACCESS para um sistema que já existia e usava MySQL. O sistema era igual, o código idêntico. Só mudava a base. As instruções com INNER JOIN que funcionavam sem erro no MySQL, geravam erro com ACCESS por causa da falta de parênteses.
Se for isso, tenta assim:
Vê se é isso.
[]'s
Hoje eu uso o MySQL. Porém, outro dia precisei criar uma base de dados ACCESS para um sistema que já existia e usava MySQL. O sistema era igual, o código idêntico. Só mudava a base. As instruções com INNER JOIN que funcionavam sem erro no MySQL, geravam erro com ACCESS por causa da falta de parênteses.
Se for isso, tenta assim:
sSQL = [Ô]SELECT * FROM (autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca WHERE codassis = [Ô] & txtcodassis.Text & [Ô][Ô]
Vê se é isso.
[]'s
eu estou achando estranho dar erro nesta query
lógico sendo access então faltou o apostrofo
faz o teste de novo ai adilso
sSQL = [Ô]SELECT marcas.*,autorizadas.*, assistencias.* FROM marcas INNER JOIN (autorizadas INNER JOIN assitencias ON autorizadas.codassis = assistencias.codassis) ON autorizadas.codmarca = marcas.codmarca WHERE autorizadas.codassis = [ô][Ô] & txtcodassis.Text & [Ô][ô][Ô]
lógico sendo access então faltou o apostrofo
faz o teste de novo ai adilso
Gente, deu erro novamente, vou postar um exemplo do sistema pra alguém que se interessar e tiver disponibilidade dar uma olhada.
Do FrmConsulta.
Private Sub cmdbuscar_Click()
Dim SsQl As String
Set rs = New ADODB.Recordset
[ô] 1ª SsQl = [Ô]SELECT Autorizadas.codassis,Assistencias.Nome,Autorizadas.codmarca, Marcas.Marca FROM Autorizadas,Assistencias,Marcas WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô] And Assistencias.codassis = Autorizadas.codassis And Marcas.CodMarca = Autorizadas.codmarca [Ô]
[ô] 2ª SsQl = [Ô]SELECT marcas.*,autorizadas.*, assistencias.* FROM ((marcas INNER JOIN autorizadas ON autorizadas.codmarca = marcas.CodMarca) INNER JOIN Assistencias On autorizadas.codassis = assistencias.codassis) WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô][Ô]
[ô] 2ª SsQl = [Ô]SELECT marcas.*,autorizadas.*, assistencias.* FROM ((autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca) WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô][Ô] [ô]Correto
SsQl = [Ô]SELECT * FROM ((autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca)Where autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô];[Ô] [ô]Correto sql
Set rs = Conexao.Execute(SsQl)
Do While Not rs.EOF = True
[ô]gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]codmarca[Ô]) & vbTab & rs([Ô]marca[Ô]) & vbTab & rs([Ô]Nome[Ô]) [ô]Este é para primeira sSQl
gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]Autorizadas.codmarca[Ô]) & vbTab & rs([Ô]marca[Ô]) [ô]Este é para Segunda sSQl
rs.MoveNext
Loop
End Sub
Acredito que está tabela AUTORIZADAS é apenas Teste.
Private Sub cmdbuscar_Click()
Dim SsQl As String
Set rs = New ADODB.Recordset
[ô] 1ª SsQl = [Ô]SELECT Autorizadas.codassis,Assistencias.Nome,Autorizadas.codmarca, Marcas.Marca FROM Autorizadas,Assistencias,Marcas WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô] And Assistencias.codassis = Autorizadas.codassis And Marcas.CodMarca = Autorizadas.codmarca [Ô]
[ô] 2ª SsQl = [Ô]SELECT marcas.*,autorizadas.*, assistencias.* FROM ((marcas INNER JOIN autorizadas ON autorizadas.codmarca = marcas.CodMarca) INNER JOIN Assistencias On autorizadas.codassis = assistencias.codassis) WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô][Ô]
[ô] 2ª SsQl = [Ô]SELECT marcas.*,autorizadas.*, assistencias.* FROM ((autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca) WHERE autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô][Ô] [ô]Correto
SsQl = [Ô]SELECT * FROM ((autorizadas INNER JOIN assistencias ON autorizadas.codassis = assistencias.codassis) INNER JOIN marcas ON autorizadas.codmarca = marcas.codmarca)Where autorizadas.codassis = [Ô] & txtcodassis.Text & [Ô];[Ô] [ô]Correto sql
Set rs = Conexao.Execute(SsQl)
Do While Not rs.EOF = True
[ô]gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]codmarca[Ô]) & vbTab & rs([Ô]marca[Ô]) & vbTab & rs([Ô]Nome[Ô]) [ô]Este é para primeira sSQl
gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]Autorizadas.codmarca[Ô]) & vbTab & rs([Ô]marca[Ô]) [ô]Este é para Segunda sSQl
rs.MoveNext
Loop
End Sub
Acredito que está tabela AUTORIZADAS é apenas Teste.
Cara, deu certinho, e pelo que vi e acho que entendi, o erro estava na hora de adicionar no grid, pois não sei se você notou, eu tinha uma consulta identica a que você colocou nova, creio que seja até você que tenha passado, mas, então, vi que aqui..
na primeira coluna do grid, você colocou a tabela e campo, e nos demais já funcionou sem colocar, você sabe me dizer porque? Só pra eu entender, ficou show.
gridmarca.AddItem [Ô][Ô] & vbTab & rs([Ô]Autorizadas.codmarca[Ô]) & vbTab & rs([Ô]marca[Ô]) & vbTab & rs([Ô]telefone[Ô]) [ô]Este é para Segunda sSQl
na primeira coluna do grid, você colocou a tabela e campo, e nos demais já funcionou sem colocar, você sabe me dizer porque? Só pra eu entender, ficou show.
A, e queria saber também porque o
Set rs = New ADODB.Recordset
antes da consulta, pois testei sem ele e funcionou perfeitamente, obrigado pela ajuda.
Verificar
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=186015
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=186015
Uma forma de consulta para verificar e testar projetos sempre usei o site do Famigerado MACORATTI ,VBWEB E VBMANIA.
Olhe este.
http://www.macoratti.net/ado_vbas.htm
e mais.
Olhe este.
http://www.macoratti.net/ado_vbas.htm
e mais.
Tópico encerrado , respostas não são mais permitidas