none
PREENCHENDO COMBOBOX COM CAMPO DE ARQUIVO RRS feed

  • Pergunta

  • Ola pessoal.. após algum tempo longe, estou de volta ! Necessito de ajuda no seguinte quesito ...

    Preciso varrer a base de dados em busca de um NR DE CPF, por exemplo, e se ele existe na base de dados, preenche uma COMBOBOX com o campo TITULO da tabela, passa para o próximo registro, verifica se o CPF é o mesmo informado na pesquisa, se for, preenche novamente o COMBOBOX com o campo TITULO da tabela e assim por diante, até o final do arquivo. Criei essa rotina abaixo, ele até encontra o registro e lança do COMBOBOX, mas apenas o primeiro encontrado, nao segue adiante para o próximo registro para pesquisar.. Alguém sabe como implementar esse meu código para chegar no resultado acima descrito ??

    Lembro que sou programador em VB6 e isso faço de olhos fechados usando o DO WHILE ARQUIVO.EOF, MOVENEXT e LOOP para fechar o ciclo, mas no VS 2012 estou apanhando... Alguém se habilita ???

     If CPF.Text.Trim <> "" Then
                            Dim con2 As New System.Data.OleDb.OleDbConnection("Provider = Microsoft.jet.OleDB.4.0;Data Source =  " & Application.StartupPath & "\DEBITOS.mdb;")
                            If con2.State = ConnectionState.Closed Then con.Close()
                            con2.Open()
                            Dim cmd2 As New OleDb.OleDbCommand("select * from MOVTO WHERE CPF = '" & CPF.Text & "'", con2)
                            Dim drdr2 As OleDb.OleDbDataReader
                            drdr2 = cmd2.ExecuteReader
                            drdr2.Read()
                            If drdr2.HasRows = True Then ' verifico se existe registro a ser mostrado se não exibo a msg.(true ou false)
                                TITULOS.Items.Add(drdr2.Item("TITULO"))
                            End If
                        End If

    Agradeço antecipadamente !!

    sábado, 23 de agosto de 2014 09:43

Todas as Respostas

  • Olá DJ,

     seria mais ou menos assim :

     If CPF.Text.Trim <> "" Then
                            Dim con2 As New System.Data.OleDb.OleDbConnection("Provider = Microsoft.jet.OleDB.4.0;Data Source =  " & Application.StartupPath & "\DEBITOS.mdb;")
                            If con2.State = ConnectionState.Closed Then con.Close()
                            con2.Open()
                            Dim cmd2 As New OleDb.OleDbCommand("select * from MOVTO WHERE CPF = '" & CPF.Text & "'", con2)
                            Dim drdr2 As OleDb.OleDbDataReader
                            drdr2 = cmd2.ExecuteReader
    
                            If drdr2.HasRows = True Then ' verifico se existe registro a ser mostrado se não exibo a msg.(true ou false)
    
    'VEJA QUE MUDEI ESSE TRECHO SOMENTE
    While   drdr2.Read()
                TITULOS.Items.Add(drdr2("TITULO").ToString())
    
    
    End While
                            End If
                        End If
     Veja que apenas coloquei no loop o método Read() !

    segunda-feira, 25 de agosto de 2014 10:54
  • Opa... valeu meu brotherrrrr.... Vou aplicar a sua dica e informo logo mais se deu certo... Valeuu !!!
    segunda-feira, 25 de agosto de 2014 14:19
  • Legal.. deu certo... só vou complementar uma rotina na função e seguir adiante.

    Valeu !! Abraxxxx

    segunda-feira, 25 de agosto de 2014 14:24