Ir para conteúdo
Fórum Script Brasil
  • 0

PROBLEMA COM INNER JOIN


dragonsday

Pergunta

Boa tarde, pessoal!

Hoje já faz 4 dias que estou pelejando com um código aqui mas não consigo resolver.

Meu sistema é para uma clínica veterinária.

As tabelas envolvidas no erro são "tabela_produtoServico", "tabela_pedidoAoFornecedor" e "tabela_itensPedidoAoFornecedor".

A primeira possui todos os produtos cadastrados. A segunda, os pedidos feitos ao fornecedor e a última, todos os itens contidos em cada pedido realizado ao fornecedor.

Tenho um formulário onde o usuário poderá alterar uma ordem de pedido caso a mesma ainda não tenha sido finalizada.

No form, o usuário vai selecionar em um combobox, o nome do fornecedor para quem foi feito o pedido, num dataGridView abaixo, serão exibidos todos os pedidos já realizados a esse fornecedor selecionado e num segundo dataGridView mais abaixo, quando o usuário der dois cliques na linha correspondente ao pedido no primeiro dataGridView, nesse segundo serão listados todos os itens desse pedido em questão.

Voilà o problema: meu código sql INNER JOIN não está funcionando pois a chave estrangeira da tabela de itens que é a chave primaria da tabela de produtoServico não é descoberta, pois dá erro dizendo que ela não pertence a tabela.

Veja imagens das tabelas e relações:

11018879_893779157312060_178288626831649

1488054_893779147312061_3962308127910333

11043018_893779110645398_801397531843077

1512671_893779123978730_6404397673626317

Como podem perceber, a tabela de itens não possui chave primária mas isso não interfere pois já adicionei uma campo de chave primária pra ver se resolveria e o mesmo erro continuou.

Fiz também uma consulta com o mesmo código diretamente no access e o resultado foi satisfatório.

o código vb.net é o seguinte:

If dataGridPedidosAoFornecedor.Rows.Count > 0 Then
If dataGridPedidosAoFornecedor.CurrentRow.Cells(3).Value = "FINALIZADO" Then
MsgBox("O pedido selecionado já foi finalizado portanto, não é possível alterá-lo nem excluí-lo!", vbOKOnly, "PEDIDO JÁ FINALIZADO!")
Else
dataGridItensDoPedido.Rows.Clear()
conexao.ConnectionString = (caminho_banco)
conexao.Open()
Dim adaptadorItensPedido As New OleDbDataAdapter("SELECT * FROM tabela_itensPedidoAofornecedor INNER JOIN tabela_produtoServico ON tabela_itensPedidoAofornecedor.id_produtoServico=tabela_produtoServico.id_produtoServico WHERE id_pedidoAofornecedor=" & dataGridPedidosAoFornecedor.CurrentRow.Cells(0).Value, conexao)
Dim tabelaItensPedido As New DataTable
adaptadorItensPedido.Fill(tabelaItensPedido)

If tabelaItensPedido.Rows.Count > 0 Then



For i = 0 To tabelaItensPedido.Rows.Count - 1

dataGridItensDoPedido.Rows.Add(tabelaItensPedido.Rows(i).Item("id_produtoServico", tabelaItensPedido.Rows(i).Item("nome_produtoServico"), FormatCurrency(tabelaItensPedido.Rows(i).Item("valor_unidade").ToString, 2), tabelaItensPedido.Rows(i).Item("qtdd_pedidoAoFornecedor").ToString)

Next
End If
conexao.Close()
End If
End If

E finalmente, o print do erro:

11010515_893779120645397_366750309013768

Como podem ver, o erro ocorre quando tento preencher o dataGridView de itens do pedido e faço referencia ao campo "id_produtoServico" da tabela.

O que mais acho estranho que é a união das tabelas funciona pois quando coloco um valor qualquer no lugar da referencia ao campo "id_produtoServico" para preencher o dataGridView de itens, o código funciona e dentre outros campos, também exibe o nome do produto que é um valor existente somente na tabela_produtoServico.

Fico no aguardo por auxílio de alguém.

Obs.: O Access é 2007 e o Visual Studio é 2010.

Editado por dragonsday
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...