Jump to content

Recommended Posts

Posted

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

Posted (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 by Caça
GeSHi

Diogo Fernandes

Posted

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

Posted

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

Posted

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

Posted

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

Posted

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

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.