Ir para o conteúdo
zaion35

pesquisar em tabelas diferentes

Mensagens Recomendadas

zaion35    0
zaion35

Boa noite, preciso de ajuda em algo não tão complicado mas que não estou conseguindo resolver, preciso recuperar campos de duas tabelas diferentes e exibir estes dados em por exemplo dois textboxes, recuperar os dados em uma tabela e exibi-los em textboxes eu consegui, mas dados de duas tabelas não consegui, aguardo :biggrin:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

Dim turma_A As New OleDbCommand()
turma_A.CommandText = "SELECT Turma_notaAV1.Código,Nome FROM Turma_notaAV1 INNER JOIN Turma_notaAV2 ON WHERE Turma_notaAV1.Código=Turma_notaAV2.Código '" & ComboBox1.Text & "'"

da a mensagem de erro na clausula FROM, o que esta errado?

EDIT: Geshi adicionado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Caça    24
Caça

Não estás a especificar nada na clausula 'ON'

SELECT Turma_notaAV1.Código,Nome FROM Turma_notaAV1 INNER JOIN Turma_notaAV2 ON Turma_notaAV1.Campo_a_Relacionar = Turma_notaAV2.Campo_a_Relacionar

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Caça    24
Caça

Já expliquei em cima, tens

... FROM Turma_notaAV1 INNER JOIN Turma_notaAV2 ON WHERE ...

e deves ter tipo isto

... FROM Turma_notaAV1 INNER JOIN Turma_notaAV2 ON Turma_notaAV1.Campo_a_Relacionar = Turma_notaAV2.Campo_a_Relacionar WHERE ...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

turma_A.CommandText = "SELECT Turma_notaAV1.Código,Turma_notaAV1.Nome FROM Turma_notaAV1 INNER JOIN Turma_notaAV2 ON  Turma_notaAV1.Código=Turma_notaAV2.Código WHERE '" & NomeTextBox.Text & "'"

esse é o codigo e deu certo, mas...quando executado aparece uma caixa de mensagem escrito "Turma_notaAV1", e depois carrega os dados, qual é o erro?

:wallbash:

EDIT: Geshi adicionado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

turma_A.CommandText = "SELECT Turma_notaAV1.Código,Turma_notaAV1.Nome FROM Turma_notaAV1 , Turma_notaAV2   WHERE Turma_notaAV1.Serie=   '" & TextBox1.Text & "'"

no fianl ficou assim, mas deu a mensagem que não existem dados para a linha ou coluna, preciso muito resolver isso

:cheesygrin:

EDIT: Geshi adicionado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

não pode ser feito o relacionamento atraves da clausula select?, fora isso não, mas como postei agora ha pouco é feita a consulta nas duas tabelas, mas aparece antes uma caixa de mensagem exibindo o nome da primeira tabela e depois carrega os dados que procuro

:cheesygrin:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Caça    24
Caça

Pode mas se não existe nenhuma relação entre elas nunca te vai trazer registos. Se não existe nenhuma relação entre elas, deves efectuar as consultas separadas.

Em relação a mensagem, mostra o teu código.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

turma_A.CommandText = "SELECT Turma_notaAV1.Código,Turma_notaAV1.Nome FROM Turma_notaAV1 INNER JOIN Turma_notaAV2 ON  Turma_notaAV1.Código=Turma_notaAV2.Código WHERE '" & NomeTextBox.Text & "'"

foi que postei acima

EDIT: Geshi adicionado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

 Dim con_turma_notaAV1 As New OleDbConnection
        con_turma_notaAV1.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\josimar\Documents\Visual Studio 2008\Projects\prototipo\escola.accdb'"
        Try
            con_turma_notaAV1.Open()

            Dim turma_A As New OleDbCommand()
            turma_A.CommandText = "SELECT Turma_notaAV1.Código,Turma_notaAV1.Nome,Turma_notaAV1.Turma FROM Turma_notaAV1 INNER JOIN  Turma_notaAV2 ON   Turma_notaAV1.Código=Turma_notaAV2.Código  WHERE   '" & TextBox1.Text & "'"
            turma_A.CommandType = CommandType.Text

            turma_A.Connection = con_turma_notaAV1
            Dim leitor As OleDbDataReader
            leitor = turma_A.ExecuteReader()
            leitor.Read()
            MatriculaTextBox.Text = leitor("Código")
            NomeTextBox.Text = leitor("Nome")
            TextBox1.Text = leitor("Código")
            TextBox2.Text = leitor("Serie")
            codcli = leitor("Código")
            leitor.Close()

EDIT: Geshi adicionado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zaion35    0
zaion35

consegui resolver, mas percebi que em um dos campos estava vazio e a consulta trouxe somente um dos campo da outra tabela, explico uma das tabelas tinha o campo turma vazio e a outra tinha o campo turma "A", trouxe somente esse campo isso é normal ou devia dar alguma mensagem de erro?

:hmm:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Caça    24
Caça

Apesar de estares a fazer a consulta as duas tabelas, só estás a chamar dados de uma das tabelas

Turma_notaAV1.Código,Turma_notaAV1.Nome,Turma_notaAV1.Turma

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Caça    24
Caça

Tens de chamar também os campos da outra tabela, tipo

Turma_notaAV1.Código AS Código_AV1, Turma_notaAV1.Nome AS Nome_AV1, Turma_notaAV1.Turma AS Turma_AV1,
Turma_notaAV2.Código AS Código_AV2, Turma_notaAV2.Nome AS Nome_AV2, Turma_notaAV1.Turma AS Turma_AV2

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade