Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flaviojr

Novonaera - ComboBox ou DataCombo

Recommended Posts

Bom dia pessoal estou começando a aprender vb e mysql e estou com a seguinte duvida qual o melhor controle pra se trabalhar com inclusão, exclusão de registros atualização e navegação no Banco de Dados. Seria um ComboBox ou DataCombo?Desde já agradeço a atenção de todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, mas acho que não entendi direito qual sua necessidade, por se for somente para essas atividades que falou, acho que é melhor utilizar uma TextBox, ou melhor, várias TextBox né.. hehehe...Dá uma explicada melhor no seu problema, vamos ver se podemos ajudar mais..Até Mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para quem está a iniciar v.b , o mais facil e melhor é por o comboBox

Muito Obrigado pela ajuda Estou querendo utilizar o combobox pois pretendo fazer com que ao clicar na seta e aparecerem os nomes associados ao campo, e ao clicar em um nome do cadastro na combo ele carregue os dados e ainda assim eu possa realizar todos os procedimentos citados através dessa combo, não sei se vai dar certo afinal está dicifil pra fazer aparecer o nome, imagina pra poder inserir e editar a combo.AtenciosamenteFlavio Jr.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... então use um combo mesmo que ficará melhor...Você está usando a conexão de que forma? ADO ou DAO?Caso seja através de ADO, para carregar a combo use o seguinte, fica fácil:

private sub form()dim cn as ADODB.connectiondim rs as ADODB.record setset cn = new ADOBD.connectioncn.openstring = "aqui vão os dados de sua conexão, que não sei qual banco de dados está usando"cn.openset rs = new ADODB.recordsetrs.open "select nomes from modelo"call preenche comboend subprivate PreencheCombo()Do While Not rs.EOFcombo1.AddItem rs!nomes    rs.MoveNextLoopend sub

Se ficar alguma dúvida dá um toque.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... então use um combo mesmo que ficará melhor...Você está usando a conexão de que forma? ADO ou DAO?Caso seja através de ADO, para carregar a combo use o seguinte, fica fácil:

private sub form()dim cn as ADODB.connectiondim rs as ADODB.record setset cn = new ADOBD.connectioncn.openstring = "aqui vão os dados de sua conexão, que não sei qual banco de dados está usando"cn.openset rs = new ADODB.recordsetrs.open "select nomes from modelo"call preenche comboend subprivate PreencheCombo()Do While Not rs.EOFcombo1.AddItem rs!nomes    rs.MoveNextLoopend sub
Se ficar alguma dúvida dá um toque.
Obrigado Funcionou legal aqui. Porém não consigo deixar um nome em exibição ao carregar o form, e também estou tendo problema com o campo que o comboBox está carregando pois está vindo tudo duplicado várias vezes. e será que é possivel utilizar mais de uma comboBox com está mesma função tipo:Do While Not rs.EOFcombo1.AddItem rs!nomescombo2.AddItem rs!cidadecombo3.AddItem rs!estado rs.MoveNextLoopAté mais e Obrigado mesmo pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para deixar o nome é fácil. Basta no form_load colocarcombo1.text = "nome". Isso já fará aparecer.Olha, pra dizer a verdade nunca tentei preencher mais de uma combo no mesmo loop, mas é uma idpeia interessante.Quanto ao estar duplicando, será que não é porque o mesmo nome aparece várias vezes na coluna.Se for isso, na Query, utilize um group by nome, e para por em ordem alfabética order by nome.Se não for esse o motivo põe o código que você fez ai pra darmos uma olhada.Até Mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para deixar o nome é fácil. Basta no form_load colocarcombo1.text = "nome". Isso já fará aparecer.Olha, pra dizer a verdade nunca tentei preencher mais de uma combo no mesmo loop, mas é uma idpeia interessante.Quanto ao estar duplicando, será que não é porque o mesmo nome aparece várias vezes na coluna.Se for isso, na Query, utilize um group by nome, e para por em ordem alfabética order by nome.Se não for esse o motivo põe o código que você fez ai pra darmos uma olhada.Até Mais...

