Jump to content
Fórum Script Brasil
  • 0

PROBLEMA COM INNER JOIN


dragonsday

Question

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.

Edited by dragonsday
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...