使用现在拆分的数据库将表宏迁移到VBA

时间:2014-07-10 14:35:44

标签: vba ms-access access-vba ms-access-2010

我所拥有的是微软的问题模板,这是我真正需要它的目的。我已将其转换为通过将对象导出为客户端对象而现在不再是Web数据库。

我想拆分这个数据库,这样不仅可以让多个用户同时使用它,而且还可以更好地使用它。

当我拆分数据库时,链接到表的宏会转到后端,所以当前端需要使用它时会出错。  下面是在前端按下添加注释按钮时调用的添加注释宏的示例。

Comments Macro

这是嵌入按钮的宏 Front End

这些可以转换为VBA并按照它的意图与后端进行交互,如果是这样,我将从哪里开始。我找到了一个答案,但我发现所有人都说“现在我已经走了vba路线很好”或者类似但实际上并没有显示它的工作情况。

3 个答案:

答案 0 :(得分:1)

以下是转换后的数据宏到VBA。它还没有100%,因为我已经对用户ID进行了硬编码,但这将在今天晚些时候修复,但我希望它能够很好地理解如何将数据宏转换为VBA,因为这对我来说是一次学习经历

Private Sub cmdAddaComment_Click()

    Dim db As dao.Database, theComments As Recordset
    Set db = DBEngine.Workspaces(0).Databases(0)
    Set theComments = db.OpenRecordset("Comments")

    theComments.MoveLast
    theComments.AddNew
    theComments!IssueID = Me.ID
    theComments!CommentDate = Now
    theComments!Comment = Me.txtAddComment
    theComments!UserID = 2
    theComments.Update

    Me.txtAddComment = ""

    DoCmd.RepaintObject acForm, "IssueDetail"

End Sub

答案 1 :(得分:0)

在执行此操作之前,请备份数据库。您可以通过关闭数据库,然后在计算机上找到.accdb文件,然后按Ctrl + C和Ctrl + V

来执行此操作。

您可以像这样进行自己的拆分:

  1. 创建一个新的空白数据库。
  2. 从旧数据库中导出除表格之外的所有内容
  3. 在新数据库中,创建指向旧数据库表的链接。为此,请单击外部数据 - 导入&单击链接,然后单击Access。选择“链接”选项,然后找到旧数据库,并选择要链接的所有表。请注意,如果您看到任何名为" MSYS"的表,请不要导入它们。这些是系统表,Access将在内部处理这些。
  4. 现在删除旧数据库中除表格之外的所有内容。
  5. 您的新数据库现在已经链接了#34;到旧数据库的表,但所有表单,报表等都在新数据库中。

答案 2 :(得分:0)

如果要拆分Access DB,则必须将TABLES与其他所有内容分开。 查询,宏,表单,报告和VBA代码必须保留在前端,而后端只有表。

您缺少的是从前端到后端表的链接。 为此,您需要创建数据库的副本,将其重命名为“BE.mdb”(或accdb),删除除BE.mdb中的表之外的所有对象。 现在在原始mdb上,您需要删除每个表并将每个已删除表的链接添加到BE.mdb对应表。这可以从“导入”菜单中选择“链接表”而不是“导入表”。