Ghost Posted June 9, 2012 at 09:49 PM Report #461690 Posted June 9, 2012 at 09:49 PM Boa Noite peço imensa desculpa mas surgiu um problema na minha já se está a tornar repetitivo demais mas eu estou aqui para pedir ajudar no seguinte caso: Quando eu apago a minha base de dados para aparecer a janela das cópias de segurança ela simplesmente aparece e volta a desaparecer num ápice Alguém me pode ajudar por favor eu já não sei o que fazer. 😕 Atenciosamente Ghost Diogo Fernandes
RGanhoto Posted June 9, 2012 at 09:59 PM Report #461694 Posted June 9, 2012 at 09:59 PM Boa noite, Qual é o sistema de BD que estás a usar? Cumprimentos Ganhoto
Ghost Posted June 9, 2012 at 10:00 PM Author Report #461695 Posted June 9, 2012 at 10:00 PM olha é em access o formato é accdb Diogo Fernandes
RGanhoto Posted June 9, 2012 at 10:44 PM Report #461703 Posted June 9, 2012 at 10:44 PM hmm então essa janela que falas é algo que tu criaste em VB?
Ghost Posted June 10, 2012 at 07:13 PM Author Report #461812 Posted June 10, 2012 at 07:13 PM Sim Diogo Fernandes
Caça Posted June 11, 2012 at 08:19 AM Report #461885 Posted June 11, 2012 at 08:19 AM Mostra o código que estás a usar. Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 11, 2012 at 08:32 PM Author Report #462068 Posted June 11, 2012 at 08:32 PM (edited) Olhem este é o código das cópias de segurança: Private Sub btnEfectuarCopiasSeguranca_Click(sender As System.Object, e As System.EventArgs) Handles btnEfectuarCopiasSeguranca.Click If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then If FolderBrowserDialog1.SelectedPath <> "" Then File.Delete(FolderBrowserDialog1.SelectedPath & "\Restaurante_Girassol" & Date.Now.Date & ".Restaurante_Girassol.bak") File.Copy(Application.StartupPath & "\Restaurante_Girassol.accdb", FolderBrowserDialog1.SelectedPath & "\Restaurante_Girassol" & Date.Now.Date & ".Restaurante_Girassol.bak") MsgBox("Cópia de segurança efectuada com sucesso") If MsgBox("Deseja efectuar uma cópia de segurança para outro local?", vbYesNo + MsgBoxStyle.Information + vbDefaultButton2) = vbNo Then Me.Close() Else If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then If FolderBrowserDialog1.SelectedPath <> "" Then File.Delete(FolderBrowserDialog1.SelectedPath & "\Restaurante_Girassol" & Date.Now.Date & ".Restaurante_Girassol.bak") File.Copy(Application.StartupPath & "\Restaurante_Girassol.accdb", FolderBrowserDialog1.SelectedPath & "\Restaurante_Girassol" & Date.Now.Date & ".Restaurante_Girassol.bak") MsgBox("Cópia de segurança efectuada com sucesso") End If Else MsgBox("Não foi possivel efectuar a cópia de segurança") End If End If End If End If End Sub Private Sub btnReporCopiasSeguranca_Click(sender As System.Object, e As System.EventArgs) Handles btnReporCopiasSeguranca.Click Dim Caminho As String OpenFileDialog1.FileName = "*Restaurante_Girassol.bak" If OpenFileDialog1.ShowDialog() = DialogResult.OK Then If OpenFileDialog1.FileName <> "" Then Dim NomeImagem As System.IO.FileInfo = My.Computer.FileSystem.GetFileInfo(OpenFileDialog1.FileName) Caminho = OpenFileDialog1.FileName.ToString FolderBrowserDialog1.SelectedPath = Caminho File.Delete(Application.StartupPath & "\Restaurante_Girassol.accdb") File.Copy(FolderBrowserDialog1.SelectedPath, Application.StartupPath & "\Restaurante_Girassol.accdb") MsgBox("Cópia de segurança reposta com sucesso") frmLogin.Hide() 'frmPrincipal.Close() Me.Close() Else MsgBox("Não foi possivel repor a cópia de segurança") End If End If End Sub Private Sub frmCópias_de_Segurança_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load frmClientes.Close() frmFornecedores.Close() frmFuncionarios.Close() frmCozinha.Close() frmSaidadeStocks.Close() frmEntradaSaidaStocks.Close() frmVendas.Close() frmGestaoAdministrativa.Close() frmAutentificacaoStocks.Close() frmTaxasIVA.Close() frmProdutosArmazem.Close() 'frmLogin.Close() End Sub e no proximo post ponho o resto Imports System.Data.OleDb Public Class frmLogin Dim cnAdoNetConexao As New OleDb.OleDbConnection Dim da As OleDb.OleDbDataAdapter Dim dsLogin As New DataSet Public TotalRegistosClientes, NumClienteActual As Integer Dim NomeUtilizador As String Dim TipoConta As String Dim NomeCompleto As String Public Sub AbreBaseDados() cnAdoNetConexao.ConnectionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source = " & Application.StartupPath & "\Restaurante_Girassol.accdb" Try cnAdoNetConexao.Open() Catch ex As Exception MsgBox("Ocorreu um erro ao tentar abrir a base de dados!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Erro") If MsgBox("A base de dados pode ter sido eliminada ou danificada" + vbCrLf + "Deseja repor a cópia de segurança?", vbYesNo + vbCritical + vbDefaultButton2, "Cópia de Segurança") = vbYes Then frmCópias_de_Segurança.Show() frmCópias_de_Segurança.btnEfectuarCopiasSeguranca.Enabled = False Me.Close() Else Me.Close() End If Exit Sub End Try End Sub Public Sub FechaBaseDados() cnAdoNetConexao.Close() cnAdoNetConexao.Dispose() End Sub Public Sub PreencheConfiguraDataGridView() dgvLogin.DataSource = dsLogin.Tables("Login") dgvLogin.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells End Sub Public Sub PreencheDataset() On Error Resume Next dsLogin.Clear() da = New OleDb.OleDbDataAdapter("Select * From Login", cnAdoNetConexao) da.Fill(dsLogin, "Login") End Sub Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AbreBaseDados() PreencheDataset() PreencheConfiguraDataGridView() FechaBaseDados() End Sub Private Sub txtUsername_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtUtilizador.TextChanged dsLogin.Tables("Login").DefaultView.RowFilter = "NomeUtilizador='" & txtUtilizador.Text & "'" End Sub Private Sub dgvLogin_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvLogin.CellEnter TipoConta = dgvLogin.CurrentRow.Cells("TipoConta").Value.ToString() NomeUtilizador = dgvLogin.CurrentRow.Cells("NomeUtilizador").Value.ToString NomeCompleto = dgvLogin.CurrentRow.Cells("NomeCompleto").Value.ToString() End Sub Private Sub btnConfirmar_Click(sender As System.Object, e As System.EventArgs) Handles btnConfirmar.Click If TipoConta = "Administrador" Then frmPrincipal.GestãoAdministrativasToolStripMenuItem.Visible = True frmCópias_de_Segurança.btnReporCopiasSeguranca.Enabled = True End If If TipoConta = "Utilizador" Then frmPrincipal.GestãoAdministrativasToolStripMenuItem.Visible = False frmCópias_de_Segurança.btnReporCopiasSeguranca.Enabled = False End If If txtUtilizador.Text = "" Then MsgBox("Nome de Utilizador ou Palavra Passe errados.") 'Exit Sub End If If txtUtilizador.Text = NomeUtilizador Then If txtPasse.Text = dgvLogin.CurrentRow.Cells("PalavraPasse").Value.ToString Then frmPrincipal.Show() Me.Close() Else MsgBox("A Palavra-Passe está incorrecta.", MsgBoxStyle.OkOnly + MsgBoxStyle.Information + MsgBoxStyle.DefaultButton1, "Palavra-passe incorrecta") txtPasse.Text = Nothing End If Else MsgBox("Nome de Utilizador ou Palavra Passe errados.", MsgBoxStyle.OkOnly + MsgBoxStyle.Information + MsgBoxStyle.DefaultButton1, "Nome de Utilizador ou Palavra Passe errados") txtUtilizador.Text = Nothing txtPasse.Text = Nothing End If Exit Sub End Sub Private Sub btnAcerca_Click(sender As System.Object, e As System.EventArgs) Handles btnAcerca.Click frmAcerca.Show() End Sub Private Sub btnCancelar_Click(sender As System.Object, e As System.EventArgs) Handles btnCancelar.Click Application.Exit() End Sub Private Sub frmLogin_VisibleChanged(sender As System.Object, e As System.EventArgs) Handles MyBase.VisibleChanged If Me.Visible = True Then txtUtilizador.Focus() txtUtilizador.Text = "" txtPasse.Text = "" End If End Sub Não como fazer podem-me ajudar Ghost Edited June 12, 2012 at 08:06 AM by Caça GeSHi Diogo Fernandes
Caça Posted June 12, 2012 at 08:29 AM Report #462104 Posted June 12, 2012 at 08:29 AM É no login que estás com o problema? Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 12, 2012 at 10:03 AM Author Report #462117 Posted June 12, 2012 at 10:03 AM eu penso que sim porque eu fiz um teste que era tirar a base de dados e automaticamente dizia erro mas ele não abre a janelas das cópias de segurança nem do Login o erro está ao carregar no erro simplesmente a janelas das cópias de segurança aparece e volta a desaparecer num ápice. Ghost Diogo Fernandes
Caça Posted June 12, 2012 at 10:05 AM Report #462118 Posted June 12, 2012 at 10:05 AM Então deve ser por causa disto frmPrincipal.Show() Me.Close() Se o teu primeiro form for o de login, ao fazeres isso a aplicação vai fechar. Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 12, 2012 at 10:09 AM Author Report #462121 Posted June 12, 2012 at 10:09 AM a mesma continua o mesmo erro Diogo Fernandes
Caça Posted June 12, 2012 at 10:11 AM Report #462122 Posted June 12, 2012 at 10:11 AM Em que botão? Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 12, 2012 at 10:14 AM Author Report #462123 Posted June 12, 2012 at 10:14 AM eu tirei as linhas que me mandas-te mas a janela continua na mesma Diogo Fernandes
Caça Posted June 12, 2012 at 10:15 AM Report #462124 Posted June 12, 2012 at 10:15 AM Diz em que botão é que estas a carregar quando isso acontece. Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 12, 2012 at 10:41 AM Author Report #462129 Posted June 12, 2012 at 10:41 AM olha quando acontece alguma coisa a base de dados eu quero que vá directamente a janela das cópias de segurança para repor a cópia e acontece aquele problema Ghost Diogo Fernandes
Caça Posted June 12, 2012 at 10:46 AM Report #462130 Posted June 12, 2012 at 10:46 AM Estás-te a referir a isto Try cnAdoNetConexao.Open() Catch ex As Exception MsgBox("Ocorreu um erro ao tentar abrir a base de dados!" & vbCr & ex.Message, MsgBoxStyle.Critical, "Erro") If MsgBox("A base de dados pode ter sido eliminada ou danificada" + vbCrLf + "Deseja repor a cópia de segurança?", vbYesNo + vbCritical + vbDefaultButton2, "Cópia de Segurança") = vbYes Then frmCópias_de_Segurança.Show() frmCópias_de_Segurança.btnEfectuarCopiasSeguranca.Enabled = False Me.Close() Else Me.Close() End If Exit Sub End Try ou seja, caso dê esse erro queres que abra a janela das cópias de segurança? Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 12, 2012 at 10:48 AM Author Report #462131 Posted June 12, 2012 at 10:48 AM sim Diogo Fernandes
Caça Posted June 12, 2012 at 10:50 AM Report #462132 Posted June 12, 2012 at 10:50 AM Então o problema deve ser o mesmo, comenta os Me.Close() e testa. Pedro Martins Não respondo a duvidas por PM
Ghost Posted June 12, 2012 at 10:52 AM Author Report #462133 Posted June 12, 2012 at 10:52 AM pois eu isso já fiz e quando eu comento essas linhas aparece os dois forms o de login e o de cópias de segurança olha o meu programa está cheio de bugs e já não sei o que fazer ghost Diogo Fernandes
Caça Posted June 12, 2012 at 10:54 AM Report #462134 Posted June 12, 2012 at 10:54 AM Mas já não acontece o problema que tinhas antes, certo? Pedro Martins Não respondo a duvidas por PM
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