USANDO O COMBOBOX

PACIFICO 22/03/2012 16:14:53
#397970
Help me!
Estou usando o VB 2008 com SQL Server.
Tenho um combobox Loja e um outro combobox Vendedores
Gostaria de buscar o vendedor conforme a loja selecionada.

Tabela: SA3010
Campos: Código (a3_cod) e Nome (a3_nome)

Tenho que vincular da seguinte forma:
Seleciono a Loja numa combo e aparece os vendedores dela;
Seleciono os vendedor e quando clicar no botão, listar os clientes aniversariantes. (já consigo listar os aniversariantes, conforme ajuda dos colegas do VBMania)

Desde já, agradeço pela ajuda.
PHOENIX209E 22/03/2012 19:54:31
#398005
Resposta escolhida
Vai ser mais ou menos assim:

No evento lostfocus do combobox loja voce coloca isso:

using comando as new sqlcommand([Ô]SELECT NOME_FUNCIONARIO FROM TABELA_FUNCIONARIO WHERE CODIGO_LOJA = (SELECT CODIGO_LOJA FROM TABELA_LOJA [Ô] _
& [Ô]WHERE NOME_LOJA = [ô][Ô] & COMBOBOX_LOJA.TEXT & [Ô][ô])[Ô],CONEXAO)
Using oDR as DataReader = Comando.executeReader()
If(oDR.hasRow) then
While oDR.Read()
COMBOBOX_FUNCIONARIO.Items.Add(oDR.GetString(0))
Loop
Else
msgbox([Ô]Erro ao obteros dados[Ô])
End If
End Using
End Using

Vai adaptando o controle e o select de acordo com os campos da sua seleção.
O segredo desse retorno é uma subquery.
TECLA 22/03/2012 20:33:23
#398006
O exemplo abaixo foi escrito em linguagem C# com LINQ to SQL, mas a idéia dele serve para você construir uma solução em VB.NET.


http://sites.google.com/site/programacaoonline/family-blog/c/alimentar-dois-controles-combobox-com-linq-to-sql-em-c
PACIFICO 24/03/2012 10:28:21
#398136
Nada resolvido! Alguma ajuda aí?
ROBIU 24/03/2012 20:25:50
#398172
Você consegue carregar a combo Loja? Como vocÊ está fazendo? Que evento você usa para carregar a combobox?
Depois que carrega a combobox Loja, Carrega a outra combo fazendo um select
PHOENIX209E 25/03/2012 00:35:13
#398185
voce tentou a minha solução?
se sim e deu erro,qual foi?
Creio que oque eu passei pra voce,resolve o seu problema
PACIFICO 29/03/2012 12:06:00
#398669
Desculpa a minha ignorância amigos, ainda não consegui fazer funcionar. Abaixo, segue a minha linha de programação

Imports System.ComponentModel
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Data
-----------------------------------------------------------------------------------
Public Class Form1
Dim sql As String
Dim con As New SqlConnection
[ô]con.ConnectionString = [Ô]Data Source=atisource;Initial Catalog=BillingSys;Persist Security Info=True;User ID=sa;Password=D!N!Z123[Ô]
Dim connStr As String = [Ô] Data Source=##.#.#.##;Initial Catalog=PRODUCAO;User Id=**;Password=******;[Ô]
-----------------------------------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[ô]define a string de conexao

Dim connStr As String = [Ô] Data Source=##.#.#.##;Initial Catalog=PRODUCAO;User Id=**;Password=*******;[Ô]


[ô]define a instrução sql

sql = [Ô]SELECT a1_cod, a1_nome,A1_TEL,A1_XCEL, RIGHT(RTRIM(a1_dtnasc), 2) + [ô]/[ô] + SUBSTRING(a1_dtnasc, 5, 2) + [ô]/[ô] + LEFT(a1_dtnasc, 4) AS NewData [Ô]
sql = sql & [Ô] FROM sa1010 where Day(a1_dtnasc)=[ô][Ô] & Mid(CDataInicial.Text, 1, 2) & [Ô][ô] and Month(a1_dtnasc)=[ô][Ô] & Mid(CDataFinal.Text, 4, 2) & [Ô][ô][Ô]