Fazer o que você disse deu certo Obrigado.Mas se não for abuso como eu faço pra ter uma conexão ativa do banco entre todos os forms e outra coisa tá dando um erro aqui dizendo que o campo telefone está nulo mais existe o cadastro no Banco.Estou utilizando MySQL 5 e VB 6 com conexão ADOObrigado pela ajuda e até mais
Dim SQL, CONEXAO, rsPrivate Sub Form_Load()Set CONEXAO = CreateObject("ADODB.Connection")Set rs = CreateObject("ADODB.Recordset")SQL = "SELECT * FROM tb_alunos, tb_bairros, tb_cidades, tb_empresas group by Id_Aluno Order By Id_Aluno " 'where tb_alunos.Id_Bairro = td_bairros.Id_Bairro"CONEXAO.Open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=sunrise_db;User=root;Password=flaviojr;Option=3;"rs.Open SQL, CONEXAO'carregando os campos da tabela aluno no formtxtcod.Text = rs!Id_Alunotxtrg.Text = rs!RGtxtdatanasc.Text = rs!DataNascimentotxtcpf.Text = rs!CPFtxtnatural.Text = rs!Naturaltxtreligiao.Text = rs!Religiaotxtprofissao.Text = rs!Profissaotxtddd.Text = rs!DDDtxttel.Text = rs!Telefonetxtcel.Text = rs!Celulartxttelcomerc.Text = rs!TelefoneComercialtxtrua.Text = rs!Ruatxtnumero.Text = rs!Numerotxtcomplemento.Text = rs!Complementotxtobs.Text = rs!Anotacoestxtcep.Text = rs!CEPtxtemail.Text = rs!Emailcmbsexo.Text = rs!Sexocmbnome.Text = rs!Nome'Combo com os campos das tabelas bairro, cidade, empresacmbbairro.Text = rs!Bairrocmbempresa.Text = rs!Empresacmbcidade.Text = rs!Cidadecmbestado.Text = rs!Estado Call PreencheCombo End SubPrivate Sub PreencheCombo()If rs.EOF = False Then  Do Until rs.EOF   cmbnome.addItem (rs!Nome)	cmbsexo.AddItem (rs!Sexo)	 cmbbairro.AddItem (rs!Bairro)	  cmbcidade.AddItem (rs!Cidade)	   cmbempresa.AddItem (rs!Empresa)		cmbestado.AddItem (rs!Estado)  rs.MoveNext  LoopEnd IfEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não entendo de MySQL, mecho em SQLServer...Para que sua conexão fique ative, declare sua variável de conexão em um Módule e deixe-a do tipo Public.Só é preciso declará-la no module, a conexão pode ser feita no primeiro form que for aberto.Não sei te dizer pq não está aprecendo seus telefones, estranho isso...Vendo seu código, sei de algo que pode limpa-lo um pouco.Você preencheu suas textbox uma por uma, faça o seguinte para preencher todas de uma vez.1° procure deixar o nome delas igual as nomes das colunas, por exemplo, se na textbox txtFone irá aparecer os dados da coluna telefone, procure deixar txtTelefone, e assim com todos. Fazendo isso você poderá utilizar o que vou por abaixo:

Private Sub PreencheTextBox()'Declare uma variável do tipo control que irá receber todas as TextBoxDim ctlControle As Control    For Each ctlControle In Controls    If TypeOf ctlControle Is TextBox Then            'Todos os objetos que forem encontrados e forem TextBox ele fará o seguinte:            ctlControle.Text = "" & rs_cli.Fields(Mid(ctlControle.Name, 4) & "cli")            'Deixei "" como tratamento de erro, assim se o campo estiver vazio, ele ficará vazio, se não colocar as "" dará erro            'O controle ctlControle vai receber os dados dos campos que tiverem, a partir do quarto caractere, o mesmo nome         da coluna, por isso falei para você alterar os nomes.    End IfNextEnd Sub

Faça isso, espero que dê certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui a função de pegar o nome dos campos não funcionou acaba dando erro e diz que o item da coleção correspondente não pode ser solicitado nome ou ordinal.Eu coloquei assim:ctlControle.Text = "" & rs.Fields(Mid(ctlControle.Name, 4) & "txt")Será que eu fiz errado...Até mais e Obrigado você tem me ajudado muito

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, eu que coloquei algo a mais que não precisava. Aquele "& Cli" que tem no meu não deveria ter. Está lá porque no meu programa precisei por.Tire esse "& txt" do final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, eu que coloquei algo a mais que não precisava. Aquele "& Cli" que tem no meu não deveria ter. Está lá porque no meu programa precisei por.Tire esse "& txt" do final.

Claudio Valew a sua função funcionou bem aqui Obrigado.Mais ainda não estou conseguindo listar o campo bairro na combo ela só me mostra um nome que está salvo no campo relacionado. Mais acho que em breve irei resolver isso.Obrigado Mesmo até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim, põe recordset.movefisrt antes da função, que isso fará com que ele comece a carregar da primeira.Isso descobri ontem pq tbm tive o mesmo problema, hehehe... Parece que nem sempre ele começa a carregar do primeiro item, e fazendo isso resolve.Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.