如何在您的访问中快速复制记录

立即分享:

了解如何创建一个 VBA 函数,使您只需单击一个按钮即可从以前的记录中复制某些数据。 无需重复输入相同的内容。

您是否有过这样的经历:您需要在 Access 中输入一条新记录,该记录除了一个字段外与以前的记录具有完全相同的一组值? 这可能很累,对吧? 本教程将教您如何创建一个函数,只需单击一个按钮,您就可以复制先前记录的某些值——节省您重新输入的时间。 只需按照以下步骤操作。

立即下载

如果您想尽快开始使用此功能,您可以:

立即下载带有 VBA 代码的示例数据库

否则,如果你想DIY,你可以阅读下面的内容。

在 Access 中添加“创建记录副本”功能的步骤

  1. 在设计视图中打开您的窗体。在设计视图中打开表单
  2. 添加命令按钮。 跳过命令按钮向导。
  3. 添加一个 点击时 按钮的事件。给按钮添加点击事件
  • 在设计视图中,选择按钮。
  • 打开属性表 (ALT + Enter)
  • 转到“事件”选项卡>“单击”> ...
  • 当。。。的时候 选择建造者 弹出菜单,选择代码生成器。
  • 单击“确定”。
  • 这将打开 VBA 编辑器。
    1. 复制以下代码并修改它以满足您的需要。 使用评论作为指导。
    Private Sub Command24_Click()
        Dim currentID As Long
     
        'TO DO: change all instances of 'BookID' with the actual name of your table's ID or primary key
     
        If IsNull(BookID) Then
            MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
            Exit Sub
        End If
     
        currentID = BookID
        DoCmd.GoToRecord record:=acNewRec
     
        'TO DO: set the fields to be copied (those that most likely will have the same values)
        'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)
     
         Author = DLookup("Author", "Books", "BookID=" & currentID)
         Country = DLookup("Country", "Books", "BookID=" & currentID)
         Language = DLookup("Language", "Books", "BookID=" & currentID)
         Genre = DLookup("Genre", "Books", "BookID=" & currentID)
         Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
     
         Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
     
    End Sub
  1. 现在测试代码是否有效。

代码说明

上面的代码用于书店的数据库。 由于书籍系列,有些情况下所有书籍详细信息(例如作者、国家/地区、语言等)除了一个字段(标题)外都是相同的。 因此,需要代码。

下面的列表显示了程序流程。

  1. 检查用户是否选择了要复制的记录。 如果用户在单击“添加新记录”按钮后立即单击该按钮,将弹出一条错误消息——使 ID 为空。
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. 获取当前记录的 ID 或主键,并将其作为值分配给 当前ID 这将用作要复制的值的基础。
currentID = BookID
  1. 添加新记录。
DoCmd.GoToRecord record:=acNewRec
  1. 根据 当前ID 这是从所选记录复制数据的位置。
'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)

Author = DLookup("Author", "Books", "BookID=" & currentID)
Country = DLookup("Country", "Books", "BookID=" & currentID)
Language = DLookup("Language", "Books", "BookID=" & currentID)
Genre = DLookup("Genre", "Books", "BookID=" & currentID)
Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
  1. 将焦点设置在用户最有可能首先编辑的字段上。这可以提升用户体验,因为它免去了用户手动选择待更新字段的步骤。
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

修复损坏的数据库

如果由于不幸的原因,有一天您醒来无法打开数据库,您可以尝试使用第三方工具执行 访问修复. 它创造奇迹。

作者简介:

Jayme Stack 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 sql恢复 和 excel 恢复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。