NOME DO FORNECEDOR NO DATAGRID

ALMIR2014 07/02/2015 20:35:41
#444366
Pessoal boa noite.
Gostaria de saber se alguém poderia escrever uma consulta para mim, onde ao invés de carregar no dattagrid o código do fornecedor, carregar, de acordo com o código do fornecedor o nome do mesmo no data grid.
ex: tenho uma conta lançada na tabela contas a pagar, onde o fornecedor é gravado apenas o código carregado de um combo, quer dizer, o nome aparece no combo, mas o que se registra é o código.
e eu queria carregar o nome ao invés do código no datagrid
Campos da tabela Contas a Pagar
IDLanca - Documento - Data - Vencimento - Descricao - Valor - Situacao - Fornecedor(Neste Campo registra-se apenas o código)

Campos da Tabela fornecedor
IDFornecedor - RazaoSocial (somente estes dois campos pra não ficar muito cumprida a informação, pois são somente estes dois que, por enquanto estou usando)

A imagem segue anexa
Obrigado por enquanto
OMAR2011 07/02/2015 22:42:00
#444368
Este tipo de consulta é fácil de fazer, basta usar o Access.
Cria as tabelas e relaciona elas.
Agora basta cria a consulta com o Design da Consulta do Access.
é simples.
ALMIR2014 08/02/2015 00:01:09
#444369
Citação:

:
Este tipo de consulta é fácil de fazer, basta usar o Access.
Cria as tabelas e relaciona elas.
Agora basta cria a consulta com o Design da Consulta do Access.
é simples.


Ola
Fiz a consulta, mas não estou sabendo como carregar esta consulta no data grid
A consulta que funcionou como eu esperava:
[Ô]Select BContasPagar.IDLanca,TBContasPagar.Documento,TBContasPagar.Data,TBContasPagar.Descricao,TBContasPagar.Vencimento,TBContasPagar.Valor,TBContasPagar.Situacao,TBFornecedores.RazaoSocial FROM TBContasPagar INNER JOIN TBFornecedores ON TBContasPagar.Fornecedor = TBFornecedores.IDFornecedor[Ô]
Perfeita, está trazendo o nome do fornecedor certinho
Agora segue o código que uso para popular o datagrid com as informações da TBContasPagar

Using Con As OleDbConnection = GetConection()
Try
Con.Open()
Sql = [Ô]Select IDLanca,Documento,Data,Vencimento,Descricao,Valor,Situacao,Fornecedor From TBContasPagar[Ô]
Cmd = New OleDbCommand(Sql, Con)
LimpaControles(Me)
With dgvContasPagar
.Rows.Clear()
.Columns.Clear()
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.EditMode = DataGridViewEditMode.EditProgrammatically
.MultiSelect = False
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Dr = Cmd.ExecuteReader
.Columns.Add([Ô]IDLanca[Ô], [Ô]Nº Lanc.[Ô])
.Columns.Add([Ô]Documento[Ô], [Ô]Nº Docum.[Ô]).ToString()
.Columns.Add([Ô]Data[Ô], [Ô]Data[Ô]).ToString()
.Columns.Add([Ô]Descricao[Ô], [Ô]Descrição[Ô]).ToString()
.Columns.Add([Ô]Vencimento[Ô], [Ô]Vencimento[Ô]).ToString()
.Columns.Add([Ô]Valor[Ô], [Ô]Valor Documento[Ô]).ToString()
.Columns.Add(chk) : chk.HeaderText = [Ô]Situação[Ô]
.Columns.Add([Ô]Fornecedor[Ô], [Ô]Favorecido[Ô]).ToString()
pFormatGrid()
While Dr.Read()
.Rows.Add(Dr([Ô]IDLanca[Ô]), Dr([Ô]Documento[Ô]), Dr([Ô]Data[Ô]), Dr([Ô]Descricao[Ô]), Dr.Item([Ô]Vencimento[Ô]), _
Dr([Ô]Valor[Ô]), Dr([Ô]Situacao[Ô]), Dr([Ô]Fornecedor[Ô]))
End While
End With
pFormatGrid()
Catch ex As Exception
MsgBox([Ô]Não foram encontrados registros com este parâmetro.[Ô], MsgBoxStyle.Information, [Ô]Aviso[Ô])
Finally
Con.Dispose()
Dr.Dispose()
End Try
End Using
Se eu alterar o meu SQL para a consulta que está trazendo o nome do fornecedor ele vai direto pra mensagem de erro.
Ja quebrei a cabeça e o pior é que sei que é uma coisa tão fácil, mas pra quem sabe, como eu estou aprendendo, pra mim é hiper, super difícil.

