Jump to content

Recommended Posts

Posted

Olá bom dia será que me poderiam ajudar?

O meu problema é o seguinte: tenho um tabcontrol e dentro dele tenho várias tabpages em cada uma tenho uma datagridview o problema é que estou farta de tentar e só consigo carregar a datagridview (com os dados de uma tabela em access) da primeira tabpage as datagridview das outras tab nao consigo alguem me poderia ajudar?

😄

Posted

Porque não experimentas carregar a datagridview quando mudas de página?

Adicionalmente em termos de processamento a coisa é capaz de ficar mais rápida por que são carregamentos parciais....

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Posted

Cada vez que mudas de página....

vês qual o tab onde estás, e mediante o tab onde estás carregas a datagridview que corresponde aos dados que queres mostrar....

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Posted

nop...existe um evento especifico para quando mudas de página:

Private Sub TabControl1_SelectedIndexChanged(sender as Object, e as EventArgs) _ 
     Handles TabControl1.SelectedIndexChanged
   MessageBox.Show("You are in the TabControl.SelectedIndexChanged event.")
End Sub

ficaria qualquer coisa do género:

Private Sub Tabulador_SelectedIndexChanged(sender as Object, e as EventArgs) _ 
     Handles Tabulador.SelectedIndexChanged
  Select Case Tabulador.SelectedTab.Name 'vai sacar o nome da pagina onde estás
                Case "xpto"
                  'carrega a lista a
                Case "xyz"
                   'carrega a lista b
            End Select
End Sub

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Posted

ok acho que já estou a entender.

O private sub do tabcontrol é substituido pelo private sub tabulador ou ficam os dois no código?

ok acho que já estou a entender.

O private sub do tabcontrol é substituido pelo private sub tabulador ou ficam os dois no código?

Não..o meu primeiro código era só uma definição de como a coisa funcionar...

o segundo..uma aplicação prática....

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Posted

Estou a colocar o código assim para ver se funciona e não está a carregar.

:wallbash: Estou a desesperar....

 Private Sub tabcontrol1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _
         Handles TabControl1.SelectedIndexChanged
        Select Case TabControl1.SelectedTab.Name 'vai sacar o nome da pagina onde estás

            Case "Adicionar Curso"

                'Conexão com SQL  
                Const constr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\GPSI\Documents\mydb.accdb"
                Dim mydb As New OleDbConnection(constr)
                mydb.Open()

                MsgBox("State: " & mydb.State.ToString(),
                MsgBoxStyle.Information)

                'carrega datagridview1

                'Minha instrução SQL 
                Dim VlSql1 As String = "select nome as [Nome do Curso], sigla as [sigla] from curso ORDER BY nome ASC"

                Dim da1 As New OleDbDataAdapter(VlSql1, mydb)
                Dim dt1 As New Data.DataTable()
                Dim cmd1 As New OleDbCommand(VlSql1, mydb)
                Dim datacurso As OleDbDataReader = cmd1.ExecuteReader()

                'Criando um datatable 
                dt1 = New DataTable

                'Passando o dados do dataadapter 
                da1.Fill(dt1)

                'Carregando o dados do datatable no DataGridView1 
                With DataGridView1
                    'DataGridView5.Columns(0).HeaderText = "Nome do Curso"
                    'DataGridView5.Columns(1).HeaderText = "Sigla"
                    DataGridView1.DataSource = dt1
                End With
                ' Case "xyz"
                'carrega a lista b
        End Select
    End Sub
Posted

Os nomes são:

tabcontrol= "tabcontrol1"

1ª tabpage= "tabpage1"

2ª tabpage= "tabpage2"

3ª tabpage = "tabpage4"

4ª tabpage = "tabpage5"

Como nome a aparecer no "cabeçalho" das tabpages tenho:

1ª = Adicionar curso

2ª = Adicionar disciplinas

3ª = Inserir módulo a disciplina

4ª = Adicionar disciplina a curso

:down:

Posted

então terás que usar:

Case "tabpage1"

'faz o que tens  afazer...

Duas dicas:

começa a dar nomes aos objectos que façam algum sentido...é mais fácil ler o código e provavelmente ocorrem menos erros... existem formas específicas, nomeadamente http://en.wikipedia.org/wiki/Naming_convention_(programming)

Experimenta as funcionalidades de debug ou então pequenos testes como por exemplo msgboxs para perceberes se o programa está a fazer o que queres...nomeadamente o que pretendes... http://www.dotnetperls.com/debugging

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Posted

O normal era aparecer a mensagem a dizer que a ligação estava aberta e ao clicar no ok abria o form mas agora nao aparece a mensagem abre logo o form, Devo ter qualquer coisa trocada no código!

Posted

Para ser franca com o stress e tantas alterações começo mesmo a ficar confusa!

    Private Sub tabcontrol1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _
         Handles TabControl1.SelectedIndexChanged
        Select Case TabControl1.SelectedTab.Name 'vai sacar o nome da pagina onde estás

            Case "TabPage1"

                'Conexão com SQL  
                Const constr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\GPSI\Documents\mydb.accdb"
                Dim mydb As New OleDbConnection(constr)
                mydb.Open()

                MsgBox("State: " & mydb.State.ToString(),
                MsgBoxStyle.Information)

                'carrega datagridview1
                'Minha instrução SQL 

                Dim VlSql1 As String = "select nome as [Nome do Curso], sigla as [sigla] from curso ORDER BY nome ASC"
                Dim da1 As New OleDbDataAdapter(VlSql1, mydb)
                Dim dt1 As New Data.DataTable()
                Dim cmd1 As New OleDbCommand(VlSql1, mydb)
                Dim datacurso As OleDbDataReader = cmd1.ExecuteReader()

                'Criando um datatable 
                dt1 = New DataTable

                'Passando o dados do dataadapter 
                da1.Fill(dt1)

                'Carregando o dados do datatable no DataGridView1 
                With DataGridView1
                    'DataGridView5.Columns(0).HeaderText = "Nome do Curso"
                    'DataGridView5.Columns(1).HeaderText = "Sigla"
                    DataGridView1.DataSource = dt1
                End With


                ' Case "xyz"
                'carrega a lista b
        End Select
    End Sub

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.