[ô]define os objetos connecton, command e dataadapter

Dim conn As SqlConnection = New SqlConnection(connStr)

Dim comm As SqlCommand = New SqlCommand(sql, conn)

Dim dataadapter As SqlDataAdapter = New SqlDataAdapter(comm)

[ô]define o dataset

Dim ds As DataSet = New DataSet()


Try

[ô]---abre a conexao---

conn.Open()

[ô]---preenche o dataset---

dataadapter.Fill(ds, [Ô]sa1010[Ô])

[ô]---fecha a conexao---

conn.Close()

[ô]---vincula o dataset ao DataGridView---

DataGridView1.DataSource = ds [ô]ou ds.tables(0)

[ô]---define a tabela a ser exibida---

DataGridView1.DataMember = [Ô]sa1010[Ô]

Catch ex As Exception

MsgBox(ex.Message)

End Try

End Sub
[txt-color=#0000f0] [/txt-color]

Dessa forma, eu consigo colocar entre data no meu formulário e visualizar numa grid os aniversariantes.
PACIFICO 29/03/2012 12:37:55
#398675
Salve Salve amigos do VBMania, consegui fazer da seguinte forma:

Dim connStr As String = [Ô] Data Source=**.*.*.**;Initial Catalog=PRODUCAO;User Id=****;Password=********;[Ô]
Dim strSQL As String = [Ô]SELECT DISTINCT L1_FILIAL FROM sl1010[Ô]
Dim da As New System.Data.SqlClient.SqlDataAdapter(strSQL, connStr)
Dim ds As New DataSet
da.Fill(ds, [Ô]sl1010[Ô])

With Me.CboLoja
.DataSource = ds.Tables([Ô]sl1010[Ô])
.DisplayMember = [Ô]l1_filial[Ô]
.ValueMember = [Ô]l1_filial[Ô]
.SelectedIndex = 0
End With

Agradeço pela ajuda daqueles que dispuseram em me ajudar.
PACIFICO 29/03/2012 15:33:59
#398701
Vou usar um exemplo mais simples para vcs me ajudarem.

Pessoal, eu tenho as seguintes tabelas:
Tb_Clientes - campos:(idcli, idcliente)
Tb_Vendedores - campos(idven, vendedor)
Tb_Vendas - campos (idcli, idcliente, idven, vendedor)

Gostaria do apoio para fazer da seguinte forma: usar um combo para selecionar o vendedor da tabela Tbl_Clientes e na próxima combo, aparecer o nome do cliente deste vendedor.

Grato pela ajuda!
PHOENIX209E 30/03/2012 00:54:51
#398738
Tente isso:

using comando as new sqlcommand([Ô]SELECT A.IDCLIENTE FROM TB_CLIENTES A INNER JOIN TB_VENDAS B ON A.IDCLI = B.IDCLI [Ô] _
& [Ô]INNER JOIN TB_VENDEDORES C ON C.IDVEN = B.IDVEN ORDER BY A.IDCLIENTE[Ô],CONEXAO)

Using oDR as DataReader = Comando.executeReader()
If(oDR.hasRow) then
While oDR.Read()
COMBOBOX_FUNCIONARIO.Items.Add(oDR.GetString(0))
Loop
Else
msgbox([Ô]Erro ao obteros dados[Ô])
End If
End Using
End Using
PACIFICO 30/03/2012 11:03:01
#398771
PHOENIX209E, Obrigado pela atenção!
Eu coloquei esta linha no Button Click da Combo Vendedores.
Só que aparece estes dois erros:
hasRow[ô] is not a member of [ô]System.Data.SqlClient.SqlDataReader[ô]

[ô]Loop[ô] must be preceded by a matching [ô]Do[ô]
Página 1 de 2 [20 registro(s)]
Tópico encerrado , respostas não são mais permitidas