aprendiz93 0 Posted March 1, 2011 Report Share Posted March 1, 2011 Bom dia geral gostaria de uma help. Criei 2 combobox um de cidades e outro de estados. Gostaria de quando clicar no combobox trazer todas as cidades da bd e o mesmo para o de estados. Agradeço desde já pela ajuda. Link to post Share on other sites
carlosmorais 0 Posted March 1, 2011 Report Share Posted March 1, 2011 depois de fazeres a conexão com a BD, comboboxcidade.Items.Add(reader.Item("cidades")) Link to post Share on other sites
aprendiz93 0 Posted March 1, 2011 Author Report Share Posted March 1, 2011 hm Amigo me explica direito como ficaria, coloquei meu codigo assim: Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\Cidades.accdb;Persist Security Info=False;" ComboBox2.Items.Add(reader.Item("cidades")) End Sub End Class Link to post Share on other sites
aprendiz93 0 Posted March 1, 2011 Author Report Share Posted March 1, 2011 Estou no aguardo da resposta agradeço desde já pela ajuda. Link to post Share on other sites
Caça 17 Posted March 1, 2011 Report Share Posted March 1, 2011 Isso não faz nada.. Existe muita informação sobre isso aqui no fórum, faz uma pesquisa e depois coloca aqui as tuas duvidas Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
aprendiz93 0 Posted March 1, 2011 Author Report Share Posted March 1, 2011 Bom quer q eu pesquise nas 10000 páginas? Blzs Obrigado pela atenção. Link to post Share on other sites
Caça 17 Posted March 1, 2011 Report Share Posted March 1, 2011 Sem vontade própria não vais lá e também ninguém te consegue ajudar Pedro Martins Não respondo a duvidas por PM Link to post Share on other sites
Chaveca 0 Posted March 1, 2011 Report Share Posted March 1, 2011 Sem vontade própria não vais lá e também ninguém te consegue ajudar Tenho de concordar com o Caça... Ninguém vai pesquisar por ti... Mas para te dar uma ajudinha, tu só estas a fazer a conexão á base de dados, tens de fazer um comando sql que te devolva a tabela que tu pretendes e depois afectares a combobox com o resultado do mesmo Cumprimentos "Há 10 tipos de pessoas, as que sabem binário e as que não...""Run DOS, Run!" Link to post Share on other sites
Andrepereira9 4 Posted March 1, 2011 Report Share Posted March 1, 2011 boas aprendiz93 Com este código, carregas os estados para a combobox Dos estados, quando a form é carregada. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\Cidades.accdb;Persist Security Info=False;" Dim SQL As String = "Select * From 'NomedaTabela'" Dim connection As New OleDbConnection(ligação) Dim command As New OleDbCommand(SQL, connection) connection.Open() Dim leitor As OleDbDataReader = command.ExecuteReader() If leitor.HasRows Then While leitor.Read ComboBox1.Items.Add(leitor.Item("Estados")) End While End If connection.Close() connection = Nothing command = Nothing End Sub Com este código, ao seleccionar o estado, vai preencher a combobox das Cidades, com as cidades referentes ao Estado seleccionado Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged ComboBox2.Items.Clear() ComboBox2.Text = "" Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\Cidades.accdb;Persist Security Info=False;" Dim SQL As String = "Select * From Cidades where Estados = @estado" Dim connection As New OleDbConnection(ligação) Dim command As New OleDbCommand(SQL, connection) command.Parameters.Add("@estado", OleDbType.VarChar).Value = ComboBox1.Text connection.Open() Dim leitor As OleDbDataReader = command.ExecuteReader() If leitor.HasRows Then While leitor.Read ComboBox2.Items.Add(leitor.Item("Cidades")) End While End If connection.Close() connection = Nothing command = Nothing End Sub A informática chegou para resolver problemas que antes não existiam Quem ri por último é porque está conectado a 52 Kbs. Link to post Share on other sites
aprendiz93 0 Posted March 4, 2011 Author Report Share Posted March 4, 2011 Opa blzs? Seguinte criei um bd para cidades e outro bd para estados. Estou tentando abrir a bd de cidades no combobox2 q criei, fiz alterações no codigo mais n esta dando em nd compila normal mais n traz a bd de cidades no combobox2 estou postando meu código. Agradeço desde já pela ajuda. Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\sistema\sistema\Cidades.accdb;Persist Security Info=False;" Dim sintaxe As String = "Select * From Cidades where Cidades = @cidades" Dim conecção As New OleDbConnection(ligação) Dim command As New OleDbCommand(sintaxe, conecção) command.Parameters.Add("@cidades", OleDb.OleDbType.VarChar).Value = ComboBox2.Text conecção.Open() Dim leitor As OleDbDataReader = command.ExecuteReader() If leitor.HasRows Then While leitor.Read ComboBox2.Items.Add(leitor.Item("Cidades")) End While End If conecção.Close() sintaxe = Nothing conecção = Nothing Link to post Share on other sites
Andrepereira9 4 Posted March 4, 2011 Report Share Posted March 4, 2011 Boas 1º Não te faz nada, porque tu estas a mandar preencher o combobox, apenas quando alteras um valor Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged Para preencheres o combobox, assim que abres a form, mete o codigo dentro do evento Load da form Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 2º Estás a mandar pesquisar as cidades, através do nome de outra cidade?? Dim sintaxe As String = "Select * From Cidades where Cidades = @cidades" Para ir buscar todas as cidades, fica assim Dim sintaxe As String = "Select * From Cidades" Agora se quiseres ir buscar as cidades, consoante o Estado selecionado, tens que ter na BD, duas colunas, Uma com as cidades, e outra com o estado, e aí é que pesquisar pelas cidades, que tenham o estado selecionado, como estado na BD A informática chegou para resolver problemas que antes não existiam Quem ri por último é porque está conectado a 52 Kbs. Link to post Share on other sites
aprendiz93 0 Posted March 4, 2011 Author Report Share Posted March 4, 2011 Desculpa ta muito confuso isto seguinte vamos fazer passo a passo. Quero q quando clicar no comboBox2 carregue todas as cidades da bd Cidades.accdb certo?. Como seria o codigo? Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\sistema\sistema\Cidades.accdb;Persist Security Info=False;" Dim sintaxe As String = "Select * From Cidades" Dim conecção As New OleDbConnection(ligação) Dim command As New OleDbCommand(sintaxe, conecção) command.Parameters.Add("@ComboBox2", OleDb.OleDbType.VarChar).Value = ComboBox2.Text conecção.Open() Dim leitor As OleDbDataReader = command.ExecuteReader() If leitor.HasRows Then While leitor.Read ComboBox2.Items.Add(leitor.Item("Cidades")) End While End If conecção.Close() sintaxe = Nothing conecção = Nothing End Sub Seria mais ou menos Assim? Link to post Share on other sites
Andrepereira9 4 Posted March 4, 2011 Report Share Posted March 4, 2011 Se queres apenas carregar, quando se carrega na combobox, utiliza o evento. Click. O SelectedIndexChanged, só funciona, quando tem itens Private Sub ComboBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.Click ComboBox2.Items.Clear() ' Apaga os itens existentes. Previne a duplicação dos mesmos Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\sistema\sistema\Cidades.accdb;Persist Security Info=False;" Dim sintaxe As String = "Select * From Cidades" Dim conecção As New OleDbConnection(ligação) Dim command As New OleDbCommand(sintaxe, conecção) conecção.Open() Dim leitor As OleDbDataReader = command.ExecuteReader() If leitor.HasRows Then While leitor.Read ComboBox2.Items.Add(leitor.Item("Cidades")) End While End If conecção.Close() sintaxe = Nothing conecção = Nothing End Sub{/code] A informática chegou para resolver problemas que antes não existiam Quem ri por último é porque está conectado a 52 Kbs. Link to post Share on other sites
Peter 1 Posted March 9, 2011 Report Share Posted March 9, 2011 fiz algo parecido, pode ser que ajude. no load ele carrega todos os nomes e na funçao seguinte ao escolher um nome poe todos os apelidos referentes ao nome. Public Sub form1_Load() Handles MyBase.Load For Each ctrl As Control In Me.Controls Try If TypeOf (ctrl) Is CheckBox Then DirectCast(ctrl, CheckBox).Checked = False If TypeOf (ctrl) Is TextBox Then DirectCast(ctrl, TextBox).Clear() Catch ex As Exception 'catch the containers here End Try Next sSQL = "SELECT distinct nome FROM contactos" Dim cmd As New OleDbCommand(sSQL, con) con.Open() dr = cmd.ExecuteReader() Do While dr.Read() nomes.Items.Add(dr.Item("nome")) Loop con.Close() apelidos.Hide() apelidolb.Hide() End Sub Private Sub nomes_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nomes.TextChanged apelidolb.Show() apelidos.Show() sSQL = "select apelido from contactos where nome='" & nomes.Text & "'" Dim cmd As New OleDbCommand(sSQL, con) con.Open() dr = cmd.ExecuteReader() Do While dr.Read() apelidos.Text = dr.Item("apelido") apelidos.Items.Add(dr.Item("apelido")) Loop apelidos.Text = "" con.Close() End Sub Link to post Share on other sites
aprendiz93 0 Posted March 14, 2011 Author Report Share Posted March 14, 2011 Bom dia geral brigadão andrepereira9 e a todos que postaram consegui fazer oq queria. vlw mesmo abç. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now