none
VB 2010 Access Database Botões Anterior e Próximo RRS feed

  • Pergunta

  • Tenho um formulário com uma caixa de texto  e duas maskedboxes. Nelas aparecem o nome, o celular e telefone que estão armazenados em um registro do bando de dados Access 2007.

    O banco de dados tem os campos Código (numeração automática), Nome, Telefone e Celular.

    Ao carregar o formulário, são mostrados os dados na caixa de texto e nas makedboxes referentes ao registro ordenado por nome em ordem alfabética.

    Gostaria que, ao clicar nos botões próximo e anterior, fossem mostrados os conteúdos do próximo registro e do registro anterior, respectivamente.

     

    Sou iniciante em programação e peço que me enviem os códigos referentes aos botões próximo e anterior.

    Por enquanto, meu código está assim:

     

     

    Imports System.Data.OleDb

     

    Public Class frmAgenda

     

        Private Sub frmAgenda_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

            Dim con As New OleDbConnection

            con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='|DataDirectory|\Banco de Agenda.accdb'"

            con.Open()

            Dim comando As New OleDbCommand

            comando.CommandText = "SELECT TOP 1 * FROM tb_dados ORDER BY Nome"

            comando.CommandType = CommandType.Text

            comando.Connection = con

     

            Dim leitor As OleDbDataReader

            leitor = comando.ExecuteReader()

            leitor.Read()

            Me.txtNome.Text = leitor("Nome").ToString

            Me.mskCelular.Text = leitor("Celular").ToString

            Me.mskTelefone.Text = leitor("Telefone").ToString

     

     

        End Sub

     

        Private Sub btnProximo_Click(sender As System.Object, e As System.EventArgs) Handles btnProximo.Click

     

            Dim con As New OleDbConnection

     

            con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='|DataDirectory|\Banco de Agenda.accdb'"

     

            Dim comando As New OleDbCommand

     

        End Sub

     

     

        Private Sub btnAnterior_Click(sender As System.Object, e As System.EventArgs) Handles btnAnterior.Click


            Dim con As New OleDbConnection

     

            con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='|DataDirectory|\Banco de Agenda.accdb'"

     

            Dim comando As New OleDbCommand

     

        End Sub

    End Class

    quinta-feira, 22 de dezembro de 2011 03:19

Respostas

  • Através da video aula 24 do curso Visual Basic Avançado da Treinamentos TI, aprendi que o código fica da seguinte forma:

     

    Private Sub btnProximo_Click(sender As System.Object, e As System.EventArgs) Handles btnProximo.Click

            Me.Tb_dadosBindingSource.MoveNext()

        End Sub


        Private Sub btnAnterior_Click(sender As System.Object, e As System.EventArgs) Handles btnAnterior.Click

            Me.Tb_dadosBindingSource.MovePrevious()

        End Sub

    sexta-feira, 23 de dezembro de 2011 04:31

Todas as Respostas

  • Usa bindingsource. Vais ter de alimentar o seu bindigsource com ainformacao que vem do teu select.

    Este control, tem propiedades como, movenext, movelast ect, ect....

    Seu codigo vai ficar assim, o teu leitor tem de ser public, declara no teu form, encima:

    Dim Ligar_Text As New BindingSource

    Private Sub frmAgenda_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    Dim con As New OleDbConnection

    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='|DataDirectory|\Banco de Agenda.accdb'"

    con.Open()

    Dim comando As New OleDbCommand

    comando.CommandText = "SELECT TOP 1 * FROM tb_dados ORDER BY Nome"

    comando.CommandType = CommandType.Text

    comando.Connection = con

    Dim Dt as New DataSet

    Dim leitor As New OledbDataadpter

    leitor.Fill(DT)

    Ligar_Text.DataSource = DT

    Me.txtNome.DataDingind.Add("Text", leitor, "Nome", True)

            Faz com o resto do control

    End Sub

     

    Agora no teu Botao

    Ligar_Text.MoveNext()

     


    One word frees us of all the weight and pain of life: that word is love.
    quinta-feira, 22 de dezembro de 2011 06:37
  • Em relacao a linha

     Me.txtNome.DataBinding.Add("Text", leitor, "Nome", True)

    Está dando o seguinte erro

    'DataBinding' is not a member of 'System.Windows.Forms.TextBox'.

    quinta-feira, 22 de dezembro de 2011 07:58
  • Olá Anderson,

    Veja o exemplo que coloquei neste link: https://skydrive.live.com/#cid=7DECE45BBF0DB70F&id=7DECE45BBF0DB70F!660

    Ele se chama WindowsPreviousNext.zip

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    quinta-feira, 22 de dezembro de 2011 11:35
    Moderador
  • Seu código está em C# preciso do código em VB 2010. Obrigado.
    quinta-feira, 22 de dezembro de 2011 20:49
  • Através da video aula 24 do curso Visual Basic Avançado da Treinamentos TI, aprendi que o código fica da seguinte forma:

     

    Private Sub btnProximo_Click(sender As System.Object, e As System.EventArgs) Handles btnProximo.Click

            Me.Tb_dadosBindingSource.MoveNext()

        End Sub


        Private Sub btnAnterior_Click(sender As System.Object, e As System.EventArgs) Handles btnAnterior.Click

            Me.Tb_dadosBindingSource.MovePrevious()

        End Sub

    sexta-feira, 23 de dezembro de 2011 04:31