Agradeço se alguem puder me dá uma luz

Obrigado.
ALMIR2014 08/02/2015 00:15:45
#444371
Amigos, obrigado pela atenção, mas eu consegui entender o que deveria ser feito
Ao invés de chamar esta sql para popular o datagrid Sql = [Ô]Select IDLanca,Documento,Data,Vencimento,Descricao,Valor,Situacao,Fornecedor From TBContasPagar[Ô], eu deveria alterar para chamar a consulta que fiz no access e agora funcionou perfeito.
A consulta ficou desta forma:
Sql = [Ô]Select IDLanca,Documento,Data,Vencimento,Descricao,Valor,Situacao,RazaoSocial From CSContasPagar[Ô]
Onde CSContasPagar é a consulta que está sendo feita
Assim que lanço uma nova conta ele atualiza meu datagrid.

Obrigado.
NICKOSOFT 08/02/2015 05:55:22
#444373
Resposta escolhida
Vc pode trabalhar c inner join na sua consulta, resolveria sem qq modificacao no banco de dados
Se precisar posto um codigo c ela pra vc ver
NICKOSOFT 08/02/2015 06:25:52
#444374
agora q vi q vc havia tentado até usar o inner join, veja se te clareia como vc estabelecer o retorno da consulta ao grid
  
Private Caminho As String = Application.StartupPath & [Ô]\Financeiro.sdf[Ô]
[ô]declarado em algum lugar

[ô]por exemplo no load do form
Dim connectionString As String = String.Format([Ô]DataSource=[Ô] & Caminho & [Ô];[Ô])
Dim cn As SqlCeConnection = New SqlCeConnection(connectionString)
cn.Open()
Dim da As New SqlCeDataAdapter([Ô]SELECT b.nome,c.agencia,c.conta,c.abertura,c.saldoinicial FROM contabancaria c Inner Join bancos b on c.idbanco=b.id[Ô], cn)
[ô]acredito q entender a consulta vc já entendeu como elaborar certo?
Dim ds As DataSet = Nothing
ds = New DataSet()
da.Fill(ds)

DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
[ô]essa ultima linha so pra deixar as colunas sem cortar nada das informações....o X da questão esta na linha anterior, onde define o DS do grid
ALMIR2014 08/02/2015 19:05:12
#444383
Citação:

:
agora q vi q vc havia tentado até usar o inner join, veja se te clareia como vc estabelecer o retorno da consulta ao grid

  
Private Caminho As String = Application.StartupPath & [Ô]Financeiro.sdf[Ô]
[ô]declarado em algum lugar

[ô]por exemplo no load do form
Dim connectionString As String = String.Format([Ô]DataSource=[Ô] & Caminho & [Ô];[Ô])
Dim cn As SqlCeConnection = New SqlCeConnection(connectionString)
cn.Open()
Dim da As New SqlCeDataAdapter([Ô]SELECT b.nome,c.agencia,c.conta,c.abertura,c.saldoinicial FROM contabancaria c Inner Join bancos b on c.idbanco=b.id[Ô], cn)
[ô]acredito q entender a consulta vc já entendeu como elaborar certo?
Dim ds As DataSet = Nothing
ds = New DataSet()
da.Fill(ds)

DataGridView1.DataSource = ds.Tables(0)
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
[ô]essa ultima linha so pra deixar as colunas sem cortar nada das informações....o X da questão esta na linha anterior, onde define o DS do grid


Perfeito Amigo. Gostaria de trocar uma ideia em particular com você se possível. meu Whats 6181592478
NICKOSOFT 08/02/2015 21:22:15
#444387
Blz, te adicionei, mandei uma msg
Tópico encerrado , respostas não são mais permitidas