AnaGPSI Posted April 30, 2012 at 08:58 AM Report #452196 Posted April 30, 2012 at 08:58 AM 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? 😄
José Lopes Posted April 30, 2012 at 09:16 AM Report #452199 Posted April 30, 2012 at 09:16 AM 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á!!
AnaGPSI Posted April 30, 2012 at 09:17 AM Author Report #452200 Posted April 30, 2012 at 09:17 AM Como assim?
José Lopes Posted April 30, 2012 at 09:19 AM Report #452201 Posted April 30, 2012 at 09:19 AM 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á!!
AnaGPSI Posted April 30, 2012 at 09:23 AM Author Report #452203 Posted April 30, 2012 at 09:23 AM Ou seja sobre o private sub da tabpage insiro o tal codigo para carregar a datagridview?
José Lopes Posted April 30, 2012 at 09:31 AM Report #452204 Posted April 30, 2012 at 09:31 AM 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á!!
AnaGPSI Posted April 30, 2012 at 09:33 AM Author Report #452205 Posted April 30, 2012 at 09:33 AM ok acho que já estou a entender. O private sub do tabcontrol é substituido pelo private sub tabulador ou ficam os dois no código?
José Lopes Posted April 30, 2012 at 09:53 AM Report #452207 Posted April 30, 2012 at 09:53 AM 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á!!
AnaGPSI Posted April 30, 2012 at 09:57 AM Author Report #452208 Posted April 30, 2012 at 09:57 AM Estou a colocar o código assim para ver se funciona e não está a carregar. 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
José Lopes Posted April 30, 2012 at 09:58 AM Report #452209 Posted April 30, 2012 at 09:58 AM O teu tabPage (a página do tabulador) chama-se Case "Adicionar Curso"??????? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
AnaGPSI Posted April 30, 2012 at 10:05 AM Author Report #452210 Posted April 30, 2012 at 10:05 AM 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:
José Lopes Posted April 30, 2012 at 10:13 AM Report #452213 Posted April 30, 2012 at 10:13 AM 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á!!
AnaGPSI Posted April 30, 2012 at 10:16 AM Author Report #452214 Posted April 30, 2012 at 10:16 AM O problema é que continua a não carregar o datagridview!
José Lopes Posted April 30, 2012 at 10:22 AM Report #452215 Posted April 30, 2012 at 10:22 AM MsgBox("State: " & mydb.State.ToString(), MsgBoxStyle.Information) ok...ele esta a chegar a esta msgbox???? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
AnaGPSI Posted April 30, 2012 at 10:23 AM Author Report #452216 Posted April 30, 2012 at 10:23 AM Abre o form mas não abre a mensagem antes como deveria mostrar. Essa mensagem é um dos teste que faço!
José Lopes Posted April 30, 2012 at 10:26 AM Report #452221 Posted April 30, 2012 at 10:26 AM sim..e chega lá?????? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
AnaGPSI Posted April 30, 2012 at 10:33 AM Author Report #452224 Posted April 30, 2012 at 10:33 AM 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!
José Lopes Posted April 30, 2012 at 10:35 AM Report #452225 Posted April 30, 2012 at 10:35 AM Publica isso aí online para dar uma vista de olhos..pk eu acho que estás a fazer uma grande confusão... Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!
AnaGPSI Posted April 30, 2012 at 10:37 AM Author Report #452226 Posted April 30, 2012 at 10:37 AM 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
AnaGPSI Posted April 30, 2012 at 10:38 AM Author Report #452227 Posted April 30, 2012 at 10:38 AM Só consigo publicar o código pois não tenho nenhuma plantaforma nem conhecimentos para publicar o programa em si!
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