Ghost Posted August 11, 2018 at 02:33 PM Report #611589 Posted August 11, 2018 at 02:33 PM (edited) Boa tarde Pessoal tenho um problema, criei uma base de dados em access para abrir num programa que estou criando, mas a tabela que criei não contem registos e o programa não abre e dá erro.... o programa só abre se tiver registos dentro da base de dados.... como é que eu faço para abrir o programa com a base de dados sem registos, para depois dentro do programa adicionar.... Preciso mesmo de ajuda pessoal Atenciosamente Ghost O erro que aparece no visual studio ao abrir o programa é o seguinte: System.NullReferenceException: 'A referência de objecto não foi definida como uma instância de um objecto.' System.Windows.Forms.DataGridView.CurrentRow.get retornou Nothing. Edited August 11, 2018 at 02:34 PM by Ghost Diogo Fernandes
nelsonr Posted August 11, 2018 at 03:17 PM Report #611590 Posted August 11, 2018 at 03:17 PM Boa tarde Ghost, se não tens linhas, então o CurrentRow não vai ter conteúdo (é Null), dai dar erro ao usares o get. Não mostraste o código que tens, mas faz uma verificação se tens linhas antes de fazer alguma coisa. Por exemplo com DataGridView.Rows.Count Espero que ajude, nelsonr
Ghost Posted August 11, 2018 at 03:43 PM Author Report #611591 Posted August 11, 2018 at 03:43 PM Boas Nelson o código onde dá o erro é o seguinte: Private Sub MostraRegistos() RegistoStripLabel.Text = "Reclamação nº:" & RegistoAtual + 1 txtReferencia.Text = dgvBaterias.CurrentRow.Cells("Referencia").Value.ToString txtCliente.Text = dgvBaterias.CurrentRow.Cells("Cliente").Value.ToString txtNCliente.Text = dgvBaterias.CurrentRow.Cells("NCliente").Value.ToString txtFTCliente.Text = dgvBaterias.CurrentRow.Cells("FCliente").Value.ToString dtpDFatura.Text = dgvBaterias.CurrentRow.Cells("DFatura").Value.ToString txtNDevolucao.Text = dgvBaterias.CurrentRow.Cells("NDevolucao").Value.ToString txtNCArmazem.Text = dgvBaterias.CurrentRow.Cells("NCArmazem").Value.ToString txtNCCliente.Text = dgvBaterias.CurrentRow.Cells("NCCliente").Value.ToString txtMEntrada.Text = dgvBaterias.CurrentRow.Cells("MEntrada").Value.ToString cboDesignacao.Text = dgvBaterias.CurrentRow.Cells("Designacao").Value.ToString cboObservacoes.Text = dgvBaterias.CurrentRow.Cells("Observacoes").Value.ToString End Sub Private Sub PreencheDataSet() dsBaterias.Clear() Dim da = New OleDb.OleDbDataAdapter("SELECT * from Baterias", cnADONETConexao) da.Fill(dsBaterias, "Baterias") RegistoAtual = 0 TotalRegistos = dsBaterias.Tables("Baterias").Rows.Count - 1 End Sub Diogo Fernandes
nelsonr Posted August 13, 2018 at 09:01 AM Report #611594 Posted August 13, 2018 at 09:01 AM Bom dia Ghost, não indicas a linha de erro, mas de acordo com o outro tópico que criaste, será na segunda do MostraRegistos. Tal como tinha indicado na mensagem anterior, se não tens registos, o CurrentRow vai estar a NULL, o que provoca o erro quando tenta aceder às células. Adiciona uma verificação se a grelha tem linhas antes de fazeres aquela parte do código. Algo assim (não testado): Private Sub MostraRegistos() RegistoStripLabel.Text = "Reclamação nº:" & RegistoAtual + 1 if DataGridView.Rows.Count=0 then return txtReferencia.Text = dgvBaterias.CurrentRow.Cells("Referencia").Value.ToString txtCliente.Text = dgvBaterias.CurrentRow.Cells("Cliente").Value.ToString txtNCliente.Text = dgvBaterias.CurrentRow.Cells("NCliente").Value.ToString txtFTCliente.Text = dgvBaterias.CurrentRow.Cells("FCliente").Value.ToString dtpDFatura.Text = dgvBaterias.CurrentRow.Cells("DFatura").Value.ToString txtNDevolucao.Text = dgvBaterias.CurrentRow.Cells("NDevolucao").Value.ToString txtNCArmazem.Text = dgvBaterias.CurrentRow.Cells("NCArmazem").Value.ToString txtNCCliente.Text = dgvBaterias.CurrentRow.Cells("NCCliente").Value.ToString txtMEntrada.Text = dgvBaterias.CurrentRow.Cells("MEntrada").Value.ToString cboDesignacao.Text = dgvBaterias.CurrentRow.Cells("Designacao").Value.ToString cboObservacoes.Text = dgvBaterias.CurrentRow.Cells("Observacoes").Value.ToString End Sub Espero que ajude, nelsonr
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