复制文件后无法访问mdb数据库文件

时间:2009-05-21 19:30:50

标签: vb.net ms-access

我有以下代码,我在其中制作了我使用的数据库的副本。代码执行100%,但我遇到的问题是我之后无法访问我的数据库。我得到一个“无法启动您的应用程序。工作组信息文件丢失或由另一个用户独占打开。”因此,如果我重新启动应用程序,它一切正常。

我确定原因是因为我只能使用特定的帐户名和密码来访问该数据库,而该帐户名和密码不是我登录的帐户。

我想尝试的是将数据库mdb默认为没有用户访问它的位置,或者重新分配可以访问该数据库mdb的唯一帐户名。

任何想法都会受到极大的赞赏吗?我试过玩文件安全但没有运气。

    Private Sub cmdBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBackup.Click
        BackupDialogDB.DefaultExt = ".mdb"
        BackupDialogDB.InitialDirectory = "c:\"
        'SaveFileDialog1.ShowDialog()

        If BackupDialogDB.ShowDialog() = Windows.Forms.DialogResult.OK Then

            Try

                Dim sDBFile As String = Application.StartupPath + "\VFMS_DB.mdb"

                Dim sBackUpFile As String = BackupDialogDB.FileName


                'First check the file u want to compact exists or not
                If File.Exists(sDBFile) Then
                    If Not File.Exists(sBackUpFile) Then
                        File.Copy(sDBFile, sBackUpFile)
                    Else
                        File.Delete(sBackUpFile)
                        File.Copy(sDBFile, sBackUpFile)
                    End If

                    MessageBox.Show("The database was successfully backedup to: " + sBackUpFile , "Database Backedup", MessageBoxButtons.OK, MessageBoxIcon.Information)

                    sDBFile = ""
                Else
                    MessageBox.Show("There is no database to backup. Please restore from a backup", "Database Backup Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub

3 个答案:

答案 0 :(得分:1)

您还应该复制和/或恢复workgroup information file

答案 1 :(得分:0)

您是否在目标目录中拥有写权限? Access需要在.mdb旁边创建一个.ldb文件。

否则,你可以尝试一些这里的东西: http://www.xlinesoft.com/asprunnerpro/docs/error_the_microsoft_jet_database_engine_cannot%20open%20the%20file%20(unknown).htm

答案 2 :(得分:0)

复制时数据库是否打开? Access在数据库所在的同一目录中创建锁定文件* .ldb,您可能希望在复制数据库之前检查该文件。